5.7 KiB
5.7 KiB
🧙♂️ 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. 访问管理界面
- Web界面: http://localhost:8090
- API文档: http://localhost:8090/docs
- 服务状态: http://localhost:8090/services
📁 文件结构
├── 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管理痛点!有什么问题随时问我 🚀