MongoDB MCP服务器
一个Node.js项目,将MongoDB与模型上下文协议(MCP)集成在一起,用于AI驱动的数据库操作。
特性
- MongoDB集成:使用MongoDB进行完整的CRUD操作
- GitHub集成:用于存储库管理的GitHub MCP服务器
- MCP服务器:用于AI交互的多个模型上下文协议服务器
- REST API:用于数据库操作的Express.js API
- 错误处理:全面的错误处理和验证
- 安全:Helmet.js用于安全标头
- 日志记录:Morgan用于HTTP请求日志记录
先决条件
- Node.js(v14或更高版本)
- MongoDB(v4.4或更高版本)
- npm或纱线
安装
1.安装MongoDB
选项A:使用MongoDB Atlas(云-推荐)
- 首选 MongoDB 阿特拉斯
- 创建免费帐户和集群
- 获取您的连接字符串
选项B:本地安装
- 从下载MongoDB mongodb.com
- 安装并启动MongoDB服务
- 默认连接:
mongodb://localhost:27017
2.克隆和设置项目
# Clone the repository
git clone
cd mongodb-mcp-project
# Install dependencies
npm install
# Copy environment file
cp env.example .env
# Edit .env file with your MongoDB connection details3.配置环境变量
编辑 .env 文件:
# MongoDB Configuration
MONGODB_URI=mongodb://localhost:27017
# OR for MongoDB Atlas:
# MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/
DB_NAME=mongodb_mcp_db
# Server Configuration
PORT=3000
NODE_ENV=development
# MCP Configuration
MCP_SERVER_NAME=mongodb-mcp-server
MCP_SERVER_VERSION=1.0.0用法
启动Express API服务器
# Development mode (with auto-restart)
npm run dev
# Production mode
npm start服务器将于启动 http://localhost:3000
启动MCP服务器
npm run mcpAPI终点
健康检查
GET /health-服务器运行状况
数据库操作
查找文档
POST /api/database/find
Content-Type: application/json
{
"collection": "users",
"filter": { "age": { "$gte": 18 } },
"options": { "limit": 10 }
}插入文档
POST /api/database/insert
Content-Type: application/json
{
"collection": "users",
"document": {
"name": "John Doe",
"email": "john@example.com",
"age": 25
}
}更新文档
PUT /api/database/update
Content-Type: application/json
{
"collection": "users",
"filter": { "email": "john@example.com" },
"update": { "$set": { "age": 26 } }
}删除文档
DELETE /api/database/delete
Content-Type: application/json
{
"collection": "users",
"filter": { "email": "john@example.com" }
}列出收藏
GET /api/database/collections获取收藏统计信息
GET /api/database/stats/users获取数据库信息
GET /api/database/infoMCP服务器工具
MCP服务器为AI交互提供以下工具:
- find_文档 -在集合中查找文档
- insert_document -插入新文档
- update_文档 -更新现有文档
- 删除文档 -删除文档
- list_collections -列出所有收藏
- get_collection_stats -获取收藏统计信息
项目结构
mongodb-mcp-project/
├── config/
│ └── database.js # MongoDB connection configuration
├── src/
│ ├── mcp/
│ │ └── server.js # MCP server implementation
│ └── routes/
│ └── database.js # API routes for database operations
├── app.js # Main Express server
├── mcp-server.js # MCP server entry point
├── package.json
├── env.example # Environment variables template
└── README.md发展
以开发模式运行
# Start with auto-restart
npm run dev测试API
您可以使用curl、Postman或任何HTTP客户端测试API:
# Health check
curl http://localhost:3000/health
# List collections
curl http://localhost:3000/api/database/collections
# Insert a document
curl -X POST http://localhost:3000/api/database/insert \
-H "Content-Type: application/json" \
-d '{"collection": "test", "document": {"name": "Test", "value": 123}}'错误处理
服务器包括全面的错误处理:
- 数据库连接错误
- 无效的请求参数
- MongoDB操作错误
- 带有适当HTTP状态代码的服务器错误
安全
- Helmet.js用于安全标头
- 为跨源请求启用CORS
- 所有端点的输入验证
- 环境变量保护
日志记录
- Morgan用于HTTP请求日志记录
- 控制台记录错误和重要事件
- 结构化日志记录格式
故障排除
常见问题
- MongoDB连接失败
- 检查MongoDB是否正在运行 - 验证中的连接字符串 .env - 确保网络连接
- 端口已在使用中
- 更改端口 .env 文件 - 使用端口终止现有进程
- 未找到模块
- 跑 npm install 安装依赖项 - 检查Node.js版本兼容性
调试模式
集 NODE_ENV=development 在你的 .env 文件以获取详细的错误消息。
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
该项目根据ISC许可证获得许可。
支持
对于问题和疑问:
- 检查故障排除部分
- 查看MongoDB文档
- 查看MCP SDK文档
