🚀 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实例(本地或远程)
安装
- 克隆存储库:
git clone
cd - 安装依赖项:
npm install- 在中配置您的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//Desktop/McpServerMongodb/src/main.ts"
]
}
}
},- 替换 `` 使用您的实际Windows用户名或调整项目所在的路径。
- 这将允许VS Code将您的MCP MongoDB服务器作为本地后端启动。
______________________________________________________________________
🧪 运行测试
所有核心逻辑都由使用Jest、ts-Jest和 mongodb-memory-server 对于内存中的真实MongoDB环境(不需要外部DB)。
npm test- 测试位于
tests/目录并使用.mjsESM兼容性扩展。
- 测试中完全支持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/ESMts-jest. - 所有内部进口必须使用
.jsESM兼容性扩展。 - 所有Jest测试文件都必须使用
.mjs扩展 ESM兼容性。 - 看
jest.config.cjs和tsconfig.json了解详情。
______________________________________________________________________
👤 作者
弗朗西斯科·安东尼奥·罗哈斯·法里纳
______________________________________________________________________
📄 许可证
麻省理工学院
