mongodb-mcp-server
MongoDB MCP Server
一个用于与 MongoDB 数据库和 MongoDB Atlas 交互的 Model Context Protocol 服务器。
📚 目录
先决条件
Node.js(v20.10.0 或更高版本)
node -vMongoDB 连接字符串或 Atlas API 凭据,除非完成配置,否则服务器将无法启动。
使用 Atlas 工具需要 Service Accounts Atlas API 凭据。您可以在 MongoDB Atlas 中创建服务账户,并使用其凭据进行身份验证。有关更多详情,请参阅 Atlas API 访问。
如果您有 MongoDB 连接字符串,可以直接使用它连接到您的 MongoDB 实例。
设置
快速开始
注意: 使用 Atlas API 凭据时,请务必仅为您的服务账户分配所需的最低权限。有关详情,请参阅 Atlas API 权限。
大多数 MCP 客户端需要创建或修改配置文件以添加 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:连接字符串参数
您可以通过参数传递连接字符串,请确保使用有效的用户名和密码。
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": [
"-y",
"mongodb-mcp-server",
"--connectionString",
"mongodb://localhost:27017/myDatabase"
]
}
}
}注意:连接字符串可以配置为连接到任何 MongoDB 集群,无论是本地实例还是 Atlas 集群。
选项 2:Atlas API 凭据参数
使用您的 Atlas API 服务账户凭据。必须遵循 Atlas API 访问 部分中的所有步骤。
{
"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 命令启动服务器:
npx -y mongodb-mcp-server --apiClientId="your-atlas-service-accounts-client-id" --apiClientSecret="your-atlas-service-accounts-client-secret"有关参数的完整列表,请参阅 配置选项
要配置您的 Atlas 服务账户凭据,请参阅 Atlas API 访问
选项 4:使用环境变量的独立服务
npx -y mongodb-mcp-server您可以在配置文件中使用环境变量,或设置环境变量后通过 npx 运行服务器。
选项 5:使用 Docker
您可以在 Docker 容器中运行 MongoDB MCP Server,这样可以提供隔离环境,且无需本地安装 Node.js。
使用环境变量运行
您可以提供 MongoDB 连接字符串或 Atlas API 凭据:
选项 A:无配置
docker run --rm -i \
mongodb/mongodb-mcp-server:latest选项 B:带 MongoDB 连接字符串
docker run --rm -i \
-e MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase" \
mongodb/mongodb-mcp-server:latest选项 C:带 Atlas API 凭据
docker run --rm -i \
-e MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id" \
-e MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret" \
mongodb/mongodb-mcp-server:latestMCP 配置文件中的 Docker
无选项:
{
"mcpServers": {
"MongoDB": {
"command": "docker",
"args": ["run", "--rm", "-i", "mongodb/mongodb-mcp-server:latest"]
}
}
}带连接字符串:
{
"mcpServers": {
"MongoDB": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"MDB_MCP_CONNECTION_STRING=mongodb+srv://username:password@cluster.mongodb.net/myDatabase",
"mongodb/mongodb-mcp-server:latest"
]
}
}
}带 Atlas API 凭据:
{
"mcpServers": {
"MongoDB": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"MDB_MCP_API_CLIENT_ID=your-atlas-service-accounts-client-id",
"-e",
"MDB_MCP_API_CLIENT_SECRET=your-atlas-service-accounts-client-secret",
"mongodb/mongodb-mcp-server:latest"
]
}
}
}🛠️ 支持的工具
工具列表
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-list-alerts- 列出项目的 MongoDB Atlas 警报
注意:只有在 配置 部分设置凭据后,Atlas 工具才可用。
MongoDB 数据库工具
connect- 连接到 MongoDB 实例find- 对 MongoDB 集合执行 find 查询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 Server 可以使用多种方法进行配置,优先级如下(从高到低):
命令行参数
环境变量
配置选项
Option | Description |
| Atlas API 客户端 ID,用于身份验证。运行 Atlas 工具时需要。 |
| Atlas API 客户端密钥,用于身份验证。运行 Atlas 工具时需要。 |
| MongoDB 连接字符串,用于直接数据库连接。可选,如果未设置,您需要在与 MongoDB 数据交互之前调用 |
| 用于存储日志的文件夹。 |
| 将被禁用的工具名称、操作类型和/或工具类别的数组。 |
| 设置为 true 时,仅允许读取和元数据操作类型,禁用创建/更新/删除操作。 |
| 设置为 disabled 时,禁用遥测数据收集。 |
日志路径
默认日志位置如下:
Windows:
%LOCALAPPDATA%\mongodb\mongodb-mcp\.app-logsmacOS/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 工具,例如 list clusters、create cluster 等。mongodb- MongoDB 数据库工具,例如 find、aggregate 等。
操作类型:
create- 创建资源的工具,例如 create cluster、insert document 等。update- 更新资源的工具,例如 update document、rename collection 等。delete- 删除资源的工具,例如 delete document、drop collection 等。read- 读取资源的工具,例如 find、aggregate、list clusters 等。metadata- 读取元数据的工具,例如 list databases、list collections、collection schema 等。
只读模式
readOnly 配置选项允许你将 MCP 服务器限制为仅使用具有 "read" 和 "metadata" 操作类型的工具。启用后,所有具有 "create"、"update" 或 "delete" 操作类型的工具都不会注册到服务器。
这对于以下场景非常有用:你希望提供对 MongoDB 数据的访问以进行分析,但不允许对数据或基础设施进行任何修改。
你可以通过以下方式启用只读模式:
环境变量:
export MDB_MCP_READ_ONLY=true命令行参数:
--readOnly
当只读模式处于活动状态时,你会在服务器日志中看到一条消息,说明哪些工具因该限制而无法注册。
遥测
telemetry 配置选项允许你禁用遥测收集。启用后,MCP 服务器将收集使用数据并将其发送到 MongoDB。
你可以通过以下方式禁用遥测:
环境变量:
export MDB_MCP_TELEMETRY=disabled命令行参数:
--telemetry disabledDO_NOT_TRACK 环境变量:
export DO_NOT_TRACK=1
Atlas API 访问
要使用 Atlas API 工具,你需要在 MongoDB Atlas 中创建服务账户:
ℹ️ 注意: 有关每个 Atlas 操作所需最低权限的详细说明,请参阅下面的 Atlas API 权限 部分。
创建服务账户:
登录 cloud.mongodb.com 上的 MongoDB Atlas
导航到 Access Manager > Organization Access
单击 Add New > Applications > Service Accounts
为你的服务账户输入名称、描述和过期时间(例如,"MCP, MCP Server Access, 7 days")
仅分配你的用例所需的最低权限。
有关详细信息,请参阅 Atlas API 权限。
单击"Create"
要了解有关服务账户的更多信息,请查看 MongoDB Atlas 文档。
保存客户端凭据:
创建后,系统会显示 Client ID 和 Client Secret
重要提示: 请立即复制并保存 Client Secret,因为它不会再次显示
添加访问列表条目:
将你的 IP 地址添加到 API 访问列表
配置 MCP 服务器:
使用以下配置方法之一来设置你的
apiClientId和apiClientSecret
Atlas API 权限
安全警告: 授予 Organization Owner 角色通常没有必要,并且可能带来安全风险。请仅分配你的用例所需的最低权限。
快速参考:每个操作所需的角色
你想做什么 | 最安全的可分配角色(位置) |
列出组织/项目 | Org Member 或 Org Read Only(Org) |
创建新项目 | Org Project Creator(Org) |
查看项目中的集群/数据库 | Project Read Only(Project) |
在项目中创建/管理集群 | Project Cluster Manager(Project) |
管理项目访问列表 | Project IP Access List Admin(Project) |
管理数据库用户 | Project Database Access Admin(Project) |
对于大多数操作,优先使用项目级角色。仅将角色分配给需要管理或查看的特定项目。
避免使用 Organization Owner,除非你需要对组织中的所有项目和设置拥有完全的管理控制权。
有关角色及其权限的完整列表,请参阅 Atlas User Roles 文档。
配置方法
环境变量
使用前缀 MDB_MCP_ 设置环境变量,后跟大写并用下划线分隔的选项名称:
# Set Atlas API credentials (via Service Accounts)
export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
# Set a custom MongoDB connection string
export MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
export MDB_MCP_LOG_PATH="/path/to/logs"
MCP 配置文件示例
使用环境变量的连接字符串
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server"],
"env": {
"MDB_MCP_CONNECTION_STRING": "mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
}
}
}
}使用环境变量的 Atlas API 凭据
{
"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"
}
}
}
}命令行参数
启动服务器时,将配置选项作为命令行参数传入:
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/logsMCP 配置文件示例
使用命令行参数的连接字符串
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": [
"-y",
"mongodb-mcp-server",
"--connectionString",
"mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
]
}
}
}使用命令行参数的 Atlas API 凭据
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": [
"-y",
"mongodb-mcp-server",
"--apiClientId",
"your-atlas-service-accounts-client-id",
"--apiClientSecret",
"your-atlas-service-accounts-client-secret"
]
}
}
}🤝 参与贡献
有兴趣参与贡献吗?太好了!请查看我们的贡献指南,了解代码贡献、标准、添加新工具和故障排除信息的相关指南。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol (MCP) application for automated GitHub PR analysis and issue management.…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rajath-raman/mongodb-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server