MongoDB上下文协议服务器
一种模型上下文协议服务器,使人工智能助手能够通过自然语言与MongoDB Atlas资源进行交互,支持数据库操作和Atlas管理功能。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"MongoDB": {
"args": [
"-y",
"mongodb-mcp-server",
"--apiClientId",
"your-atlas-service-accounts-client-id",
"--apiClientSecret",
"your-atlas-service-accounts-client-secret"
],
"command": "npx"
}
}
}
该服务需要配置环境变量:DO_NOT_TRACK、MDB_MCP_API_CLIENT_ID、MDB_MCP_API_CLIENT_SECRET、MDB_MCP_CONNECTION_STRING、MDB_MCP_DISABLED_TOOLS、MDB_MCP_LOG_PATH、MDB_MCP_READ_ONLY、MDB_MCP_TELEMETRY
服务介绍
MongoDB MCP 服务器
用于与 MongoDB 数据库和 MongoDB Atlas 交互的模型上下文协议服务器。
📚 目录
前提条件
- Node.js (v20 或更高版本)
shell
node -v
- MongoDB 连接字符串或 Atlas API 凭证,未配置时服务器将无法启动。
- 服务账户 Atlas API 凭证 是使用 Atlas 工具所必需的。您可以在 MongoDB Atlas 中创建一个服务账户,并使用其凭证进行身份验证。有关更多详细信息,请参阅 Atlas API Access。
- 如果您有 MongoDB 连接字符串,可以直接使用它来连接到您的 MongoDB 实例。
设置
快速启动
大多数 MCP 客户端需要创建或修改配置文件以添加 MCP 服务器。
注意:不同客户端的配置文件语法可能有所不同。请参考以下链接获取最新的预期语法:
- Windsurf: https://docs.windsurf.com/windsurf/mcp
- VSCode: https://code.visualstudio.com/docs/copilot/chat/mcp-servers
- Claude Desktop: https://modelcontextprotocol.io/quickstart/user
- Cursor: https://docs.cursor.com/context/model-context-protocol
选项 1: 连接字符串参数
您可以使用参数传递连接字符串,确保使用有效的用户名和密码。
json
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": [
"-y",
"mongodb-mcp-server",
"--connectionString",
"mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
]
}
}
}
选项 2: Atlas API 凭证参数
使用您的 Atlas API 服务账户凭证。必须遵循 Atlas API Access 部分中的所有步骤。
json
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": [
"-y",
"mongodb-mcp-server",
"--apiClientId",
"your-atlas-service-accounts-client-id",
"--apiClientSecret",
"your-atlas-service-accounts-client-secret"
]
}
}
}
选项 3: 使用命令参数的独立服务
使用 npx 命令启动服务器:
shell
npx -y mongodb-mcp-server --apiClientId="your-atlas-service-accounts-client-id" --apiClientSecret="your-atlas-service-accounts-client-secret"
- 查看完整的参数列表,请参阅 Configuration Options
- 要配置您的 Atlas 服务账户凭证,请参阅 Atlas API Access
选项 4: 使用环境变量的独立服务
shell
npx -y mongodb-mcp-server
您可以在配置文件中使用环境变量,或者设置它们并通过 npx 运行服务器。
🛠️ 支持的工具
工具列表
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%mongodbmongodb-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 服务器限制为仅使用具有“读取”和“元数据”操作类型的工具。启用后,所有具有“创建”、“更新”或“删除”操作类型的工具都不会在服务器上注册。
这对于希望提供对 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 中创建一个服务账户:
-
创建服务账户:
- 登录到 cloud.mongodb.com
- 导航到访问管理器 > 组织访问
- 单击添加新 > 应用程序 > 服务账户
- 输入服务账户的名称、描述和过期时间(例如,“MCP, MCP 服务器访问, 7 天”)
- 选择适当的权限(对于完全访问,请使用组织所有者)
- 单击“创建”
要了解有关服务账户的更多信息,请参阅 MongoDB Atlas 文档。
-
保存客户端凭据:
- 创建后,系统会显示客户端 ID 和客户端密钥
- 重要提示: 立即复制并保存客户端密钥,因为它不会再次显示
-
添加访问列表条目:
- 将您的 IP 地址添加到 API 访问列表
-
配置 MCP 服务器:
- 使用以下配置方法之一设置您的
apiClientId和apiClientSecret
- 使用以下配置方法之一设置您的
配置方法
环境变量
设置带有前缀 MDB_MCP_ 的环境变量,后跟大写且带下划线的选项名称:
shell
设置 Atlas API 凭证(通过服务账户)
export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
设置自定义 MongoDB 连接字符串
export MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
export MDB_MCP_LOG_PATH="/path/to/logs"
MCP 配置文件示例
带有环境变量的连接字符串
json
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server"],
"env": {
"MDB_MCP_CONNECTION_STRING": "mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
}
}
}
}
带有环境变量的 Atlas API 凭证
json
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server"],
"env": {
"MDB_MCP_API_CLIENT_ID": "your-atlas-service-accounts-client-id",
"MDB_MCP_API_CLIENT_SECRET": "your-atlas-service-accounts-client-secret"
}
}
}
}#### 命令行参数
在启动服务器时,通过命令行参数传递配置选项:
shell
npx -y mongodb-mcp-server --apiClientId="your-atlas-service-accounts-client-id" --apiClientSecret="your-atlas-service-accounts-client-secret" --connectionString="mongodb+srv://username:password@cluster.mongodb.net/myDatabase" --logPath=/path/to/logs
MCP 配置文件示例
使用命令行参数的连接字符串
json
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": [
"-y",
"mongodb-mcp-server",
"--connectionString",
"mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
]
}
}
}
使用命令行参数的 Atlas API 凭证
json
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": [
"-y",
"mongodb-mcp-server",
"--apiClientId",
"your-atlas-service-accounts-client-id",
"--apiClientSecret",
"your-atlas-service-accounts-client-secret"
]
}
}
}
🤝 贡献
有兴趣贡献吗?太好了!请查看我们的贡献指南,了解代码贡献、标准、添加新工具以及故障排除信息的指导方针。