Multi-Agent MCP
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Multi-Agent MCP
基于 FastMCP 构建的多智能体团队协作 MCP 服务器。通过 tmux 终端窗口为每个 agent 成员创建独立的 CLI 会话,由 Leader 统一接收总任务、拆分子任务并分配给各成员。
支持 Claude Code + OpenAI Codex CLI 混合 agent 协同工作。
架构概览
┌──────────────────────────────────────────────────────────────────┐
│ 你的 VS Code / 主会话 │
│ │
│ 用自然语言管理团队、启动终端、分配总任务 │
│ ↓ │
│ MCP Server (FastMCP) ←── teams_data.json (持久化) │
│ ↓ │
│ ┌─ tmux session: mcp_dev_team ─────────────────────────────────┐ │
│ │ window: 👑alice (leader · codex) ← 自动连接 MCP │ │
│ │ window: bob (coder · claude) ← 纯文本接收子任务 │ │
│ │ window: carol (tester · codex) ← 纯文本接收子任务 │ │
│ └──────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘Related MCP server: Agent Collaboration MCP Server
环境要求
依赖 | 版本/说明 |
Python | ≥ 3.10 |
FastMCP | ≥ 2.0 ( |
tmux |
|
Claude Code | (可选) |
Codex CLI | (可选) |
安装
1. 克隆项目
git clone https://github.com/davidzong1/Mult-Agent-MCP.git
cd mult_agent_mcp
./install.sh
source ~/.bashrc2. 安装依赖
pip install -r requirements.txt3. 确保 tmux 可用
tmux -V未安装时:
# Ubuntu / Debian
sudo apt install tmux
pip install textual
# macOS
brew install tmux4. 安装至少一个 Agent CLI
# Claude Code
npm install -g @anthropic-ai/claude-code
# Codex CLI(需要 Node.js ≥ 22,ChatGPT Plus/Pro 账号或 API Key)
npm install -g @openai/codex5. 指令行启动MCP(已废弃)
配置 MCP 连接
Claude Code — 在 .claude/mcp.json 中添加:
{
"mcpServers": {
"mult-agent-mcp": {
"type": "http",
"url": "http://localhost:8000/mcp"
}
}
}Codex CLI 命令行执行 — 终端执行:
codex mcp add mult-agent-mcp --url http://localhost:8000/mcp或让 MCP server 自动配置(见下文 setup_codex_mcp)。
leader 终端在 launch_team_terminals 时会自动配置 MCP(Claude → 写入 .claude/mcp.json,Codex → 注册到 ~/.codex/config.toml)。
6. 启动 MCP 服务器
cd mult_agent_mcp
python mult_agent_mcp.py
# 或指定端口
FASTMCP_PORT=8000 python mult_agent_mcp.pyTeam Manager TUI(团队管理可视化界面)(推荐)
无需自然语言命令,通过终端图形界面直接管理团队和成员。
启动
teammcp主界面
团队详情页(选中团队按 Space)
操作快捷键
主界面
按键 | 功能 |
| 弹出创建团队表单(名称/描述/默认Agent) |
| 进入团队详情页 |
| 设置代理 |
| 删除选中团队(有确认) |
| 直接接管 Leader(当前会话) |
| 退出 |
详情页
按键 | 功能 |
| 弹出添加成员表单(名称/角色/Agent) |
| 移除选中成员(Leader 不可直接移除) |
| 编辑成员的角色和 Agent |
| 将选中成员指定为 Leader |
| 启动团队 tmux 终端 |
| 关闭团队 tmux 终端 |
| 打开 Leader 终端;TUI 在 tmux 内运行时会分屏进入,否则打开新终端窗口 |
| 返回主界面 |
详情页成员状态列会显示稳定文字状态:working 表示窗口存活且有未完成任务,idle 表示窗口存活但无进行中任务,sleep 表示任务完成后休眠,dead 表示未启动或异常退出。
数据兼容
TUI 直接读写 MCP Server 的 teams_data.json,两者完全互通:
TUI 添加团队 ─→ teams_data.json ←─ MCP Server team_create
TUI 添加成员 ─→ teams_data.json ←─ MCP Server add_member
TUI 指定Leader ─→ teams_data.json ←─ MCP Server set_leader可以用 TUI 创建团队,然后在 Claude Code 中 launch_team_terminals 启动终端;也可以反过来。
快速开始
所有操作在 Claude Code / Codex 的聊天框中用自然语言完成。
第一步:创建混合 agent 团队
> 创建一个团队叫 dream_team,默认 agent 用 claude。
添加三个成员:
alice(role=leader, agent=codex),
bob(role=coder, agent=claude),
carol(role=tester, agent=codex)等价于:
team_create("dream_team", "混合 agent 团队", default_agent="claude")
add_member("dream_team", "alice", role="leader", agent="codex")
add_member("dream_team", "bob", role="coder", agent="claude")
add_member("dream_team", "carol", role="tester", agent="codex")
set_leader("dream_team", "alice")第二步:启动终端
> 启动 dream_team 的终端,任务是"实现用户登录系统"MCP server 自动完成:
alice (codex leader):注册 MCP 到
~/.codex/config.toml,启动 codex 窗口bob (claude coder):启动 claude 窗口
carol (codex tester):启动 codex 窗口
总任务文本发送到 alice 的终端
第三步:Leader 拆分与分配
Leader (alice) 在自己的终端中:
> 查看团队
→ leader_list_team("dream_team")
→ bob(coder · claude), carol(tester · codex)
> 让 bob 实现登录页面,让 carol 写测试用例
→ leader_assign_subtask("dream_team", "bob", "实现登录页面...")
→ leader_assign_subtask("dream_team", "carol", "写登录测试用例...")第四步:收尾
> 查看终端状态
→ terminal_status("dream_team")
> 关闭所有终端
→ kill_team_terminals("dream_team")两种 Leader 模式
tmux 模式(默认)
Leader 在独立 tmux 窗口中运行,自动连接 MCP server。
你 ─→ MCP ─→ launch_team_terminals ─→ [alice tmux] ─→ leader_* ─→ [bob] [carol]Direct 模式
你直接在当前会话充当 leader。
claim_leader("dream_team")
# 如果旧 leader 存活 → 自动降级为普通成员
# 如果旧 leader 已死 → 直接接管
# 直接在当前会话分配任务
leader_assign_subtask("dream_team", "bob", "实现登录页面")
leader_broadcast("dream_team", "进度更新:前端完成 30%")
# 释放
unclaim_leader("dream_team", restore_member="alice")混合 Agent 协同(Claude + Codex)
核心设计
每个成员有独立的 agent 字段,值为任意 CLI 命令。MCP server 根据 agent 类型自动适配:
Agent 类型 | 识别规则 | MCP 配置方式 | Leader 启动 |
| 包含 "claude" | 写入 | 从团队共享工作目录启动 |
| 包含 "codex" | 注册到 | 用 |
其他 | 不匹配以上 | 两种都尝试 | 从团队共享工作目录启动 |
workspace_dir 默认避开内部 .team_workspaces/<team> 隔离目录,优先使用进入 agent 前的工作目录;通过 team_manger.py 启动时使用 team_manger.py 所在目录。成员交换报告、补丁、文件锁和压缩上下文时使用 share_context_space/<team> 共享上下文区。
混合团队示例
# 创建团队
team_create("mixed_team", default_agent="claude")
# Claude 作为 leader + Codex 作为成员
add_member("mixed_team", "alice", role="leader", agent="claude")
add_member("mixed_team", "bob", role="coder", agent="codex")
add_member("mixed_team", "carol", role="tester", agent="codex")
set_leader("mixed_team", "alice")
# 或者反过来——Codex 作为 leader
add_member("mixed_team", "dave", role="backend_dev", agent="claude")
member_set_agent("mixed_team", "alice", "codex") # 切换 leader 类型
launch_team_terminals("mixed_team", task="实现微服务架构")
# 检查 agent 配置状态
check_agent_setup("mixed_team")
→ Claude MCP: ✅
→ Codex MCP: ✅Codex MCP 管理工具
工具 | 说明 |
| 手动注册 Codex MCP(等效于 |
| 移除 Codex MCP |
| 检查团队中所有 agent 的 MCP 配置状态 |
# 也可以手动在终端执行
codex mcp add mult-agent-mcp --url http://localhost:8000/mcp
codex mcp list任务传递原理
无论 member 是 Claude 还是 Codex,子任务通过 tmux send-keys 以纯文本发送到对应窗口。成员终端收到文本后,像有用户在终端打字并按回车一样,agent CLI 自动解析并执行。
leader_assign_subtask("team", "bob", "实现登录页面")
│
▼
tmux send-keys -t mcp_team:bob "实现登录页面" Enter
│
▼
bob 的终端窗口收到文本 → claude 或 codex 开始执行如果成员卡在文件修改或命令执行的授权提示中,Leader 可先读取成员终端,再向该成员终端发送受控确认选项:
leader_read_member_terminal("team", "bob") # 查看成员是否停在 approval prompt
leader_authorize_member("team", "bob", "yes") # 选择第 1 项,通常为本次允许
leader_authorize_member("team", "bob", "session") # 选择第 2 项,通常为本会话记住
leader_authorize_member("team", "bob", "3") # 选择第 3 项,具体含义以终端提示为准完整工具参考
用户端工具(团队管理)
工具 | 参数 | 说明 |
|
| 创建团队,可指定默认 agent |
| — | 列出所有团队 |
|
| 删除团队及终端 |
|
| 修改团队默认 agent |
用户端工具(成员管理)
工具 | 参数 | 说明 |
|
| 添加成员。agent 为空时继承团队默认值 |
|
| 移除成员 |
|
| 列出成员(含 agent 类型) |
|
| 指定 tmux leader |
|
| 修改成员 agent(claude/codex/自定义) |
用户端工具(Agent 配置)
工具 | 参数 | 说明 |
|
| 注册 Codex MCP 到 |
|
| 移除 Codex MCP |
|
| 检查团队所有 agent 的 MCP 配置状态 |
| — | 查看 MCP 配置(Claude + Codex 双格式) |
用户端工具(Leader 切换)
工具 | 参数 | 说明 |
|
| 将当前会话注册为 leader |
|
| 释放 leader |
用户端工具(终端管理)
工具 | 参数 | 说明 |
|
| 启动所有成员的 tmux 终端 |
|
| 关闭所有终端 |
|
| 查看终端状态(含 agent 类型) |
Leader 端工具
工具 | 参数 | 说明 |
|
| 查看团队面板 |
|
| 分配前按任务内容和成员角色选择参与者,缺失角色可自动创建成员 |
|
| 分配子任务(支持 claude + codex 成员) |
|
| 仅向任务相关角色成员分配任务 |
|
| 广播消息给全员 |
|
| 仅向任务相关角色成员广播 |
|
| 开启或关闭讨论模式 |
|
| 启动讨论模式,跳过 busy 成员 |
|
| 汇总当前结论并推进下一轮,最多 3 轮 |
|
| 手动结束讨论模式 |
|
| 对成员终端中的授权提示发送确认选项 |
|
| 读取成员终端最近输出,定位授权卡点 |
|
| 巡检成员终端,识别 approval/busy/idle/dead,并让空闲成员退出 working |
|
| 重新激活 leader,原子收取中断/休息期间的成员回报并展示未完成任务 |
|
| 获取 leader 重新进入后的完整恢复摘要 |
|
| 配置中断自动恢复的限流与上限 |
|
| 设置成员 |
|
| 授予成员自动执行权限;Claude 使用 auto mode,Codex 使用 no-approval, |
|
| 动态添加成员 + 创建终端 |
|
| 移除成员 + 关闭终端 |
|
| 修改成员角色/agent |
|
| 启动成员终端 |
成员协作工具
工具 | 参数 | 说明 |
|
| 回传结果并生成压缩上下文 |
|
| 读取持久化的未完成任务并记录续跑状态,供成员中断后继续工作 |
|
| 检查 leader 终端;发现中断时幂等触发限流恢复 |
|
| 查看当前讨论主题、轮次和其他成员最后结论 |
|
| 上报讨论模式中的本轮结论 |
|
| 读取共享上下文区最近结果 |
|
| 列出共享上下文区文件 |
|
| 申请文件修改锁 |
|
| 释放自己的文件锁 |
|
| 查看活跃文件锁 |
|
| 将修改以 patch 提交到共享上下文区 |
多人需要修改同一文件时,优先由成员申请 member_acquire_file_lock;未拿到锁的成员应提交 member_submit_patch,由 leader 或锁持有人合并,避免直接覆盖其他成员改动。
工作流中断自动恢复
启用团队终端监控后,MCP 后台巡检会检测成员窗口缺失、CLI 崩溃回到 shell 提示符等中断状态;若成员仍有未完成任务,会在恢复上限内重建窗口、重发恢复上下文和任务。成员重新进入后也可调用 member_get_my_task 主动续跑。
leader 侧采用同一闭环:巡检发现 leader 窗口中断时幂等重建并注入总任务恢复上下文;成员调用 member_report_result 时会把回报持久化到有界队列,并在 leader 处于休息状态时注入唤醒消息。若 leader 终端已死,回报路径会尝试限流恢复;direct leader 则由 leader_activate 在重新进入后原子收取回报。
恢复具有并发安全和保护措施:终端创建使用现有 spawn 锁,leader 复活按时间间隔和会话次数限流,活跃 CLI 不会被自动重启;达到上限时保留回报和恢复摘要,等待人工处理。
claim_leader 接管逻辑
claim_leader("team")
│
├── 已经是 direct leader
│ → 提示"你已经是 leader"
│
├── 之前无 leader
│ → 🆕 设为直接控制模式
│
├── 有 tmux leader 且终端存活
│ → 🔄 原 leader 降级为普通成员(窗口保留)
│ → ✅ 你接管为 leader
│
└── 有 tmux leader 但终端已死
→ 💀 直接接管,清理死引用数据存储
{
"teams": {
"dream_team": {
"description": "混合 agent 团队",
"leader": "alice",
"leader_type": "tmux",
"default_agent": "claude",
"terminals_active": true,
"members": {
"alice": {"role": "leader", "model": "", "agent": "codex"},
"bob": {"role": "coder", "model": "", "agent": "claude"},
"carol": {"role": "tester", "model": "", "agent": "codex"}
}
}
}
}字段 | 说明 |
| 被指定为 leader 的成员名 |
|
|
| 团队默认 agent,新成员继承 |
| 团队共享工作目录 |
| 团队共享上下文区 |
| tmux session 是否在运行 |
| 成员 CLI 命令( |
| 成员角色标识 |
| 成员使用的模型(可选) |
| 成员任务快照与完成标记,用于中断续跑 |
| leader 离线或休息期间的有界成员回报队列 |
| leader 自动复活的启用、间隔和次数上限 |
MCP 配置位置:
Claude:
<workspace_dir>/.claude/mcp.jsonCodex:
~/.codex/config.toml(全局,所有 codex agent 共享)
tmux 操作速查
# 查看团队终端
tmux attach -t mcp_dev_team
# 在 tmux 中: Ctrl+B 然后按数字键 → 切换窗口
# 在 tmux 中: Ctrl+B 然后按 W → 列出所有窗口
# 在 tmux 中: Ctrl+B 然后按 D → 脱离(不关闭)
tmux list-sessions # 列出所有 session
tmux list-windows -t mcp_dev_team # 列出某 session 的窗口常见问题
Q: leader 的终端如何获得 leader_* 工具?
A: launch_team_terminals 根据 leader 的 agent 类型自动配置 MCP:
Claude leader → 写入
<workspace_dir>/.claude/mcp.json,claude 启动在此目录自动加载Codex leader → 注册到
~/.codex/config.toml,用-C进入共享工作目录,并收到要求使用leader_*工具协调已有成员的初始提示
Q: Codex 和 Claude 成员之间如何协同?
A: 成员终端通过 tmux send-keys 接收纯文本指令——与具体 CLI 无关。Leader 把 "实现登录页面" 发给 bob(claude)和 "写测试" 发给 carol(codex),两者都在自己终端中收到文本并按各自方式执行。
Q: Codex 作为 leader 时的限制?
A: Codex 需要先完成 MCP 注册才有 tool calling 能力。launch_team_terminals 会自动处理,或手动执行 setup_codex_mcp()。Codex 的 MCP 是全局注册(~/.codex/config.toml),同一台机器上所有 codex 实例共享;Codex leader 启动时会收到明确提示,要求使用 leader_list_team / leader_assign_subtask 等团队 MCP 工具,而不是用 Codex 内置 spawn 代替团队成员。
Q: 如何在 direct 模式下分配差异化任务?
A: 先用 claim_leader 接管,然后多次调用 leader_assign_subtask,每次指定不同 member_name 和 subtask。
Q: tmux leader 终端被关闭了怎么办?
A: 调用 claim_leader("team_name"),系统检测到旧 leader 已死,自动接管。之后可重新 launch_team_terminals。
Q: 如何从 Claude leader 切换到 Codex leader?
A: member_set_agent("team", "alice", "codex") 然后重新 launch_team_terminals。tmux 模式下旧窗口会被重建,新窗口启动 codex 并自动配置 MCP。
This server cannot be deployed
Maintenance
Related MCP Connectors
- ParleyOAuthdev.weldra
Coordination hub for AI coding agents: message teammates, ask humans, audit every event.
- AxisOAuthdev.useaxis
Coding agents from Claude Code, Cursor and Codex claim jobs and lock files on one shared board.
Your AI apps as one team: hand work to Codex, Claude Code or Cursor on your Mac, with a logbook.
Assign Linear, Jira or GitHub issues to an AI coding agent team that plans, builds, reviews, tests.
Related MCP Servers
- AlicenseAqualityDmaintenanceOrchestrates multiple Claude Code agents across iTerm2 sessions with process-level isolation, enabling collaborative AI development workflows on multiple codebases with task-based inter-agent communication and persistent state management.71MIT
- AlicenseBqualityDmaintenanceEnables AI agents to orchestrate a team of sub-agents through tmux sessions for complex task delegation and parallel implementation. It provides tools for launching agents, monitoring their real-time status, and managing communication between them.611 npm26MIT
- AlicenseCqualityDmaintenanceManages multiple AI CLI instances (Claude Code, Codex, Gemini, Cursor) in tmux sessions for parallel task execution, with optional git worktree support.90MIT
- AlicenseDqualityCmaintenanceEnables Claude Code as a team leader to delegate tasks to GPT and Gemini experts, supporting multi-LLM collaboration with tools for consultation, code review, design, and background execution.7624 npmMIT