MongoDB Atlas MCP服务器

一个生产就绪的Model Context Protocol (MCP)服务器,用于MongoDB Atlas与AI工具(如Cursor和Claude Desktop)的集成,提供全面的数据库操作、向量搜索功能和企业级备份/恢复功能。

  • by MatheusNattan365
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 MatheusNattan365/mongodb-atlas-mcp

使用说明

MongoDB Atlas MCP服务器

🇺🇸 英语 | 🇧🇷 葡萄牙语


英语

生产准备就绪 模型上下文协议(MCP) MongoDB Atlas服务器与AI工具集成,如 光标 和 Claude桌面版.使用TypeScript构建,具有全面的数据库操作、矢量搜索功能和企业级备份/恢复功能。

🚀 特性

  • 全面的数据库操作:使用MongoDB Atlas完成CRUD操作
  • 矢量搜索集成:完整的Atlas搜索矢量索引管理
  • 企业备份/恢复:生产就绪的备份和恢复工具
  • 安全第一:默认情况下为只读模式,使用Zod进行输入验证
  • Docker就绪:使用docker compose完成容器化
  • 有利于发展:TypeScript、结构化日志、优雅关机

📊 支持的操作

读取操作(始终可用)

  • 数据库管理: listDatabases, listCollections
  • 文档操作: findDocuments, aggregate
  • 数据导出: exportCollection, exportDatabase
  • 备份操作: backupCollection, backupDatabase
  • 矢量搜索: listVectorIndexes, getVectorIndexStats

写入操作(在READ_ONLY模式下禁用)

  • 馆藏管理: createCollection, deleteCollection
  • 文档操作: insertOne, updateOne, updateMany, deleteOne, deleteMany
  • 批量操作: bulkWrite
  • 矢量索引管理: createVectorIndex, deleteVectorIndex
  • 还原操作: restoreCollection, restoreDatabase

🏗️ 项目结构

mongodb-atlas-mcp/
├── docker-compose.yml          # Docker orchestration
├── Dockerfile                  # Container configuration
├── package.json               # Node.js dependencies
├── tsconfig.json              # TypeScript configuration
├── .gitignore                 # Git ignore rules
├── src/                       # Source code
│   ├── index.ts              # MCP server entry point
│   ├── tools.ts              # MongoDB tool implementations
│   ├── mongo.ts              # MongoDB client wrapper
│   ├── env.ts                # Environment validation
│   └── logger.ts             # Structured logging
├── scripts/                   # Execution scripts
│   ├── mcp.sh               # Unix wrapper script
│   └── mcp.cmd              # Windows wrapper script
└── mcp.config.example.json   # Cursor configuration example

⚡ 快速开始

  1. 克隆和配置

    git clone <repository-url>
    cd mongodb-atlas-mcp
    
  2. 设置环境变量 创建一个 .env 文件:

    MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/?retryWrites=true&w=majority
    READ_ONLY=true
    
  3. 使用Docker运行(推荐)

    docker compose up -d --build
    
  4. 配置光标 添加到游标设置JSON:

    {
      "mcpServers": {
        "MongoDBAtlas": {
          "command": "cmd",
          "args": ["/c", "cd /d /path/to/mongodb-atlas-mcp && scripts\\mcp.cmd"],
          "env": {
            "MONGODB_URI": "your-connection-string",
            "READ_ONLY": "true"
          }
        }
      }
    }
    
  5. 发展模式

    npm install
    npm run dev
    

💾 备份与导出

导出工具(数据分析)

  • exportCollection:以JSON/BSON格式导出文档
  • exportDatabase:导出文档的架构和元数据

备份工具(完整备份)

  • backupCollection:具有分块处理的全面恢复就绪备份
  • backupDatabase:包含集合、索引和元数据的完整数据库备份

还原工具(完全恢复)

  • restoreCollection:通过验证还原集合
  • restoreDatabase:选择性数据库还原

🔍 矢量搜索功能

  • 计划意识限制:自动Atlas计划约束验证
  • 全面管理:创建、列出、删除和监视向量索引
  • 灵活的配置:多个相似性函数和过滤字段
  • 状态监测:实时索引状态和构建进度

按计划划分的矢量索引限制:

  • M0/M2/M5(免费/共享):总共3个搜索索引
  • M10+(专用):每个集合10个搜索索引
  • 阿特拉斯专用:可用更高的限制

🔒 安全最佳实践

  • 保持 READ_ONLY=true 除非需要写操作
  • 创建具有最低权限的专用Atlas数据库用户
  • 在Atlas中使用IP分配列表或VPC对等
  • 定期轮换凭据,永不提交 .env 文件

🔧 故障排除

MCP未出现在光标中?

  • 验证脚本路径和执行权限
  • 在Windows上,运行 git config core.autocrlf input 并重新克隆以避免CRLF问题

需要暴露端口吗?

  • 否。MCP通过 stdio 使用流程管道-脚本使用 docker compose exec -T

我可以连接到本地MongoDB吗?

  • 是的,只需调整 MONGODB_URI 相应地

葡萄牙语

一个服务器 模型上下文协议(MCP) 随时准备生产,将 MongoDB Atlas 与 AI 工具集成,如 光标 e Claude桌面版使用 TypeScript 构建,具有全面的数据库操作、矢量搜索功能和企业级备份/恢复功能。

🚀 资源

  • 完整的数据库操作使用 MongoDB Atlas 完成 CRUD 操作
  • 矢量搜索集成完整的 Atlas Search 矢量索引管理
  • 备份/恢复企业生产准备好的备份和恢复工具
  • 安全第一默认只读模式, 使用 Zod 验证输入
  • Pronto支持Docker使用 docker-compose 完成容器化
  • 发展友好TypeScript,结构化日志,有趣的关闭

📊 支持的操作

读取操作(始终可用)

  • 银行管理: listDatabases, listCollections
  • 文档操作: findDocuments, aggregate
  • 数据导出: exportCollection, exportDatabase
  • 备份操作: backupCollection, backupDatabase
  • 矢量搜索: listVectorIndexes, getVectorIndexStats

写入操作(在 READ_ONLY 模式下禁用)

  • 收藏管理: createCollection, deleteCollection
  • 文档操作: insertOne, updateOne, updateMany, deleteOne, deleteMany
  • 批次操作: bulkWrite
  • 矢量索引管理: createVectorIndex, deleteVectorIndex
  • 恢复操作: restoreCollection, restoreDatabase

⚡ 快速入门

  1. 克隆和配置

    git clone <url-do-repositorio>
    cd mongodb-atlas-mcp
    
  2. 定义环境变量 创建文件 .env:

    MONGODB_URI=mongodb+srv://usuario:senha@cluster.mongodb.net/?retryWrites=true&w=majority
    READ_ONLY=true
    
  3. 使用 Docker (推荐)

    docker compose up -d --build
    
  4. 配置光标 将光标设置添加到 JSON :

    {
      "mcpServers": {
        "MongoDBAtlas": {
          "command": "cmd",
          "args": ["/c", "cd /d /caminho/para/mongodb-atlas-mcp && scripts\\mcp.cmd"],
          "env": {
            "MONGODB_URI": "sua-string-de-conexao",
            "READ_ONLY": "true"
          }
        }
      }
    }
    

💾 备份 vs 导出

导出工具(数据分析)

  • **exportCollection**导出JSON/BSON格式的文档
  • **exportDatabase**导出模式和元数据到文档

备份工具(完整备份)

  • backupCollection:全面的备份随时可恢复,分块处理
  • **backupDatabase**完整的银行备份,包括集合、索引和元数据

恢复工具(完全恢复)

  • restoreCollection: 通过扫描恢复收藏
  • **restoreDatabase**选择性数据库恢复

🔍 矢量搜索资源

  • 有意识的计划限制自动验证 Atlas 计划限制
  • 完整管理创建、列出、删除和监视矢量索引
  • 灵活配置多个相似性功能和过滤字段
  • 状态监控实时指数状态和施工进度

每平面向量索引限制 :

  • M0/M2/M5(免费/共享):3个搜索索引不总计
  • **M10+(专用)**按收藏搜索 10 个索引
  • 专用地图集可用的最高限制

🔒 最佳安全实践

  • 保持 READ_ONLY=true 除非需要写作操作
  • 创建具有最低权限的 Atlas 数据库专用用户
  • 在 Atlas 中使用对等 IP 或 VPC 权限列表
  • 定期旋转凭据,永远不要提交文件 .env

🔧 解决问题

MCP 不出现在光标上?

  • 检查脚本路径和执行权限
  • 没有Windows,执行 git config core.autocrlf input 并重新克隆以避免CRLF问题

我需要开门吗?

  • 不,不。MCP 通过 stdio 使用进程管道 - 脚本使用 docker compose exec -T

我可以连接到本地 MongoDB 吗?

  • 是,只需调整 MONGODB_URI 适当

🤝 贡献| Contribuindo

欢迎投稿!请随时提交拉取请求。

欢迎捐款!请随时发送Pull Request。

📄 许可证 | License

该项目根据MIT许可证获得许可。

本项目在MIT许可证下授权。