1. 服务概述
一句话简介:与MongoDB数据库和MongoDB Atlas交互的MCP服务器,提供完整的数据库管理和Atlas集群管理功能
- 服务名称:MongoDB MCP Server
- 版本号:最新版本
- 开发者/提供方:mongodb-js
- 协议类型:MCP (Model Context Protocol)
2. 核心功能
列出该MCP服务提供的主要功能点:
MongoDB Atlas Tools
- 集群管理:创建、更新、删除和查询Atlas集群
- 项目组织:管理Atlas项目和组织结构
- 访问控制:配置数据库用户和访问权限
- 监控告警:查看集群性能指标和配置告警
- 备份恢复:管理集群备份和恢复操作
MongoDB Database Tools
- 数据库查询:执行MongoDB查询和聚合操作
- 集合管理:创建、删除和管理集合
- 文档操作:插入、更新、删除文档
- 索引管理:创建和管理数据库索引
- 数据分析:执行数据分析和统计查询
部署与安全
- 多种部署方式:支持NPM、Docker和云平台部署
- 双重认证支持:支持连接字符串和Atlas API两种认证方式
- 只读模式:默认启用只读模式,保护数据安全
- 环境变量配置:安全地传递敏感配置信息
3. 使用场景
描述该服务适合在什么情况下使用:
典型应用场景
- 数据库管理自动化:让AI助手自动执行数据库查询、数据迁移和索引优化等操作
- Atlas集群运维:通过AI助手管理Atlas集群的创建、配置和监控
- 数据分析与报告:执行复杂的数据分析查询并生成报告
- 数据库迁移:辅助数据库迁移和同步操作
- 性能优化:分析查询性能并提供优化建议
- 安全审计:审查数据库访问权限和安全配置
- 开发测试:快速创建测试数据库和测试数据
4. 接入方式
4.1 服务端点
MongoDB MCP Server通过MCP协议进行通信,支持多种运行方式:
- NPM方式:通过npx直接运行,无需本地安装
- Docker方式:使用Docker容器运行,提供隔离环境
- 云平台部署:支持Azure等公有云平台部署
4.2 认证与权限
方式1:连接字符串认证
使用MongoDB连接字符串直接连接数据库:
- 支持本地MongoDB实例和Atlas集群
- 连接字符串格式:
mongodb://username:password@host:port/database - Atlas连接字符串格式:
mongodb+srv://username:password@cluster.mongodb.net/database
方式2:Atlas API认证
使用Atlas Service Accounts凭证进行认证:
- 在MongoDB Atlas中创建Service Account
- 获取Client ID和Client Secret
- 配置API权限范围
安全建议1:使用Atlas API凭证时,务必为服务账户分配最小必需权限。详见Atlas API权限文档。
安全建议2:强烈建议使用环境变量传递敏感配置(如连接字符串和API凭证),而非命令行参数。命令行参数可能在进程列表中可见或被记录在系统日志中,存在泄露风险。
4.3 数据格式
MongoDB MCP Server使用JSON格式进行数据交换:
- 请求格式:JSON格式的MCP协议消息
- 响应格式:MongoDB查询结果或Atlas API响应(JSON格式)
- 数据格式:MongoDB文档格式(BSON扩展的JSON)
4.4 服务器配置
配置1:使用连接字符串(推荐用于数据库操作)
{ "mcpServers": { "MongoDB": { "command": "npx", "args": ["-y", "mongodb-mcp-server@latest", "--readOnly"], "env": { "MDB_MCP_CONNECTION_STRING": "mongodb://localhost:27017/myDatabase" } } } }配置2:使用Atlas API凭证(推荐用于Atlas管理)
{ "mcpServers": { "MongoDB": { "command": "npx", "args": ["-y", "mongodb-mcp-server@latest", "--readOnly"], "env": { "MDB_MCP_API_CLIENT_ID": "your-atlas-service-accounts-client-id", "MDB_MCP_API_CLIENT_SECRET": "your-atlas-service-accounts-client-secret" } } } }配置3:使用Docker容器
选项A:无配置运行
docker run --rm -i \ mongodb/mongodb-mcp-server:latest选项B:使用连接字符串
# 设置环境变量 export MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase" # 启动Docker容器 docker run --rm -i \ -e MDB_MCP_CONNECTION_STRING \ -e MDB_MCP_READ_ONLY="true" \ mongodb/mongodb-mcp-server:latest选项C:使用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" # 启动Docker容器 docker run --rm -i \ -e MDB_MCP_API_CLIENT_ID \ -e MDB_MCP_API_CLIENT_SECRET \ -e MDB_MCP_READ_ONLY="true" \ mongodb/mongodb-mcp-server:latest配置4:使用命令行参数
# 设置环境变量 export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id" export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret" # 启动服务器 npx -y mongodb-mcp-server@latest --readOnly5. 接口定义
MongoDB MCP Server提供完整的MongoDB和Atlas API集成:
5.1 环境变量配置
| 环境变量 | 说明 | 是否必需 |
|---|---|---|
| MDB_MCP_CONNECTION_STRING | MongoDB连接字符串 | 连接字符串模式必需 |
| MDB_MCP_API_CLIENT_ID | Atlas Service Account客户端ID | Atlas API模式必需 |
| MDB_MCP_API_CLIENT_SECRET | Atlas Service Account客户端密钥 | Atlas API模式必需 |
| MDB_MCP_READ_ONLY | 启用只读模式(默认true) | 可选 |
5.2 命令行参数
| 参数 | 说明 | 默认值 |
|---|---|---|
| --readOnly | 启用只读模式,保护数据安全 | 默认启用 |
| --help | 显示帮助信息 | - |
| --version | 显示版本信息 | - |
5.3 支持的操作类型
- 数据库查询:find、aggregate、count、distinct等
- 文档操作:insert、update、delete、replace等(需禁用只读模式)
- 集合管理:createCollection、dropCollection、listCollections等
- 索引管理:createIndex、dropIndex、listIndexes等
- Atlas集群管理:创建、更新、删除、查询集群
- 项目管理:创建和管理Atlas项目
- 访问控制:管理数据库用户和权限
6. 快速开始
6.1 环境要求
- Node.js:
- 至少 20.19.0
- 使用 v22 时至少需要 v22.12.0
- 或任何 23+ 版本
- MongoDB连接字符串或Atlas API凭证(必需,否则服务器无法启动)
- MCP客户端:Claude Desktop、Cursor、Windsurf、VS Code等支持MCP的工具
验证Node.js版本:
node -v6.2 示例代码
快速启动(连接字符串方式)
# 1. 配置MCP客户端(以Claude Desktop为例) # 文件位置: # macOS: ~/Library/Application Support/Claude/claude_desktop_config.json # Windows: %APPDATA%\Claude\claude_desktop_config.json { "mcpServers": { "MongoDB": { "command": "npx", "args": ["-y", "mongodb-mcp-server@latest", "--readOnly"], "env": { "MDB_MCP_CONNECTION_STRING": "mongodb://localhost:27017/myDatabase" } } } } # 2. 重启MCP客户端 # 3. 开始使用AI助手操作MongoDB数据库快速启动(Atlas API方式)
# 1. 在Atlas中创建Service Account # 访问:MongoDB Atlas → Organization Access Manager → Service Accounts # 创建新的Service Account并记录Client ID和Client Secret # 2. 配置MCP客户端 { "mcpServers": { "MongoDB": { "command": "npx", "args": ["-y", "mongodb-mcp-server@latest", "--readOnly"], "env": { "MDB_MCP_API_CLIENT_ID": "your_client_id_here", "MDB_MCP_API_CLIENT_SECRET": "your_client_secret_here" } } } }使用示例
# 示例1:查询数据 用户指令:"查询users集合中所有活跃用户" AI行为:执行MongoDB查询并返回结果 # 示例2:数据分析 用户指令:"统计orders集合中每个产品的销售数量" AI行为:执行聚合查询并生成统计报告 # 示例3:Atlas集群管理 用户指令:"列出我的Atlas项目中的所有集群" AI行为:调用Atlas API获取集群列表 # 示例4:性能优化 用户指令:"分析slow_queries集合并建议索引优化" AI行为:分析查询模式并提供索引建议启用写操作(谨慎使用)
# 移除--readOnly参数以启用写操作 { "mcpServers": { "MongoDB": { "command": "npx", "args": ["-y", "mongodb-mcp-server@latest"], "env": { "MDB_MCP_CONNECTION_STRING": "mongodb://localhost:27017/myDatabase" } } } }7. 注意事项
重要限制和注意事项
- 默认只读模式:所有示例默认包含
--readOnly参数,确保安全的只读数据访问。如需启用写操作,请移除此参数,但务必谨慎操作。 - 认证配置必需:必须配置MongoDB连接字符串或Atlas API凭证,否则服务器无法启动。
- 环境变量安全:强烈建议使用环境变量传递敏感配置,而非命令行参数。命令行参数可能在进程列表中可见或被记录。
- Atlas API权限:使用Atlas API时,务必为Service Account分配最小必需权限,遵循最小权限原则。
- Node.js版本要求:确保Node.js版本满足要求(20.19.0+、22.12.0+或23+)。
- 连接字符串格式:确保连接字符串格式正确,包含正确的用户名、密码和数据库信息。
- 网络访问:确保能够访问MongoDB实例或Atlas集群的网络连接。
- 数据备份:在进行重要操作前,建议备份关键数据。
- 性能考虑:大型查询可能消耗较多资源,请注意性能影响。
- 错误处理:AI助手会自动处理API错误,但复杂操作可能需要人工干预。
- 测试环境:建议先在测试环境中验证功能,再应用于生产环境。
- 代理支持:如需通过代理访问MongoDB或Atlas,请配置相应的代理设置。