MongoDB MCP Server
一个用于与 MongoDB 数据库和 MongoDB Atlas 交互的 Model Context Protocol 服务器。
📚 目录
- 🚀 快速开始
- 前提条件
- 设置
- 快速启动
- 🛠️ 支持的工具
- MongoDB Atlas 工具
- MongoDB 数据库工具
- ⚙️ 配置
- 配置选项
- Atlas API 访问
- 配置方法
- 环境变量
- 命令行参数
- MCP 客户端配置
- 🤝 贡献
前提条件
- Node.js (v20 或更高版本)
- 一个 MongoDB 连接字符串或 Atlas API 凭证,除非配置正确,否则服务器将无法启动。
- Atlas API 凭证 是使用 Atlas 工具的必要条件。你可以在 MongoDB Atlas 中创建一个服务账户,并使用其凭证进行身份验证。详情请参阅 Atlas API 访问。
- 如果你有 MongoDB 连接字符串,可以直接使用它连接到你的 MongoDB 实例。
设置
快速启动
大多数 MCP 客户端需要创建或修改配置文件以添加 MCP 服务器。
- Claude Desktop: https://modelcontextprotocol.io/quickstart/user
选项 1: 通过命令行参数传递连接字符串
你可以通过命令行参数传递连接字符串,确保使用有效的用户名和密码。
选项 2: 通过命令行参数传递 Atlas API 凭证
使用你的 Atlas API 服务账户凭证。更多详情请参阅 Atlas API 访问 部分。
其他选项
你也可以在配置文件中使用环境变量,或者在运行服务器时通过 npx 设置它们。
- 在 MCP 文件中通过环境变量设置连接字符串 示例
- 在 MCP 文件中通过环境变量设置 Atlas API 凭证 示例
🛠️ 支持的工具
工具列表
MongoDB Atlas 工具
atlas-list-orgs
- 列出 MongoDB Atlas 组织
atlas-list-projects
- 列出 MongoDB Atlas 项目
atlas-create-project
- 创建新的 MongoDB Atlas 项目
atlas-list-clusters
- 列出 MongoDB Atlas 集群
atlas-inspect-cluster
- 检查特定的 MongoDB Atlas 集群
atlas-create-free-cluster
- 创建免费的 MongoDB Atlas 集群
atlas-connect-cluster
- 连接到 MongoDB Atlas 集群
atlas-inspect-access-list
- 检查允许访问 MongoDB Atlas 集群的 IP/CIDR 范围
atlas-create-access-list
- 配置 MongoDB Atlas 集群的 IP/CIDR 访问列表
atlas-list-db-users
- 列出 MongoDB Atlas 数据库用户
atlas-create-db-user
- 列出 MongoDB Atlas 数据库用户
注意:Atlas 工具仅在 配置 部分设置凭证后可用。
MongoDB 数据库工具
connect
- 连接到 MongoDB 实例
find
- 在 MongoDB 集合中执行查询
aggregate
- 在 MongoDB 集合中执行聚合操作
count
- 获取 MongoDB 集合中的文档数量
insert-one
- 向 MongoDB 集合中插入单个文档
insert-many
- 向 MongoDB 集合中插入多个文档
create-index
- 为 MongoDB 集合创建索引
update-one
- 更新 MongoDB 集合中的单个文档
update-many
- 更新 MongoDB 集合中的多个文档
rename-collection
- 重命名 MongoDB 集合
delete-one
- 从 MongoDB 集合中删除单个文档
delete-many
- 从 MongoDB 集合中删除多个文档
drop-collection
- 从 MongoDB 数据库中移除集合
drop-database
- 移除 MongoDB 数据库
list-databases
- 列出 MongoDB 连接中的所有数据库
list-collections
- 列出给定数据库中的所有集合
collection-indexes
- 描述集合的索引
collection-schema
- 描述集合的模式
collection-storage-size
- 获取集合的大小(以 MB 为单位)
db-stats
- 返回 MongoDB 数据库的统计信息
配置
MongoDB MCP 服务器可以通过多种方法进行配置,优先级从高到低如下:
- 命令行参数
- 环境变量
配置选项
选项 | 描述 |
apiClientId | Atlas API 客户端 ID,用于身份验证 |
apiClientSecret | Atlas API 客户端密钥,用于身份验证 |
connectionString | MongoDB 连接字符串,用于直接连接数据库(可选,用户可以选择在每次调用工具时提供) |
logPath | 存储日志的文件夹 |
disabledTools | 一个数组,包含将被禁用的工具名称、操作类型和/或工具类别 |
readOnly | 当设置为 true 时,仅允许读取和元数据操作类型,禁用创建/更新/删除操作 |
telemetry | 当设置为 disabled 时,禁用遥测数据收集 |
日志路径
默认的日志存储位置如下:
- Windows:
%LOCALAPPDATA%\mongodb\mongodb-mcp\.app-logs
- macOS/Linux:
~/.mongodb/mongodb-mcp/.app-logs
禁用工具
你可以通过
disabledTools
选项禁用特定工具或工具类别。该选项接受一个字符串数组,每个字符串可以是工具名称、操作类型或类别。数组的构建方式取决于你使用的配置方法:
- 对于 环境变量 配置,使用逗号分隔的字符串:
export MDB_MCP_DISABLED_TOOLS="create,update,delete,atlas,collectionSchema"
。
- 对于 命令行参数 配置,使用空格分隔的字符串:
--disabledTools create update delete atlas collectionSchema
。
工具类别:
atlas
- MongoDB Atlas 工具,例如列出集群、创建集群等。
mongodb
- MongoDB 数据库工具,例如查询、聚合等。
操作类型:
create
- 创建资源的工具,例如创建集群、插入文档等。
update
- 更新资源的工具,例如更新文档、重命名集合等。
delete
- 删除资源的工具,例如删除文档、移除集合等。
read
- 读取资源的工具,例如查询、聚合、列出集群等。
metadata
- 读取元数据的工具,例如列出数据库、列出集合、集合模式等。
只读模式
readOnly
配置选项允许你将 MCP 服务器限制为仅使用具有 "read" 和 "metadata" 操作类型的工具。启用后,所有具有 "create"、"update" 或 "delete" 操作类型的工具将不会注册到服务器。这在你想提供对 MongoDB 数据的访问权限而不允许对数据或基础设施进行任何修改的场景中非常有用。
你可以通过以下方式启用只读模式:
- 环境变量:
export MDB_MCP_READ_ONLY=true
- 命令行参数:
--readOnly
当只读模式激活时,你会在服务器日志中看到一条消息,指示哪些工具由于此限制而未被注册。
遥测
telemetry
配置选项允许你禁用遥测数据收集。启用后,MCP 服务器将收集使用数据并将其发送到 MongoDB。你可以通过以下方式禁用遥测:
- 环境变量:
export MDB_MCP_TELEMETRY=disabled
- 命令行参数:
--telemetry disabled
- DO_NOT_TRACK 环境变量:
export DO_NOT_TRACK=1
Atlas API 访问
要使用 Atlas API 工具,你需要在 MongoDB Atlas 中创建一个服务账户:
- 创建服务账户:
- 登录 MongoDB Atlas:cloud.mongodb.com
- 导航到 Access Manager > Organization Access
- 点击 Add New > Applications > Service Accounts
- 输入服务账户的名称、描述和有效期(例如,"MCP, MCP Server Access, 7 days")
- 选择适当的权限(对于完全访问权限,使用 Organization Owner)
- 点击 "Create"
- 保存客户端凭证:
- 创建后,你将看到客户端 ID 和客户端密钥
- 重要: 立即复制并保存客户端密钥,因为它不会再次显示
- 添加访问列表条目(可选但推荐):
- 将你的 IP 地址添加到 API 访问列表
- 配置 MCP 服务器:
- 使用以下配置方法之一设置你的
apiClientId
和apiClientSecret
配置方法
环境变量
使用前缀
MDB_MCP_
后跟选项名称的大写形式(用下划线分隔)来设置环境变量:MCP 配置文件示例
通过环境变量设置连接字符串
通过环境变量设置 Atlas API 凭证
命令行参数
在启动服务器时通过命令行参数传递配置选项:
MCP 配置文件示例
通过命令行参数设置连接字符串
通过命令行参数设置 Atlas API 凭证
🤝 贡献
有兴趣贡献代码吗?太好了!请查看我们的 贡献指南,了解代码贡献、标准、添加新工具和故障排除信息的指南。
- Author:waytomcp
- URL:https://www.waytomcp.com/article/mongodb-js/mongodb-mcp-server
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!