4.6 KiB
4.6 KiB
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 客户端: 使用原生
fetchAPI(Node.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) - 重启客户端
- 通过对话使用工具:"创建一个数据采集任务..."
六、功能特点
- 完整的任务管理: 支持创建、查询、启动数据采集任务和标签任务
- 参数验证: 通过 JSON Schema 验证工具参数
- 错误处理: 完善的错误处理和错误信息返回
- 类型安全: 使用 TypeScript 确保类型安全
- 易于扩展: 可以轻松添加新的 MCP 工具
七、后续扩展建议
可以添加的工具
-
任务管理工具:
update_data_collection_task- 更新数据采集任务delete_data_collection_task- 删除数据采集任务pause_data_collection_task- 暂停数据采集任务stop_data_collection_task- 停止数据采集任务- 类似的标签任务管理工具
-
数据源管理工具:
create_data_source- 创建数据源update_data_source- 更新数据源test_data_source_connection- 测试数据源连接
-
标签定义管理工具:
create_tag_definition- 创建标签定义update_tag_definition- 更新标签定义
-
查询工具:
get_task_detail- 获取任务详情get_task_progress- 获取任务进度get_task_executions- 获取任务执行记录
-
批量操作工具:
batch_create_tasks- 批量创建任务batch_start_tasks- 批量启动任务
八、注意事项
- Node.js 版本: 需要 Node.js >= 18(使用原生 fetch API)
- 后端服务: 确保后端服务运行在配置的端口
- 路径配置: MCP 配置中的路径需要根据实际情况修改
- 权限控制: MCP 工具直接调用后端API,需要考虑权限控制
- 错误处理: 工具调用失败时会返回错误信息,便于调试
九、测试建议
- 单元测试: 为各个工具函数编写单元测试
- 集成测试: 测试与后端API的集成
- 端到端测试: 使用 MCP Inspector 进行端到端测试
- 错误场景测试: 测试各种错误场景的处理
实现完成时间: 2025-01-24
版本: 1.0.0