使用说明
项目简介
本项目是一个基于 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 服务器的传输协议,易于集成和部署。
安装步骤
- 安装 Node.js 和 npm: 确保您的系统已安装 Node.js 和 npm (Node 包管理器)。
- 克隆仓库: 将 GitHub 仓库 'https://github.com/fireproof-storage/mcp-database-server' 克隆到本地。
- 安装依赖: 在仓库根目录下,运行以下命令安装项目依赖:
npm install - 构建项目: 运行以下命令构建项目:
构建成功后,会在 'build' 目录下生成 'index.js' 文件,这是服务器的入口文件。npm build
服务器配置
为了将此 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' 字段是可选的,用于传递命令行参数给服务器。本项目示例服务器不需要额外的命令行参数。
基本使用方法
- 启动 MCP 服务器: 配置完成后,当 MCP 客户端(如 Claude Desktop)启动时,会自动尝试连接并启动您配置的 MCP 服务器。由于本项目使用 stdio 传输,服务器会作为子进程在后台运行。
- 在 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 服务器提供的工具。
信息
分类
数据库与文件