本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
MongoDB官方MCP服务器,一个用于与MongoDB数据库和MongoDB Atlas交互的模型上下文协议(Model Context Protocol)服务器。
MongoDB MCP Server是实现模型上下文协议(MCP)的服务器,提供与MongoDB数据库和MongoDB Atlas云服务的交互能力。该服务器允许MCP客户端通过标准化接口访问MongoDB工具和服务,实现数据库管理、集群操作和数据查询等功能。
MongoDB MCP Server适用于需要通过MCP协议与MongoDB交互的各类客户端应用,包括但不限于:
支持的MCP客户端包括:Windsurf、VSCode、Claude Desktop和Cursor等。
node -v
大多数MCP客户端需要创建或修改配置文件以添加MCP服务器。
注意:不同客户端的配置文件语法可能不同。请参考以下链接获取最新语法说明:
您可以提供MongoDB连接字符串或Atlas API凭据:
docker run --rm -i \ mongodb/mongodb-mcp-server:latest
docker run --rm -i \ -e MDB_MCP_CONNECTION_STRING="mongodb+srv://username:***/myDatabase" \ mongodb/mongodb-mcp-server:latest
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:latest
无选项配置:
{ "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:***/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" ] } } }
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工具仅在配置部分设置凭据后可用。
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 Server可通过多种方法配置,优先级从高到低如下:
| 选项 | 描述 |
|---|---|
apiClientId | 用于认证的Atlas API客户端ID |
apiClientSecret | 用于认证的Atlas API客户端密钥 |
connectionString | MongoDB连接字符串,用于直接数据库连接(可选,用户可在每次工具调用时提供) |
logPath | 存储日志的文件夹 |
disabledTools | 要禁用的工具名称、操作类型和/或工具类别的数组 |
readOnly | 设置为true时,仅允许读取和元数据操作类型,禁用创建/更新/删除操作 |
telemetry | 设置为disabled时,禁用遥测数据收集 |
默认日志位置如下:
%LOCALAPPDATA%\mongodb\mongodb-mcp\.app-logs~/.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数据库工具,如find、aggregate等。操作类型:
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 disabledexport DO_NOT_TRACK=1要使用Atlas API工具,需要在MongoDB Atlas中创建服务账户:
创建服务账户:
要了解有关服务账户的更多信息,请查看MongoDB Atlas文档。
保存客户端凭据:
添加访问列表条目:
配置MCP服务器:
apiClientId和apiClientSecret设置以MDB_MCP_为前缀的环境变量,后跟大写的选项名称(使用下划线分隔):
# 设置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:***/myDatabase" export MDB_MCP_LOG_PATH="/path/to/logs"
Docker部署示例:
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" \ -e MDB_MCP_CONNECTION_STRING="mongodb+srv://username:***/myDatabase" \ mongodb/mongodb-mcp-server:latest
使用环境变量的连接字符串配置:
{ "mcpServers": { "MongoDB": { "command": "docker", "args": ["run", "-i", "--rm", "mongodb/mongodb-mcp-server"], "env": { "MDB_MCP_CONNECTION_STRING": "mongodb+srv://username:***/myDatabase" } } } }
使用Atlas API凭据的配置:
{ "mcpServers": { "MongoDB": { "command": "docker", "args": ["run", "-i", "--rm", "mongodb/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" } } } }
启动服务器时将配置选项作为命令行参数传递:
docker run -i --rm mongodb/mongodb-mcp-server \ --apiClientId="your-atlas-service-accounts-client-id" \ --apiClientSecret="your-atlas-service-accounts-client-secret" \ --connectionString="mongodb+srv://username:***/myDatabase" \ --logPath=/path/to/logs
使用命令行参数的MCP配置文件示例:
{ "mcpServers": { "MongoDB": { "command": "docker", "args": [ "run", "-i", "--rm", "mongodb/mongodb-mcp-server", "--connectionString", "mongodb+srv://username:***/myDatabase" ] } } }
version: '3' services: mongodb-mcp-server: image: mongodb/mongodb-mcp-server:latest environment: - MDB_MCP_API_CLIENT_ID=your-atlas-service-accounts-client-id - MDB_MCP_API_CLIENT_SECRET=your-atlas-service-accounts-client-secret # 或者使用直接连接字符串 # - MDB_MCP_CONNECTION_STRING=mongodb+srv://username:***/myDatabase - MDB_MCP_LOG_PATH=/logs - MDB_MCP_READ_ONLY=false - MDB_MCP_TELEMETRY=enabled volumes: - ./logs:/logs stdin_open: true tty: true
有兴趣贡献吗?太好了!请查看我们的贡献指南,了解代码贡献、标准、添加新工具和故障排除信息的指南。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429