MongoDB管理服务器

一个模块化、文档完善的服务器,用于通过模型上下文协议(MCP)管理MongoDB数据库、集合、文档、索引和批量操作,适用于需要高效数据库管理的开发场景。

  • by franciscorojas27
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 franciscorojas27/mcpservermongodb

使用说明

🚀 MongoDB MCP服务器

一个模块化、文档化的服务器,用于使用模型上下文协议(MCP)管理MongoDB数据库、集合、文档、索引和批量操作。专为可扩展性、清晰度和易用性而构建。与ESM、TypeScript和现代测试工作流程完全兼容。


✨ 特性

  • 📦 通过MCP工具注册和管理MongoDB数据库、集合、文档、索引和批量操作
  • ⚡ 批量操作支持
  • 📝 完整记录的代码库(英语,JSDoc)
  • ⚙️ 通过以下方式轻松配置 config.json
  • 🧩 干净、模块化的架构
  • 🧪 使用Jest、ts-Jest和内存MongoDB进行自动化测试
  • 🔗 现代ESM+TypeScript+路径别名
  • 🧾 测试文件使用 .mjs 扩展,与Jest完全兼容ESM

📁 项目结构

├── src/
│   ├── main.ts                # Main entry point, server initialization
│   ├── config.json            # MongoDB connection config
│   ├── mongo/                 # MongoDB operation classes
│   └── tools/                 # MCP tool registration modules
├── tests/                     # Jest test suites (in-memory MongoDB, .mjs)
├── package.json
├── tsconfig.json
├── jest.config.cjs
└── README.md

🚦 入门指南

先决条件

  • Node.js(建议使用v18+)
  • TypeScript
  • MongoDB实例(本地或远程)

安装

  1. 克隆存储库:

    git clone <your-repo-url>
    cd <your-repo>
    
  2. 安装依赖项:

    npm install
    
  3. 在中配置您的MongoDB URI src/config.json:

    {
      "mongo_uri": "mongodb://localhost:27017"
    }
    

🏃 运行服务器

您可以使用tsx运行服务器:

npx tsx src/main.ts

或者使用提供的VS Code启动配置。


⚙️ VS代码MCP集成示例

要在VS Code中将此服务器用作MCP后端,请将以下内容添加到您的 settings.json:

"mcp": {
  "inputs": [],
  "servers": {
    "mongo-local": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "tsx",
        "C:/Users/<your-username>/Desktop/McpServerMongodb/src/main.ts"
      ]
    }
  }
},
  • 替换 <your-username> 使用您的实际Windows用户名或调整项目所在的路径。
  • 这将允许VS Code将您的MCP MongoDB服务器作为本地后端启动。

🧪 运行测试

所有核心逻辑都由使用Jest、ts-Jest和 mongodb-memory-server 对于内存中的真实MongoDB环境(不需要外部DB)。

npm test
  • 测试位于 tests/ 目录并使用 .mjs ESM兼容性扩展。

  • 测试中完全支持ESM、TypeScript和路径别名。

  • 示例测试导入(在 .mjs 测试文件):

    import { MongoDatabaseOps } from "@mongo/mongoDatabaseOps.js";
    

🛠️ 使用与开发

  • 服务器公开了用于数据库、集合、文档、索引和批量操作的MCP工具。
  • 您可以在中扩展或自定义工具 src/tools/ 目录。
  • MongoDB操作的所有业务逻辑都在 src/mongo/.
  • 使用路径别名(@mongo/, @tools/)清洁进口。
  • 所有代码和测试都使用ESM导入,并显式 .js 内部模块的扩展。
  • 所有Jest测试文件都必须使用 .mjs 扩展 为了完全兼容ESM。

🧑‍💻 代码质量

  • 所有文件均使用JSDoc以英文记录。
  • 模块化和可维护的结构。
  • 遵循最佳实践以提高清晰度和可扩展性。
  • 强大的错误处理和配置管理。

🧩 ESM、TypeScript和Jest注释

  • 项目使用ESM(type: "module"), moduleResolution: "nodenext",以及中的路径别名 tsconfig.json.
  • Jest被配置为转换ESM依赖关系(例如。, mongodb-memory-server)并通过以下方式支持Types/ESM ts-jest.
  • 所有内部进口必须使用 .js ESM兼容性扩展。
  • 所有Jest测试文件都必须使用 .mjs 扩展 ESM兼容性。
  • 看 jest.config.cjs 和 tsconfig.json 了解详情。

👤 作者

弗朗西斯科·安东尼奥·罗哈斯·法里纳


📄 许可证

麻省理工学院