MongoDB MCP 服务器

一个将 MongoDB 与模型上下文协议 (MCP) 集成的 Node.js 项目,用于 AI 驱动的数据库操作。

  • by amrita120724
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 amrita120724/mongodb-mcp-project

使用说明

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(云-推荐)

  1. 首选 MongoDB 阿特拉斯
  2. 创建免费帐户和集群
  3. 获取您的连接字符串

选项B:本地安装

  1. 从下载MongoDB mongodb.com
  2. 安装并启动MongoDB服务
  3. 默认连接: mongodb://localhost:27017

2.克隆和设置项目

# Clone the repository
git clone <your-repo-url>
cd mongodb-mcp-project

# Install dependencies
npm install

# Copy environment file
cp env.example .env

# Edit .env file with your MongoDB connection details

3.配置环境变量

编辑 .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 mcp

API终点

健康检查

  • 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/info

MCP服务器工具

MCP服务器为AI交互提供以下工具:

  1. find_文档 -在集合中查找文档
  2. insert_document -插入新文档
  3. update_文档 -更新现有文档
  4. 删除文档 -删除文档
  5. list_collections -列出所有收藏
  6. 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请求日志记录
  • 控制台记录错误和重要事件
  • 结构化日志记录格式

故障排除

常见问题

  1. MongoDB连接失败

    • 检查MongoDB是否正在运行
    • 验证中的连接字符串 .env
    • 确保网络连接
  2. 端口已在使用中

    • 更改端口 .env 文件
    • 使用端口终止现有进程
  3. 未找到模块

    • 跑 npm install 安装依赖项
    • 检查Node.js版本兼容性

调试模式

集 NODE_ENV=development 在你的 .env 文件以获取详细的错误消息。

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

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

支持

对于问题和疑问:

  • 检查故障排除部分
  • 查看MongoDB文档
  • 查看MCP SDK文档