多客户端编排系统

Maestro MCP是一个基于模型上下文协议(MCP)的复杂编排系统,支持多客户端通过规划-执行模式协作,并实现共享状态管理。

  • by BTankut
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 btankut/maestro-mcp

使用说明

Maestro MCP-多客户端编排系统

用于模型上下文协议(MCP)的复杂编排系统,使多个MCP客户端能够通过具有共享状态管理的计划执行器模式进行协作。

🌟 特性

  • 多客户端编排:将多个MCP客户端(Claude Code、Codex CLI)连接到共享服务器
  • 计划执行器模式:将客户组织成复杂任务工作流的规划者和执行者
  • STDIO-HTTP代理:将仅限STDIO的MCP客户端桥接到共享HTTP服务器
  • 实时状态同步:基于文件的状态管理,带有自动观察程序
  • 11编排工具:用于任务创建、规划和执行的全套工具

📋 先决条件

  • Node.js v22+(用于本机获取支持)
  • Windows 10/11(已测试),macOS/Linux(兼容)
  • 克劳德代码和/或Codex CLI

🚀 快速开始

  1. 克隆存储库:
git clone https://github.com/BTankut/maestro-mcp.git
cd maestro-mcp
  1. 安装依赖项:
cd server
npm install
  1. 构建TypeScript文件:
npm run build
  1. 创建共享目录:
mkdir -p shared/clients shared/tasks shared/plans shared/reports
  1. 启动HTTP服务器:
npm run http-server
  1. 配置您的MCP客户端 (见下面的配置部分)

⚙️ 配置

克劳德代码(~/.claude.json)

{
  "mcpServers": {
    "maestro-mcp": {
      "command": "node",
      "args": ["C:\\path\\to\\maestro-mcp\\server\\dist\\index.js"]
    }
  }
}

Codex CLI(~/.codex/config.toml)

model = "gpt-5-codex"

[mcp_servers.maestro-mcp]
command = "C:\\Program Files\\nodejs\\node.exe"
args = ["C:\\path\\to\\maestro-mcp\\server\\dist\\index.js"]
startup_timeout_ms = 30000

[mcp_servers.maestro-mcp.env]
APPDATA = "C:\\Users\\YOUR_USERNAME\\AppData\\Roaming"
LOCALAPPDATA = "C:\\Users\\YOUR_USERNAME\\AppData\\Local"
ProgramFiles = "C:\\Program Files"
SystemRoot = "C:\\Windows"
NODE_ENV = "production"

🏗️ 建筑

该系统使用独特的STDIO-HTTP代理架构来实现多个MCP客户端之间的共享状态:

Claude Code → STDIO → Proxy → HTTP Server ← Proxy ← STDIO ← Codex CLI
                                    ↓
                            File-based State

有关详细的体系结构信息,请参见 建筑.md.

🛠️ 可用工具

  1. register_client -注册具有计划/执行者角色的客户
  2. create_task -创建新的编排任务
  3. assign_task -将任务分配给计划员
  4. create_plan -制定执行计划
  5. distribute_plan -将计划分发给执行者
  6. submit_report -提交执行报告
  7. get_task_status -获取任务状态
  8. get_executor_reports -获取执行报告
  9. list_clients -列出所有已注册的客户
  10. list_tasks -列出所有任务
  11. list_plans -列出所有计划

📖 用法示例

  1. 注册客户:

    • 克劳德作为策划人: register_client({ clientName: "Claude-Planner", role: "planner" })
    • 食品法典委员会作为执行者: register_client({ clientName: "Codex-Executor", role: "executor" })
  2. 创建和编排任务:

    • 根据需求创建任务
    • 计划员创建执行计划
    • 分发给执行人
    • 收集执行报告

🐛 故障排除

Codex超时问题

如果Codex显示“请求超时”,请确保:

  1. 环境变量在config.toml中设置
  2. 已指定完整Node.exe路径
  3. 启动超时时间增加到30000ms

有关详细的故障排除,请参阅 建筑.md.

📚 文档

🤝 贡献

欢迎投稿!请随时提交拉取请求。

📄 许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

🙏 致谢


备注:此项目演示了如何克服MCP客户端限制(仅限STDIO传输),以实现具有共享状态的真正多客户端编排。