一个高效的模型上下文协议(MCP)服务器,通过 tmux 实现 Claude 实例的分层编排。采用桥接模式架构,与传统的多服务器方法相比,内存使用减少85%。
显示执行者、管理者和专家实例协同工作的分层编排
基于网络的监控仪表板,展示活跃实例和系统指标
新加入此仓库? 如果您是 Claude 代码实例,请从**Claude 快速入门指南**开始,快速了解并获取实用示例。
由于 MCP 文档中提到的 1:1 标准 I/O 架构,多个 Claude 实例无法直接访问 MCP 工具。我们的桥接模式解决方案:
tmux-claude-mcp-server/
├── README.md # 项目概述和用法
├── LICENSE # MIT 许可证
├── package.json # Node.js 依赖项
├── package-lock.json # 锁定依赖项
├── .gitignore # 版本控制忽略模式
├── src/ # 核心源代码
│ ├── simple_mcp_server.js # 主 MCP 服务器
│ ├── instance_manager.js # 实例生命周期管理
│ ├── mcp_tools.js # MCP 工具实现
│ ├── tmux_interface.js # tmux 集成层
│ ├── reliable_tmux_sender.js # 高可靠性消息传递
│ ├── orchestration/ # 编排组件
│ ├── dashboard/ # 网络监控仪表板
│ ├── role_templates/ # 标准化角色模板
│ └── workflow/ # 工作流编排系统
│ ├── actions/ # 模块化操作实现
│ ├── workflow_engine.cjs # 主工作流引擎
│ └── run_workflow.cjs # 工作流运行器 CLI
├── scripts/ # 实用脚本
│ ├── mcp_bridge.js # 多实例 MCP 访问的桥接
│ ├── scheduled_continue.js # 调度“Plz continue”消息
│ ├── check/ # 会话检查工具
│ ├── restart/ # 会话重启工具
│ ├── utils/ # 共享工具
│ │ └── time_parser.js # 时间解析,用于调度
│ └── api/ # 监控 API 脚本
├── docs/ # 文档
│ ├── CHANGELOG.md # 版本历史
│ ├── CONTRIBUTING.md # 贡献指南
│ ├── WORKFLOW_GUIDE.md # 工作流系统指南
│ ├── CLAUDE_GETTING_STARTED.md # Claude 实例快速入门
│ ├── DOCUMENTATION_INDEX.md # 文档索引
│ ├── scheduled_continue/ # 计划继续功能文档
│ │ ├── CLI_INTERFACE_DESIGN.md
│ │ ├── TIME_FORMAT_SPECIFICATION.md
│ │ └── SCHEDULING_MECHANISM_ANALYSIS.md
│ ├── analysis/ # 技术分析及发现
│ ├── archive/ # 历史文档
│ └── guides/ # 用户指南和规范
├── tests/ # 测试套件
│ ├── test_workflow_standalone.cjs # 独立工作流测试
│ ├── unit/ # 单元测试
│ ├── integration/ # 集成测试
│ ├── e2e/ # 端到端测试
│ └── performance/ # 性能基准测试
├── workflows/ # 工作流系统
│ ├── README.md # 工作流文档
│ ├── CURRENT_STATUS.md # 当前状态和使用情况
│ ├── library/ # 可重用的工作流组件
│ ├── examples/ # 示例工作流
│ ├── tests/ # 工作流测试文件
│ ├── scripts/ # 工作流工具
│ ├── state/ # 工作流状态存储
│ └── user/ # 用户创建的工作流
├── state/ # 默认状态目录
├── config/ # 配置文件
├── logs/ # 日志目录
└── vm-integration/ # 云 VM 管理
├── README.md # VM 集成文档
├── vm_manager.js # 核心 VM 管理类
├── vm_cli.js # 命令行接口
├── vm_mcp_tools.js # MCP 工具集成
├── integrate_vm_mcp.js # MCP 服务器集成
├── setup-scripts/ # VM 初始化脚本
│ └── claude-dev-setup.sh
└── tests/ # VM 集成测试
└── test_vm_integration.js
--project 标志进行对话隔离exec_1, mgr_1_1, spec_1_1_1 以明确父子关系--continue 标志重新启动实例此实现收割并适应了现有 tmux-manager 代码库的约 20-30%:
src/tmux_interface.js - 核心 tmux 操作src/instance_manager.js - 实例生命周期管理src/instance_manager.js - 注册和协调src/instance_manager.js - 会话操作cd tmux-claude-mcp-server
npm install
关键点: 您必须为所有 Claude 实例全局配置 MCP 服务器:
claude mcp add tmux-claude -s user node /path/to/tmux-claude-mcp-server/src/simple_mcp_server.js
重要注意事项:
-s user 标志对于分层编排工作是必需的验证配置:
claude mcp list
# 应该显示:tmux-claude: node /path/to/simple_mcp_server.js
在正确配置后,MCP 服务器会在 Claude 启动时自动运行。
{
"name": "spawn",
"arguments": {
"role": "executive",
"workDir": "/jobs/auth_system",
"context": "# 执行者: 认证系统\\n\\n您负责协调 JWT 认证系统的实施..."
}
}
{
"name": "spawn",
"arguments": {
"role": "manager",
以下内容省略,同原文一致。
}
{
"name": "spawn",
"arguments": {
"role": "specialist",
"workDir": "/jobs/auth_system",
"context": "# 专家: 用户模型\\n\\n使用 Mongoose 实现用户模型...",
"parentId": "mgr_1_1"
}
}
{
"name": "send",
"arguments": {
"instanceId": "spec_1_1_1",
"text": "请实现带有电子邮件、密码和时间戳字段的用户模型"
}
}
{
"name": "read",
"arguments": {
"instanceId": "spec_1_1_1",
"lines": 50
}
}
{
"name": "list",
"arguments": {}
}
{
"name": "list",
"arguments": {
"parentId": "mgr_1_1"
}
}
{
"name": "terminate",
"arguments": {
"instanceId": "spec_1_1_1"
}
}
位于 ./state/instances.json:
{
"instances": {
"exec_1": {
"instanceId": "exec_1",
"role": "executive",
"parentId": null,
"sessionName": "claude_exec_1",
"projectDir": "/jobs/auth_system/exec_1",
"paneTarget": "claude_exec_1:0.0",
"status": "active",
"created": "2024-01-01T10:00:00Z",
"children": ["mgr_1_1"]
}
}
}
/jobs/auth_system/
├── exec_1/
│ ├── CLAUDE.md # 执行者上下文
│ └── 项目文件...
├── mgr_1_1/
│ ├── CLAUDE.md # 管理者上下文
│ └── 项目文件...
└── spec_1_1_1/
├── CLAUDE.md # 专家上下文
└── 实现文件...
服务器通过使用 Claude 的 --continue 标志实现了几乎免费的恢复:
{
"name": "restart",
"arguments": {
"instanceId": "spec_1_1_1"
}
}
这将:
claude --project . --continue服务器通过检查调用者的角色并拒绝来自专家的 MCP 工具调用来强制执行这一点。
每个生成的实例:
--project <dir> 进行对话隔离~/.claude/projects/-jobs-auth_system-<instance_id>/MCP 接口设计支持所有阶段,无需更改代码 - 只需配置差异即可。
计划继续功能允许您在指定时间向所有 tmux 会话发送“Plz continue”消息。这对于自动化会话管理和确保在特定时间恢复工作非常有用。
# 在 30 分钟后安排
node scripts/scheduled_continue.js "+30m"
# 在今天下午 3:30 安排
node scripts/scheduled_continue.js "15:30"
# 在上午 9:45 安排,使用 AM/PM 格式
node scripts/scheduled_continue.js "9:45am"
# 使用自然语言安排
node scripts/scheduled_continue.js "in 30 minutes"
# 自定义消息
node scripts/scheduled_continue.js "+1h" -m "现在审查进度"
# 干运行(测试而不执行)
node scripts/scheduled_continue.js "+5m" --dry-run
# 详细日志
node scripts/scheduled_continue.js "+15m" --verbose
# 显示帮助
node scripts/scheduled_continue.js --help
+30m, +2h, +90m15:30, 09:45, 23:593:30pm, 9:45am, 11:59PM"in 30 minutes", "in 2 hours"详细文档请参阅:
npm test # 运行所有测试
./scripts/run_all_tests.sh # 运行全面测试套件
npm run dev # 启动文件监视
有关完整的实现细节,请参阅:
docs/main/tmux-manager-MCP.md - MCP 服务器规范docs/main/tmux-claude-implementation.md - 完整架构docs/main/tmux-mvp-implementation.md - 第一阶段 MVP 方法docs/GIT_INTEGRATION_GUIDE.md - Git