用途
MongoDB Atlas MCP Server 是一个 Model Context Protocol(MCP)服务器,用于提供对 MongoDB Atlas API 的访问。它内部使用 mongodb-atlas-api-client 包,将 MongoDB Atlas 功能封装为 MCP 工具,供 MCP 兼容客户端调用。该服务器暴露了 mongodb-atlas-api-client 的大部分接口。
主要能力
服务器提供的 MCP 工具按功能领域分组如下:
- 数据库用户:user_get(按用户名获取)、user_get_all(列出全部)、user_create、user_update、user_delete。
- 集群:cluster_get、cluster_get_all、cluster_create、cluster_update、cluster_delete;cluster_get_advanced_configuration 与 cluster_update_advanced_configuration(processArgs 高级配置);cluster_test_primary_failover(发起测试主节点故障转移)。
- 项目:project_get_by_id、project_get_by_name、project_get_all、project_create、project_delete;project_get_teams(列出项目团队)、project_remove_user(移除项目用户)、project_assign_teams(分配团队)。
- 云备份:cloud_backup_get_snapshots(列出副本集快照)、cloud_backup_get_snapshot(获取指定快照)、cloud_backup_get_restore_job(获取快照恢复任务)、cloud_backup_create_restore_job(创建快照恢复任务)。
- 组织:organization_get_by_id、organization_get_all、organization_get_users、organization_get_projects、organization_delete、organization_rename、organization_invite。
- 项目访问列表(当前):project_access_list_get_all、project_access_list_get、project_access_list_create、project_access_list_update(POST 语义的 upsert)、project_access_list_delete。
- 项目白名单(旧版):project_whitelist_get_all、project_whitelist_get、project_whitelist_create、project_whitelist_update、project_whitelist_delete。
- 事件:events_get_all(列出项目事件)、events_get(按 ID 获取项目范围事件)、events_get_by_org(按 ID 获取组织事件)、events_get_all_by_org(列出组织事件)。
- Atlas Search:atlas_search_get_all(列出集合索引)、atlas_search_create、atlas_search_get、atlas_search_update、atlas_search_delete、atlas_search_get_all_analyzers(列出分析器)、atlas_search_upsert_analyzer(创建/更新分析器)。
- Atlas 用户(账户级):atlas_user_get_by_name、atlas_user_get_by_id、atlas_user_get_all(列出项目 Atlas 用户)、atlas_user_create、atlas_user_update。
- 警报:alert_get_all(列出项目警报)、alert_get、alert_acknowledge。
- Data Lake:datalake_get、datalake_get_all、datalake_create、datalake_update、datalake_delete、datalake_get_logs_stream(获取查询日志,返回 base64 编码的 gzip 数据)。
- 云提供商访问:cloud_provider_access_get_all、cloud_provider_access_create、cloud_provider_access_update、cloud_provider_access_delete。
使用方式
1. 克隆仓库并安装依赖
克隆该仓库并安装依赖(安装命令在官方资料中未给出具体内容)。
2. 设置环境变量
在使用服务器之前,需要设置包含 MongoDB Atlas API 凭据的环境变量。
必需环境变量:
- MONGODB_ATLAS_PUBLIC_KEY:MongoDB Atlas API 公钥
- MONGODB_ATLAS_PRIVATE_KEY:MongoDB Atlas API 私钥
- MONGODB_ATLAS_PROJECT_ID:MongoDB Atlas 项目/组 ID
可选环境变量:
- MONGODB_ATLAS_BASE_URL:Atlas API 基础 URL(默认为 https://cloud.mongodb.com/api/atlas/v1.0 )
3. 获取 Atlas API 密钥
- 登录 MongoDB Atlas。
- 进入 Organization Settings → Access Manager → API Keys。
- 点击 Create API Key。
- 分配适当权限(建议 Project Read/Write 访问)。
- 复制公钥和私钥。
- 在项目设置中找到 Project ID。
4. 配置示例
官方资料中提供了示例配置方式,或创建 .env 文件(具体示例内容在资料中未完整展示)。
5. 运行服务器
运行服务器后,可与任何 MCP 兼容客户端配合使用。服务器通过 stdin/stdout 进行通信。
示例工具使用
官方资料中给出了示例工具用法;其中说明:日志以 base64 编码的 gzip 数据形式返回在文本响应中,需要先解码 base64 再解压(gunzip)才能读取。
开发模式
官方资料提及可运行在开发模式。
依赖与参考
- @modelcontextprotocol/sdk:用于服务器实现的 MCP SDK。
- mongodb-atlas-api-client:MongoDB Atlas API 客户端库。
适用场景
适用于已经使用 MongoDB Atlas,并希望通过 MCP 兼容客户端以工具调用的方式集中管理和查询 Atlas 资源的场景,例如管理数据库用户、集群、项目、组织、备份、访问列表、Atlas Search 索引、警报、Data Lake 和云提供商访问等。
限制
- 需要 MongoDB Atlas API 凭据(公钥、私钥、项目 ID),并需要分配适当权限。
- 服务器通过 stdin/stdout 通信,需要 MCP 兼容客户端。
- 服务器会对以下情况提供详细错误信息:缺少或无效的 API 凭据、网络连接问题、无效参数、MongoDB Atlas API 错误。
- 部分工具的具体请求/响应参数、安装命令、运行命令、配置示例的完整内容在官方资料中未完整提供;日志类工具返回 base64 编码的 gzip 数据,需要额外解码与解压。