MCP Orchestrator
MCP Orchestrator 是一个 Claude Code 插件,可以读取 MCP 服务并根据可用能力优化用户提示词。
功能特性
- MCP 服务发现: 自动读取 Claude Code 配置中所有的 MCP 服务器
- 能力分析: 分析每个 MCP 服务器的工具和能力
- 任务分析: 分析用户任务需要哪些 MCP 能力
- 提示词优化: 基于可用 MCP 能力优化用户提示词
- 任务执行: 自动协调多个 MCP 服务完成任务
安装
1. 构建项目
# 克隆或创建项目目录
cd mcp-orchestrator
# 安装依赖
npm install
# 构建 TypeScript
npm run build2. 配置 Claude Code
在 Claude Code 的 settings.json 中添加以下配置:
{
"mcpServers": {
"orchestrator": {
"command": "node",
"args": ["/path/to/mcp-orchestrator/dist/index.js"],
"env": {
"CLAUDE_CODE_CONFIG_PATH": "~/.claude/settings.json"
}
}
}
}可用工具
Orchestrator 提供以下 MCP 工具:
1. list_mcp_servers
列出所有已配置的 MCP 服务器及其基本信息。
输入: 无
输出示例:
{
"servers": [
{
"name": "context7",
"connected": true,
"toolCount": 3,
"lastHealthCheck": "2024-01-15T10:30:00Z"
}
],
"total": 1,
"connected": 1
}2. get_server_capabilities
获取指定 MCP 服务器的工具和能力列表。
输入:
{
"serverName": "context7"
}3. analyze_task_requirements
分析任务需要哪些 MCP 能力。
输入:
{
"task": "搜索 React 相关的文档"
}输出示例:
{
"task": "搜索 React 相关的文档",
"intent": {
"type": "search",
"description": "搜索 React 相关的文档",
"inputFormat": "text",
"outputFormat": "json"
},
"requiredCapabilities": [
{
"server": "context7",
"tool": "search_documents",
"matchScore": 0.95,
"reason": "专门用于文档搜索"
}
]
}4. optimize_prompt
基于可用 MCP 能力优化提示词,生成结构化的执行计划。
输入:
{
"originalPrompt": "帮我分析这个网站的性能",
"includeExecutionPlan": true
}输出示例:
{
"originalPrompt": "帮我分析这个网站的性能",
"optimizedPrompt": "# 优化后的任务提示词...",
"reasoning": "任务被分类为 'analysis' 类型...",
"matchedCapabilities": [...],
"executionPlan": [
{
"step": 1,
"description": "使用 Playwright 获取网页内容",
"tool": "fetch_page",
"server": "playwright",
"expectedOutput": "网页 HTML 内容"
}
]
}5. execute_with_optimization
优化提示词并执行,支持自动工具调用。
输入:
{
"prompt": "搜索 Next.js 文档中关于路由的部分",
"autoExecute": false,
"maxSteps": 3
}输出示例 (autoExecute: false):
{
"status": "pending",
"message": "任务已优化,等待执行确认",
"optimizedPrompt": "...",
"executionPlan": [...],
"requiresConfirmation": true
}6. get_all_capabilities
获取所有可用 MCP 服务器的所有能力。
输入: 无
输出示例:
{
"totalCapabilities": 10,
"servers": ["context7", "playwright", "web-search"],
"capabilities": [
{
"server": "context7",
"tool": "search_documents",
"description": "搜索文档",
"category": "search",
"tags": ["search", "documentation"]
}
]
}7. refresh_servers
刷新 MCP 服务器配置并重新连接所有服务器。
输入: 无
输出示例:
{
"message": "Servers refreshed successfully",
"results": [
{ "name": "context7", "success": true },
{ "name": "playwright", "success": false, "error": "Connection timeout" }
],
"total": 2,
"connected": 1,
"failed": 1
}使用示例
示例 1: 发现 MCP 服务
用户: 查看我配置了哪些 MCP 服务
Claude: 我来帮你查看已配置的 MCP 服务。
[调用 list_mcp_servers 工具]
你有以下 MCP 服务:
1. context7 - 已连接 (3 个工具)
2. playwright - 已连接 (5 个工具)
3. web-search - 已连接 (2 个工具)示例 2: 优化提示词
用户: 帮我搜索 React 的最新文档
Claude: 我来优化这个任务并找到最合适的工具。
[调用 optimize_prompt 工具]
根据你的需求,我优化了任务:
## 建议方案
1. 使用 **web-search** 的 **search** 工具搜索 React 最新文档
2. 使用 **context7** 的 **get_document** 获取详细文档内容
要执行这个任务吗?示例 3: 分析和执行复杂任务
用户: 分析这个网站的性能问题 https://example.com
Claude: 我来分析这个任务并制定执行计划。
[调用 analyze_task_requirements 工具]
任务分析:
- 类型: 分析任务
- 需要工具: 网页获取、性能分析
- 输入: URL
[调用 execute_with_optimization 工具]
执行计划:
1. 使用 Playwright 获取网页内容和性能指标
2. 分析加载时间和资源使用情况
分析结果:
- 首屏加载时间: 1.2s
- 总资源大小: 2.5MB
- 优化建议: ...架构说明
┌─────────────────────────────────────────────────────────────┐
│ MCP Orchestrator │
├─────────────────────────────────────────────────────────────┤
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Config │ │ Service │ │ Capability │ │
│ │ Parser │──▶│ Registry │──▶│ Analyzer │ │
│ └──────────────┘ └──────────────┘ └──────┬───────┘ │
│ │ │
│ ┌──────────────┐ ┌──────────────┐ │ │
│ │ Task │ │ Prompt │◀───────┘ │
│ │ Executor │◀─│ Optimizer │ │
│ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘贡献
欢迎提交 Issue 和 PR!
许可证
MIT License
