mcpField
M
MCP MongoDB Server

MCP MongoDB Server

本地服务
npmjs.com数据库28313 周前更新

关于 MCP MongoDB Server

MCP MongoDB Server 是一个 MCP 服务,让 AI 助手可以查询和操作 MongoDB 数据库。它可自动推断集合结构,并提供只读模式以降低误写风险,适合希望用自然语言探索数据的开发者。

主要功能

  1. 01推断集合结构并执行查询与聚合
  2. 02只读模式阻止所有写入操作
  3. 03限制跨数据库及服务端 JavaScript 操作
  4. 04支持 stdio 与 HTTP 两种传输方式
  5. 05提供时间戳转换辅助工具

适用场景

  1. 01用自然语言探索 MongoDB 集合数据
  2. 02在只读模式下让 AI 分析生产数据
  3. 03通过 HTTP 端点为多个客户端提供数据库访问

MCP 相关

该项目是 MCP 服务,向 Claude Desktop、Cursor 等 MCP 客户端暴露集合查询、聚合、写入和时间转换等工具,支持本地 stdio 和远程 HTTP 连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mongo-server": {
"command": "npx",
"args": [
"-y",
"github:kiliczsh/mcp-mongo-server"
]
}
}
}
启动命令npx -y github:kiliczsh/mcp-mongo-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmgithub:kiliczsh/mcp-mongo-server

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP MongoDB 服务


NPM Version NPM Downloads NPM License

一个模型上下文协议(MCP)服务,可让 AI 助手使用你的 MongoDB 数据库。它会公开你的集合、推断其架构,并通过标准接口运行查询、聚合和写入操作,因此 Claude Desktop 和 Cursor 等工具可以读取并分析你的数据。

演示

MCP MongoDB 服务演示 | Claude Desktop

为什么使用它

  • 用日常语言与数据库交互 — 助手会自动发现你的集合及其结构。
  • 默认安全 — 开启只读模式后,助手可以探索数据,而不会有更改数据的风险。
  • 适用范围广 — 可通过普通连接或 TLS 连接到独立部署、副本集、分片集群和 Atlas 部署。

主要功能

  • 只读模式 — 阻止所有写入操作(插入、更新、创建索引,以及可能修改数据的 $out/$merge 等聚合阶段)。
  • 智能 ObjectId 处理 — 可配置将 24 位十六进制字符串转换为 ObjectId 的方式:auto/none/force。
  • 架构推断 — 根据文档样本自动检测集合架构。
  • 查询与聚合 — 完整支持查询和聚合管道,并可选择生成 explain 计划。
  • 写入操作 — 插入、更新和创建索引(关闭只读模式时)。
  • 时间转换 — convertTime 助手可将 Unix 时间戳和日期字符串转换为 UTC/GMT/ISO 格式,让跨时区的日期查询清晰明确。
  • 进度与取消 — 长时间运行的操作会报告进度,并可在执行过程中取消。
  • 两种传输方式 — 可通过 stdio 在本地运行,也可公开 HTTP 端点以供远程访问。

要求

  • Node.js 20 或更高版本

快速开始

将服务指向你的数据库,无需安装:

npx -y mcp-mongo-server mongodb://localhost:27017/mydatabase

安全地进行探索,不必担心数据会被更改:

npx -y mcp-mongo-server mongodb://localhost:27017/mydatabase --read-only

用法

本地(stdio)

这是默认方式,供 Claude Desktop、Cursor 和其他本地客户端使用:

npx -y mcp-mongo-server "mongodb://user:pass@localhost:27017/mydatabase"
远程(HTTP)

在 /mcp 公开 HTTP 端点,以供远程访问或多个客户端访问:

npx -y mcp-mongo-server "mongodb://user:pass@localhost:27017/mydatabase" --transport http --port 3001

默认情况下,仅接受不带浏览器 Origin 的请求(CLI、IDE)和来自 localhost 的请求;其他请求均会被拒绝,并返回 403,以防范 DNS 重绑定攻击。使用 --allowed-origins 允许特定的浏览器来源:

npx -y mcp-mongo-server "mongodb://..." --transport http --port 3001 --allowed-origins "https://app.example.com"
选项
标志说明
--read-only, -r阻止所有写入操作
--allow-cross-db允许聚合 $out/$merge/$lookup 以其他数据库为目标(默认关闭)
--allow-server-js允许服务端 JavaScript 运算符 $function/$where/$accumulator(默认关闭)
--transport, -tstdio(默认)或 http
--port, -pHTTP 端口(默认 3001)
--allowed-origins以逗号分隔的浏览器来源列表,在 HTTP 模式下允许这些来源
--json-limitHTTP 请求正文大小上限(默认 10mb)
--auth-token要求 HTTP 端点请求携带 Authorization: Bearer <token>
环境变量
变量说明
MCP_MONGODB_URIMongoDB 连接 URI(可替代参数)
MCP_MONGODB_READONLY启用只读模式("true")
MCP_MONGODB_ALLOW_CROSS_DB允许跨数据库聚合阶段("true")
MCP_MONGODB_ALLOW_SERVER_JS允许服务端 JavaScript 运算符("true")
MCP_PORTHTTP 端口
MCP_HTTP_ALLOWED_ORIGINS以逗号分隔的浏览器来源列表,在 HTTP 模式下允许这些来源
MCP_HTTP_JSON_LIMITHTTP 请求正文大小上限(默认 10mb)
MCP_HTTP_AUTH_TOKEN访问 HTTP 端点所需的 Bearer 令牌

安全

数据库范围。 服务器操作的是连接字符串中指定的数据库。默认情况下,访问其他数据库的聚合阶段($out、$merge、带有显式 db 的 $lookup)会被拒绝,因此管道无法在你未指定的数据库中偷偷读取或写入数据。如果需要使用这些阶段,请通过 --allow-cross-db 启用。

服务器端 JavaScript。 聚合运算符 $function、$where 和 $accumulator 会在 MongoDB 服务器上运行任意 JavaScript。默认情况下,这些运算符会被拒绝;如果你信任正在运行的管道,请通过 --allow-server-js 启用。

只读模式会阻止所有写入路径,包括会写入数据或运行服务器端 JavaScript 的聚合阶段($out、$merge、$function、$where、$accumulator)。

最小权限。 应用层检查的作用有限,最有力的保障来自数据库。请使用权限仅限所需数据库的 MongoDB 用户进行连接;如果助手只需进行探索,请赋予其只读权限。这样,数据库本身就能强制执行访问边界,提供纵深防御。

文档

许可证

MIT — 详情请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。