liurenchaxin/internal/mcp/MCP_MANAGEMENT_SOLUTION.md

5.7 KiB
Raw Blame History

🧙‍♂️ MCP服务管理解决方案

🎯 解决的痛点

你提到的MCP管理问题我完全理解这个解决方案专门针对以下痛点

现有问题

  • stdio/SSE/HTTP混合管理:不同传输方式需要不同的配置和启动方式
  • 依赖管理复杂每个MCP服务都有自己的依赖要求
  • 缺乏统一管理平台:没有集中的地方查看和控制所有服务
  • 服务发现困难:不知道哪些服务在运行,状态如何
  • 配置分散:配置文件散落在各个目录

解决方案

  • 统一管理界面Web Dashboard + API
  • 自动依赖检查:启动前检查所有依赖
  • 服务状态监控:实时健康检查和状态显示
  • 批量操作:一键启动/停止服务组
  • 配置集中化单一YAML配置文件

🚀 快速开始

1. 一键启动

chmod +x quick_start.sh
./quick_start.sh

2. 手动启动

# 安装依赖
pip install fastapi uvicorn pyyaml httpx

# 启动管理器
python3 start_mcp_manager.py

# 或启动特定服务组
python3 start_mcp_manager.py --group financial

3. 访问管理界面

📁 文件结构

├── mcp_manager.py              # 核心管理器
├── mcp_services.yml           # 服务配置文件
├── start_mcp_manager.py       # 启动脚本
├── quick_start.sh             # 快速启动脚本
├── docker-compose.mcp.yml     # Docker部署配置
└── templates/
    └── mcp_dashboard.html     # Web管理界面

🛠️ 支持的MCP服务类型

📡 stdio类型

- name: yahoo-finance
  type: stdio
  command: uv
  args: ["--directory", "./scripts/mcp/yahoo-finance-mcp", "run", "yahoo-finance-mcp"]
  dependencies: ["uv", "python>=3.9"]

🌐 HTTP类型

- name: cauldron-financial
  type: http
  url: "https://cauldron.herokuapp.com/api/mcp"
  health_check: "https://cauldron.herokuapp.com/health"

SSE类型

- name: heroku-inference
  type: sse
  url: "${HEROKU_INFERENCE_URL}"
  env:
    HEROKU_INFERENCE_ID: "${HEROKU_INFERENCE_ID}"

🎮 管理功能

Web界面功能

  • 实时服务状态监控
  • 一键启动/停止服务
  • 批量操作服务组
  • 健康状态检查
  • 服务统计信息

API功能

# 获取所有服务状态
curl http://localhost:8090/services

# 启动特定服务
curl -X POST http://localhost:8090/services/yahoo-finance/start

# 停止特定服务
curl -X POST http://localhost:8090/services/yahoo-finance/stop

# 批量启动所有服务
curl -X POST http://localhost:8090/services/start-all

🔧 配置示例

你现有的服务配置

services:
  # Yahoo Finance (stdio -> HTTP包装)
  - name: yahoo-finance
    type: stdio
    command: uv
    args: ["--directory", "./scripts/mcp/yahoo-finance-mcp", "run", "yahoo-finance-mcp"]
    env:
      PYTHONPATH: "./scripts/mcp/yahoo-finance-mcp/src"
    dependencies: ["uv", "python>=3.9"]
    
  # Cauldron Financial Tools (HTTP)
  - name: cauldron-financial
    type: http
    url: "https://cauldron.herokuapp.com/api/mcp"
    health_check: "https://cauldron.herokuapp.com/health"
    env:
      CAULDRON_API_KEY: "${CAULDRON_API_KEY}"
    
  # Tusita Palace N8N (stdio)
  - name: tusita-palace
    type: stdio
    command: python
    args: ["-m", "jixia_academy_clean.core.tusita_palace_mcp"]
    env:
      N8N_WEBHOOK_URL: "${N8N_WEBHOOK_URL}"
      N8N_API_KEY: "${N8N_API_KEY}"
    
  # Heroku Inference (SSE)
  - name: heroku-inference
    type: sse
    url: "${HEROKU_INFERENCE_URL}"
    env:
      HEROKU_INFERENCE_ID: "${HEROKU_INFERENCE_ID}"

# 服务组定义
service_groups:
  financial:
    - yahoo-finance
    - cauldron-financial
  workflow:
    - tusita-palace
  inference:
    - heroku-inference

🐳 Docker部署

如果你想要更稳定的部署可以使用Docker

# 启动所有MCP服务
docker-compose -f docker-compose.mcp.yml up -d

# 查看服务状态
docker-compose -f docker-compose.mcp.yml ps

# 停止所有服务
docker-compose -f docker-compose.mcp.yml down

🔄 与现有工具集成

Claude Desktop集成

{
  "mcpServers": {
    "mcp-manager": {
      "command": "curl",
      "args": ["-s", "http://localhost:8090/services"],
      "transport": {
        "type": "stdio"
      }
    }
  }
}

Cursor集成

在Cursor中可以直接调用管理器API来控制MCP服务。

📊 监控和日志

服务监控

  • 实时状态检查
  • 健康状态监控
  • 自动重启机制
  • 性能统计

日志管理

# 查看管理器日志
tail -f logs/mcp_manager.log

# 查看特定服务日志
tail -f logs/yahoo-finance.log

🎯 推荐的替代平台

如果你想要更专业的解决方案:

1. Smithery (最推荐)

  • MCP专用包管理器
  • 自动依赖处理
  • 统一配置格式

2. Kubernetes + Helm

  • 企业级容器编排
  • 自动扩缩容
  • 服务发现

3. Docker Swarm

  • 轻量级容器编排
  • 简单易用
  • 适合中小规模

🤝 使用建议

开发阶段

# 启动核心服务进行开发
python3 start_mcp_manager.py --group core

生产环境

# 使用Docker部署
docker-compose -f docker-compose.mcp.yml up -d

调试模式

# 启动单个服务进行调试
python3 start_mcp_manager.py --group financial

🔮 未来规划

  • 支持更多MCP传输协议
  • 集成Prometheus监控
  • 支持服务自动发现
  • 添加配置热重载
  • 支持服务依赖图
  • 集成日志聚合

这个解决方案应该能很好地解决你的MCP管理痛点有什么问题随时问我 🚀