使用说明

项目简介

MongoDB MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在使大型语言模型 (LLM) 能够通过自然语言与 MongoDB 数据库进行交互。它提供了一系列工具,允许 LLM 查询数据、管理索引以及执行文档操作,从而简化了 LLM 应用与 MongoDB 数据库的集成。

主要功能点

  • 集合模式检查: 允许 LLM 获取 MongoDB 集合的结构信息,了解数据字段和类型。
  • 文档查询与过滤: 支持 LLM 使用自然语言查询 MongoDB 文档,并进行条件过滤。
  • 索引管理: 提供创建、列出和删除 MongoDB 索引的功能,优化数据查询性能。
  • 文档操作: 支持 LLM 执行文档的插入、更新和删除操作,实现数据管理。

安装步骤

  1. 前提条件: 确保已安装 Node.js 18+、npm 和 MongoDB 数据库服务。
  2. 克隆仓库: 将 GitHub 仓库 'MCP-Mirror/QuantGeekDev_mongo-mcp' 克隆到本地。
  3. 进入目录: 在终端中导航到克隆的仓库目录。
  4. 安装依赖: 运行命令 'npm install' 安装项目依赖。
  5. 构建项目: 运行命令 'npm run build' 构建项目,生成可执行的服务器代码。

服务器配置

要将 MongoDB MCP Server 与 MCP 客户端(例如 Claude Desktop)连接,您需要在客户端的配置文件中添加 MCP 服务器的配置信息。以下是一个配置示例,请根据您的实际情况进行修改。

{
  "mcpServers": {
    "mongodb": {  //  服务器名称,可以自定义,用于在客户端中标识该服务器
      "command": "node",  //  启动服务器的命令,这里使用 node 运行 JavaScript 文件
      "args": [
        "dist/index.js",  //  服务器入口文件路径,构建后位于 dist 目录
        "mongodb://<username>:<password>@<host>:<port>/<database>?authSource=admin"  // MongoDB 连接 URL,请替换为您的 MongoDB 数据库连接信息,包括用户名、密码、主机、端口和数据库名
      ]
    }
  }
}

配置参数说明:

  • 'server name': 为您的 MongoDB MCP 服务器指定一个名称,例如 "mongodb"。这个名称将在 MCP 客户端中用于标识和选择该服务器。
  • 'command': 指定用于启动服务器的命令。对于此项目,由于服务器是 Node.js 应用,因此使用 'node' 命令。
  • 'args': 一个字符串数组,包含启动服务器命令的参数。
    • 第一个参数 '"dist/index.js"' 是构建后服务器入口文件 'index.js' 的路径。
    • 第二个参数 '"mongodb://<username>:<password>@<host>:<port>/<database>?authSource=admin"' 是 必需的 MongoDB 连接 URL。请务必将其中的 '<username>'、'<password>'、'<host>'、'<port>' 和 '<database>' 替换为您实际的 MongoDB 数据库连接信息。'authSource=admin' 通常用于指定认证数据库,根据您的 MongoDB 配置可能需要调整。

请注意: MCP 客户端 不需要 任何代码配置,只需要上述 JSON 格式的服务器配置信息。用户只需将这段 JSON 配置添加到 MCP 客户端的配置文件中,并根据注释修改 'args' 中的 MongoDB 连接 URL 即可。

基本使用方法

  1. 启动服务器: 在配置 MCP 客户端后,客户端会自动尝试连接到配置的 MCP 服务器。确保您的 MongoDB 数据库服务已运行,并且连接 URL 配置正确。
  2. 在 LLM 中使用工具: 在支持 MCP 的 LLM 应用(例如 Claude Desktop)中,您可以使用自然语言指令来调用 MongoDB MCP Server 提供的工具。例如,您可以尝试以下提示:
    • '"数据库里有哪些集合?"' (对应 'listCollections' 工具)
    • '"users 集合的结构是什么样的?"' (尚无对应工具直接获取结构,但可以通过查询少量文档并分析返回结果来推断)
    • '"查找所有在旧金山的用户"' (对应 'find' 工具)
    • '"创建一个名为 'products' 集合的 'category' 字段的索引"' (对应 'createIndex' 工具)

更多示例提示,请参考仓库 README.md 文件中的 "Example Prompts" 部分。

本地沙箱测试 (可选)

如果您没有现成的 MongoDB 数据库用于测试,可以使用 Docker Compose 快速搭建一个本地沙箱环境,并使用 'npm run seed' 命令填充测试数据。具体步骤请参考仓库 README.md 文件中的 "Test Sandbox Setup" 部分。

信息

分类

数据库与文件