MongoDB MCP服务器

一个为MongoDB集成设计的模型上下文协议(MCP)服务器,通过标准化接口为AI系统提供数据库访问和管理功能。

  • by Nisarg-Shah2302
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 nisarg-shah2302/mcp-mongo

使用说明

MongoDB MCP服务器

用于MongoDB集成的模型上下文协议(MCP)服务器,通过标准化接口为AI系统提供数据库访问和管理功能。

概述

此MongoDB MCP服务器使AI系统能够执行各种MongoDB操作,包括:

  • 创建数据库和集合
  • 将数据插入集合
  • 使用自然语言查询数据
  • 管理产品评论和库存
  • 处理支持票
  • 分析运输地点和库存容量
  • 生成分析见解

先决条件

  • Node.js(v16或更高版本)
  • npm或纱线
  • MongoDB(本地安装或MongoDB Atlas帐户)

安装

  1. 克隆存储库:
git clone <repository-url>
cd mongo-mcp
  1. 安装依赖项:
npm install
  1. 创建一个 .env 根目录中的文件,包含以下变量:
MONGO_URI=mongodb://localhost:27017
MONGO_DB_NAME=MONGO_DB_NAME

将MongoDB URI替换为您自己的连接字符串。您可以使用本地MongoDB实例或MongoDB Atlas连接字符串。

配置

MongoDB连接

服务器使用以下配置参数:

  • 蒙古语:MongoDB连接字符串(默认值: mongodb+srv://test.nckd7.mongodb.net/MONGO_DB_NAME)
  • MONGO_DB_NAME:要使用的MongoDB数据库的名称(默认值: MONGO_DB_NAME)

您可以通过三种方式配置这些参数:

  1. 环境变量(建议用于生产)
  2. .env 文件(建议开发)
  3. 中的默认值 src/config.ts (不建议用于生产)

MongoDB连接选项

连接选项在中定义 src/config.ts:

export const MONGO_OPTIONS = {
  serverSelectionTimeoutMS: 5000, // 5 seconds timeout for server selection
  connectTimeoutMS: 5000, // 5 seconds timeout for initial connection
};

建立和运行

构建服务器

npm run build

启动服务器

npm run start

使用开始脚本

为方便起见,您可以使用提供的启动脚本:

./start-mcp-server.sh

此脚本:

  1. 检查MongoDB是否在本地运行
  2. 构建服务器
  3. 为MongoDB连接设置环境变量
  4. 启动服务器

设置示例数据

服务器包括用于测试的示例数据。要设置此数据,请执行以下操作:

npm run setup-enhanced

这将使用示例数据创建以下集合:

  • 评价
  • 库存交易
  • 支持票
  • 装运位置
  • 分析_事件

与CopilotKit集成

要在CopilotKit应用程序中配置此MCP服务器,请执行以下操作:

  1. 打开MCP配置模式
  2. 添加具有以下详细信息的新服务器:
    • 服务器名称: mongodb
    • 连接类型: stdio
    • 命令: node
    • 论据: /path/to/mongo-mcp/build/index.js

可用工具

基本工具

  1. 创建数据库

    • 使用指定的集合创建新的MongoDB数据库
    • 参数: collections (集合名称数组)
  2. 插入数据

    • 将数据插入MongoDB集合
    • 参数: collection (收藏名称), data (对象或对象数组)
  3. 查询数据

    • 使用自然语言从MongoDB查询数据
    • 参数: collection (收藏名称), query (自然语言查询), limit (可选,最大结果)

增强工具

  1. 产品评论

    • 通过过滤和排序选项获取产品评论
    • 参数: productId (可选), minRating (可选), verifiedOnly (可选), sortBy (可选), limit (可选)
  2. 库存管理

    • 通过各种操作管理产品库存
    • 参数: operation (检查/历史记录/更新), productId, locationId (可选), quantity (可选), type (可选), notes (可选)
  3. 支持票

    • 管理客户支持票
    • 参数: action (列表/查看/创建/更新), ticketId (可选), userId (可选), status (可选), priority (可选), subject (可选), description (可选), category (可选), limit (可选)
  4. 分析见解

    • 从分析数据中获得见解
    • 参数: insightType, timeframe (可选), productId (可选), limit (可选)
  5. 装运地点

    • 管理运输和仓库位置
    • 参数: action (列表/视图/容量), locationType (可选), locationCode (可选), activeOnly (可选)

用例

创建数据库和集合

{
  "collections": ["users", "products", "orders"]
}

插入数据

{
  "collection": "products",
  "data": {
    "name": "Laptop",
    "price": 999.99,
    "category": "Electronics",
    "stock": 50
  }
}

查询数据

{
  "collection": "products",
  "query": "find all laptops with price less than 1000",
  "limit": 5
}

管理产品评论

{
  "productId": "Laptop",
  "minRating": 4,
  "verifiedOnly": true,
  "sortBy": "rating",
  "limit": 10
}

检查库存

{
  "operation": "check",
  "productId": "Laptop"
}

管理支持票

{
  "action": "list",
  "status": "open",
  "priority": "high",
  "limit": 5
}

获取分析见解

{
  "insightType": "product_popularity",
  "timeframe": "month",
  "limit": 5
}

管理运输地点

{
  "action": "capacity",
  "locationType": "warehouse",
  "activeOnly": true
}

故障排除

MongoDB连接问题

如果您遇到连接问题:

  1. 验证MongoDB是否正在运行:

    nc -z localhost 27017
    
  2. 检查您的MongoDB URI .env 文件或环境变量

  3. 确保与MongoDB实例的网络连接

  4. 检查MongoDB日志是否有任何错误:

    sudo journalctl -u mongod
    

服务器启动问题

如果服务器无法启动:

  1. 检查生成错误:

    npm run build
    
  2. 验证Node.js版本:

    node --version
    
  3. 检查依赖关系问题:

    npm install
    

许可证

国际协调委员会

贡献

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