使用说明
项目简介
本项目 'mongo-db-mcp' 是一个基于 Model Context Protocol (MCP) 框架构建的服务器端示例,旨在演示如何快速搭建一个MCP服务器。 当前版本主要实现了MCP协议的基本框架,能够响应客户端的 'ListResources' 请求,并返回预定义的资源信息。 虽然项目名称包含 "MongoDB",但当前版本尚未实际集成 MongoDB 数据库,仅作为一个基础的MCP服务器示例存在,为后续扩展 MongoDB 数据访问功能提供了框架。
主要功能点
- MCP 服务器基础框架: 使用 '@modelcontextprotocol/sdk' 库构建,遵循 MCP 协议规范。
- 资源管理 (Resources) 声明: 声明了服务器具备资源管理能力,但当前仅返回硬编码的资源列表。
- 工具 (Tools) 声明: 声明了服务器具备工具调用能力,但当前未实现任何工具。
- 'ListResources' 请求处理: 实现了 'ListResourcesRequestSchema' 请求的处理,返回包含一个预定义资源的响应。
- Stdio 传输协议: 使用 Stdio (标准输入输出) 作为 MCP 服务器与客户端之间的通信协议。
- 客户端示例: 提供了一个简单的 MCP 客户端 'client.js',用于连接和测试服务器,并演示了如何发送 'ListResources' 请求。
安装步骤
- 克隆仓库:
git clone https://github.com/PrashantSedhain/mongo-db-mcp.git cd mongo-db-mcp - 安装依赖:
确保你已经安装了 Node.js 和 npm。运行以下命令安装项目依赖:
npm install - 构建项目 (可选):
虽然可以直接运行 TypeScript 文件,但为了更好体验,可以先构建项目生成 JavaScript 文件:
构建后的 JavaScript 文件位于 'dist' 目录下。npm run build
服务器配置
MCP 客户端需要配置以下信息才能连接到 'mongo-db-mcp' 服务器。由于本项目使用 Stdio 传输协议,配置的关键是指定服务器的启动命令和参数。
{ "serverName": "mongo-db-mcp-server", "command": "node", "args": ["dist/index.js"] }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,用于客户端识别。 例如: "mongo-db-mcp-server"。
- 'command': 启动服务器的命令。 由于服务器是 Node.js 应用,这里设置为 'node'。
- 'args': 启动命令的参数,以数组形式提供。
- 'dist/index.js': 指向编译后的服务器入口文件路径。 如果你没有构建项目,并且直接运行 'index.ts',则需要将路径修改为 'index.js' 或 'index.ts' (取决于你的运行环境)。
注意: MCP 客户端需要根据你实际的服务器文件路径进行 'args' 的配置。 如果你直接运行 'index.ts' 而不是构建后的 'dist/index.js',请相应修改 'args' 配置。
基本使用方法
-
启动 MCP 服务器: 在仓库根目录下,打开终端并运行以下命令启动服务器:
node dist/index.js或 (如果你没有构建项目,直接运行 TypeScript 文件):
npx ts-node index.ts服务器启动成功后,终端会输出 '🚀 Server started...'。
-
运行 MCP 客户端: 在另一个终端窗口中,进入仓库根目录,并运行客户端 'client.js',同时需要将服务器脚本的路径作为参数传递给客户端:
node dist/client.js dist/index.js或 (如果你没有构建项目,直接运行 TypeScript 文件):
node client.js index.ts客户端启动后,会连接到服务器,并进入交互式查询模式 'MCP Client Started!'。
-
发送查询并查看资源列表: 在客户端的 'Query: ' 提示符后,可以输入任何文本作为查询内容 (当前版本查询内容不会被实际使用,仅用于触发 'ListResources' 请求)。 例如输入 'list resources' 并回车。 客户端会向服务器发送 'ListResources' 请求,服务器会返回预定义的资源列表,客户端会将资源名称打印到终端。 例如,你可能会看到 'MONGO MCP SERVER' 输出。
-
退出客户端: 在 'Query: ' 提示符后,输入 'quit' 并回车即可退出客户端。
示例交互过程:
# 终端 1 (运行 MCP 服务器) > node dist/index.js 🚀 Server started... Finished... # 终端 2 (运行 MCP 客户端) > node dist/client.js dist/index.js MCP Client Started! Type your queries or 'quit' to exit. Query: list resources MONGO MCP SERVER Query: quit
后续扩展方向
本项目作为一个基础示例,后续可以扩展以下功能,使其成为一个真正的 MongoDB MCP 服务器:
- MongoDB 连接: 集成 MongoDB 驱动,实现与 MongoDB 数据库的连接。
- 工具 (Tools) 注册和实现: 开发用于执行 MongoDB 查询、数据操作等工具,并注册到 MCP 服务器。
- 资源 (Resources) 动态管理: 实现动态管理 MongoDB 数据库中的集合、文档等资源,并根据实际情况返回资源列表。
- Prompt 模板 (Prompts) 支持: 定义 Prompt 模板,支持用户自定义与 LLM 交互的模式,并结合 MongoDB 数据进行上下文填充。
- 更完善的错误处理和日志记录: 增强服务器的健壮性和可维护性。
总而言之,'mongo-db-mcp' 当前是一个 MCP 服务器的入门级示例,成功搭建了 MCP 协议框架,并演示了资源列表的返回。 开发者可以基于此项目,逐步扩展 MongoDB 数据库集成和更多 MCP 功能,构建强大的 MongoDB MCP 服务器。
信息
分类
数据库与文件