使用说明

项目简介

本项目是一个基于 Fireproof 数据库的 MCP 服务器示例,它提供了一个简单的 JSON 文档存储服务,允许 LLM 客户端通过 MCP 协议进行文档的创建、读取、更新、删除和查询操作。此服务器旨在演示如何使用 Fireproof 数据库构建 MCP 服务器,并与 Claude Desktop 等 LLM 应用集成。

主要功能点

  • JSON 文档存储: 存储和管理 JSON 格式的文档数据。
  • CRUD 操作: 支持对 JSON 文档进行基本的创建 (Create)、读取 (Read)、更新 (Update,通过覆盖方式实现)、删除 (Delete) 操作。
  • 按字段查询: 允许根据文档的任意字段对文档进行排序查询。
  • MCP 协议支持: 完全实现了 MCP 服务器协议,可以与任何兼容 MCP 协议的 LLM 客户端进行交互。
  • 工具注册: 注册了一系列工具 (Tools),供 LLM 客户端调用以执行文档操作。
  • Stdio 传输: 使用标准输入输出 (stdio) 作为 MCP 服务器的传输协议,易于集成和部署。

安装步骤

  1. 安装 Node.js 和 npm: 确保您的系统已安装 Node.js 和 npm (Node 包管理器)。
  2. 克隆仓库: 将 GitHub 仓库 'https://github.com/fireproof-storage/mcp-database-server' 克隆到本地。
  3. 安装依赖: 在仓库根目录下,运行以下命令安装项目依赖:
    npm install
  4. 构建项目: 运行以下命令构建项目:
    npm build
    构建成功后,会在 'build' 目录下生成 'index.js' 文件,这是服务器的入口文件。

服务器配置

为了将此 MCP 服务器与 MCP 客户端(例如 Claude Desktop)配合使用,您需要在 MCP 客户端的配置文件中添加服务器配置信息。以 Claude Desktop 为例,您需要编辑 'claude_desktop_config.json' 文件(路径在说明文档中有提及)。

以下是您需要添加到 'mcpServers' 字段的服务器配置信息:

{
  "mcpServers": {
    "fireproof": { # 服务器名称,可以自定义,例如 "my-json-server"
      "command": "/path/to/fireproof-mcp/build/index.js" # 指向服务器入口文件 index.js 的绝对路径
      # "args": [] # 可选:启动服务器时需要传递的命令行参数,本项目无需参数
    }
  }
}

注意:

  • 请将 '"/path/to/fireproof-mcp/build/index.js"' 替换为 'index.js' 文件在您本地文件系统中的绝对路径。例如,如果您将仓库克隆到 '/Users/yourname/Documents/fireproof-mcp-database-server',并且按照上述步骤构建了项目,那么 'command' 应该配置为 '"/Users/yourname/Documents/fireproof-mcp-database-server/build/index.js"'。
  • '"fireproof"' 字段是服务器的名称,您可以自定义,但需要与您在 LLM 客户端中引用该服务器时使用的名称保持一致。
  • 'args' 字段是可选的,用于传递命令行参数给服务器。本项目示例服务器不需要额外的命令行参数。

基本使用方法

  1. 启动 MCP 服务器: 配置完成后,当 MCP 客户端(如 Claude Desktop)启动时,会自动尝试连接并启动您配置的 MCP 服务器。由于本项目使用 stdio 传输,服务器会作为子进程在后台运行。
  2. 在 LLM 中使用工具: 一旦服务器成功连接,您就可以在 LLM 客户端中指示 LLM 使用服务器提供的工具来操作 JSON 文档。例如,在 Claude 中,您可以指示 Claude 使用 'save_json_doc' 工具来保存一个新的 JSON 文档,或者使用 'load_json_doc' 工具来加载指定 ID 的文档。

可用工具 (Tools):

  • 'save_json_doc': 保存 JSON 文档。需要提供 'doc' 参数,即要保存的 JSON 文档内容。
  • 'load_json_doc': 加载 JSON 文档。需要提供 'id' 参数,即要加载的文档 ID。
  • 'delete_json_doc': 删除 JSON 文档。需要提供 'id' 参数,即要删除的文档 ID。
  • 'query_json_docs': 查询 JSON 文档。需要提供 'sort_field' 参数,即用于排序的字段名。

示例 (在 Claude 中指示其使用工具):

  • "请帮我保存一个 JSON 文档,内容是 '{"name": "example", "value": 123}'" (Claude 可能会调用 'save_json_doc' 工具)
  • "你能帮我加载 ID 为 'abc-123' 的文档吗?" (Claude 可能会调用 'load_json_doc' 工具)
  • "请查询并按照 'created' 字段排序,返回最新的文档" (Claude 可能会调用 'query_json_docs' 工具,并指定 'sort_field' 为 'created')

请注意,具体的工具调用方式和 LLM 的行为取决于 LLM 客户端的实现。您需要参考您使用的 LLM 客户端的文档,了解如何指示其使用 MCP 服务器提供的工具。

信息

分类

数据库与文件