一、什么是 MongoDB MCP Server

https://github.com/mongodb-js/mongodb-mcp-server

MongoDB MCP Server 是 MongoDB 官方发布的 Model Context Protocol(MCP)服务器实现,当前处于 公共预览(Public Preview) 阶段。

它为支持 MCP 的 AI 客户端(如 Claude Desktop、VS Code Copilot、Cursor 等)提供了一组“工具”(tools),可通过自然语言与 MongoDB 数据及部署进行交互

MCP 是 Anthropic 于 2024 年 11 月推出的开源协议标准,旨在统一语言模型(LLM)与外部系统(如数据库、文件系统、API)的交互方式

二、 主要功能与用途

2.1 支持的工具

  • MongoDB Atlas 工具集
    包括列出组织、项目、集群,创建/管理集群、访问控制、数据库用户、警报等功能,如:atlas-list-clustersatlas-create-projectatlas-create-db-user 等 (GitHub)。
  • MongoDB 数据库工具
    支持基本 CRUD 和聚合操作、架构查询、索引管理等,包括:findaggregatelist-collectionscollection-schemadb-statscreate-indexupdate-onedelete-many 等 (GitHub)。

2.2 架构与使用场景

  • 允许 LLM(如 Claude、VS Code Copilot)使用自然语言来执行 MongoDB 数据查询、聚合、管理、模式探索和代码生成操作:

    • 查询并解释集合模式与字段用途
    • 用自然语言检索或编辑数据
    • 管理 Atlas 用户、集群、数据库
    • 基于数据上下文生成代码片段(如 Python 脚本) (MongoDB, GitHub, MongoDB)。

三、安装与配置

3.1 技术要求

  • Node.js 版本建议至少为 20.19.0,如果使用 v22,则需至少 v22.12.0;23+ 版本也支持
  • 可连接到 MongoDB Atlas 或自托管 MongoDB 实例

3.2 启动方式

  • 命令行方式(readOnly 为默认安全模式):

    npx -y mongodb-mcp-server --connectionString "mongodb://localhost:27017/myDatabase" --readOnly

    npx -y mongodb-mcp-server --apiClientId <clientId> --apiClientSecret <clientSecret> --readOnly

    通过环境变量也可设置这些参数 (GitHub)。

  • Docker 运行方式

    • 不用安装 Node.js:

      docker run --rm -i mongodb/mongodb-mcp-server:latest
    • 带连接字符串:

      docker run -e MDB_MCP_CONNECTION_STRING="..." -e MDB_MCP_READ_ONLY="true" mongodb/mongodb-mcp-server:latest
    • 或使用 Atlas API 凭证:

      docker run -e MDB_MCP_API_CLIENT_ID="..." -e MDB_MCP_API_CLIENT_SECRET="..." -e MDB_MCP_READ_ONLY="true" mongodb/mongodb-mcp-server:latest

    Docker 示例亦可配置于不同 MCP 客户端的 JSON 文件中 (GitHub, MongoDB)。

3.3 配置选项亮点

  • 设置方式可选:命令行参数、环境变量、或客户端配置文件。
  • 可配置项包括:

    • connectionStringapiClientId/apiClientSecret
    • readOnly 模式(只读)
    • disabledTools(禁用特定工具)
    • telemetry(是否发送使用统计)
    • logPath(日志路径)等 (CSDN 博客, MongoDB)。

四、安全性与权限

  • 默认启用只读(--readOnly)模式,用于避免 LLM 执行删除或写入操作 (MongoDB)。
  • Atlas API 使用安全服务账户凭证,管理员可设定最小权限角色以控制对项目与集群的访问 (MongoDB)。

五、底层原理与背景

  • MCP 是一个标准化工具协议,由 Anthropic 于 2024 年 11 月提出,旨在实现 LLM 与工具、系统之间的统一数据交互 (维基百科)。
  • MongoDB MCP Server 是符合该协议的官方实现之一,支持主要 AI 客户端连接和操作。

六、使用流程示例

  1. 配置 MCP 客户端(如 Claude Desktop、VS Code Copilot)将此 Server 添加进其 mcpServers 部分。
  2. 启动 Server。
  3. 在客户端对话中,执行如下操作:

    • “告诉我 users 集合的架构结构”
    • “查询过去一周所有订单金额超过 100 的用户”
    • “生成 Python 脚本清除一年未登录的账户” (MongoDB, MongoDB, MongoDB)。

七、总结优势对比

优势描述
统一接口LLM 通过标准 MCP 协议与 MongoDB 或 Atlas 交互
丰富工具支持包括 Atlas 管理与数据库操作工具
灵活部署支持 CLI 启动、环境变量、Docker 容器等方式
安全控制默认只读模式 + Atlas 服务账户权限控制
支持代码生成可根据数据库上下文生成查询/脚本代码

官方文档

https://www.mongodb.com/zh-cn/docs/mcp-server/

标签:infra, ai

你的评论