Files
cunkebao_v3/Moncter/MCP/实现总结.md
2026-01-05 10:16:20 +08:00

4.6 KiB
Raw Permalink Blame History

Moncter MCP 服务器实现总结

一、实现概述

已成功为 Moncter 系统创建了一个 MCP (Model Context Protocol) 服务器,允许通过 MCP 协议来管理数据采集任务和标签任务。

二、已创建的文件

1. 核心代码

  • MCP/moncter-mcp-server/src/index.ts - MCP 服务器主文件
  • MCP/moncter-mcp-server/package.json - Node.js 依赖配置
  • MCP/moncter-mcp-server/tsconfig.json - TypeScript 配置

2. 配置文件

  • MCP/mcp.json - MCP 服务器配置(已更新,添加了 Moncter 服务器)
  • MCP/mcp.json.example - 配置示例文件

3. 安装脚本

  • MCP/moncter-mcp-server/install.sh - Linux/Mac 安装脚本
  • MCP/moncter-mcp-server/install.bat - Windows 安装脚本

4. 文档

  • MCP/README.md - MCP 目录说明
  • MCP/快速开始.md - 快速开始指南
  • MCP/MCP服务器使用说明.md - 详细使用说明
  • MCP/moncter-mcp-server/README.md - 服务器开发文档

三、实现的 MCP 工具

1. 数据采集任务管理

  • create_data_collection_task - 创建数据采集任务
  • list_data_collection_tasks - 获取数据采集任务列表
  • start_data_collection_task - 启动数据采集任务

2. 标签任务管理

  • create_tag_task - 创建标签计算任务
  • list_tag_tasks - 获取标签任务列表
  • start_tag_task - 启动标签任务

3. 辅助工具

  • get_data_sources - 获取数据源列表
  • get_tag_definitions - 获取标签定义列表

四、技术实现

架构设计

MCP Client (Claude Desktop, etc.)
    ↓ (stdio/stdin)
Moncter MCP Server (Node.js)
    ↓ (HTTP REST API)
Moncter Backend (PHP/Webman)
    ↓
MongoDB / Redis / RabbitMQ

关键技术

  • MCP SDK: 使用 @modelcontextprotocol/sdk 实现 MCP 协议
  • HTTP 客户端: 使用原生 fetch APINode.js 18+
  • TypeScript: 类型安全的实现
  • Stdio Transport: 通过标准输入输出与 MCP 客户端通信

五、安装和使用步骤

1. 安装

cd MCP/moncter-mcp-server
npm install
npm run build

2. 配置

编辑 MCP/mcp.json,确保路径正确:

{
  "mcpServers": {
    "Moncter": {
      "command": "node",
      "args": ["./MCP/moncter-mcp-server/dist/index.js"],
      "cwd": "YOUR_PROJECT_PATH",
      "env": {
        "MONCTER_API_URL": "http://127.0.0.1:8787"
      }
    }
  }
}

3. 使用

在支持 MCP 的客户端(如 Claude Desktop

  • 配置 MCP 服务器(引用 mcp.json
  • 重启客户端
  • 通过对话使用工具:"创建一个数据采集任务..."

六、功能特点

  1. 完整的任务管理: 支持创建、查询、启动数据采集任务和标签任务
  2. 参数验证: 通过 JSON Schema 验证工具参数
  3. 错误处理: 完善的错误处理和错误信息返回
  4. 类型安全: 使用 TypeScript 确保类型安全
  5. 易于扩展: 可以轻松添加新的 MCP 工具

七、后续扩展建议

可以添加的工具

  1. 任务管理工具:

    • update_data_collection_task - 更新数据采集任务
    • delete_data_collection_task - 删除数据采集任务
    • pause_data_collection_task - 暂停数据采集任务
    • stop_data_collection_task - 停止数据采集任务
    • 类似的标签任务管理工具
  2. 数据源管理工具:

    • create_data_source - 创建数据源
    • update_data_source - 更新数据源
    • test_data_source_connection - 测试数据源连接
  3. 标签定义管理工具:

    • create_tag_definition - 创建标签定义
    • update_tag_definition - 更新标签定义
  4. 查询工具:

    • get_task_detail - 获取任务详情
    • get_task_progress - 获取任务进度
    • get_task_executions - 获取任务执行记录
  5. 批量操作工具:

    • batch_create_tasks - 批量创建任务
    • batch_start_tasks - 批量启动任务

八、注意事项

  1. Node.js 版本: 需要 Node.js >= 18使用原生 fetch API
  2. 后端服务: 确保后端服务运行在配置的端口
  3. 路径配置: MCP 配置中的路径需要根据实际情况修改
  4. 权限控制: MCP 工具直接调用后端API需要考虑权限控制
  5. 错误处理: 工具调用失败时会返回错误信息,便于调试

九、测试建议

  1. 单元测试: 为各个工具函数编写单元测试
  2. 集成测试: 测试与后端API的集成
  3. 端到端测试: 使用 MCP Inspector 进行端到端测试
  4. 错误场景测试: 测试各种错误场景的处理

实现完成时间: 2025-01-24
版本: 1.0.0