代理团队MCP服务器

实现Claude Code代理团队协议的MCP服务器,支持共享任务列表、代理间消息传递和基于tmux的代理生成。

  • by cs50victor
  • Python
  • 本地部署
  • 281 星标
  • 更新于
在 GitHub 查看 cs50victor/claude-code-teams-mcp

使用说明

克劳德团队

实现Claude Code的MCP服务器 代理团队 任何MCP客户端的协议。

https://github.com/user-attachments/assets/531ada0a-6c36-45cd-8144-a092bb9f9a19

Claude Code有一个内置的代理团队功能(共享任务列表、代理间消息传递、基于tmux的生成),但该协议是内部的,与自己的工具紧密耦合。此MCP服务器将该协议重新实现为独立协议 主控程序 服务器,使其可供任何MCP客户端使用: 克劳德代码, 开源代码,或任何讲MCP的东西。基于a 深入了解Claude Code的内部.PR欢迎。

安装

固定到释放标签上 (例如。 @v0.1.1),不 main。发布之间有突破性的变化。

克劳德代码(.mcp.json):

{
  "mcpServers": {
    "claude-teams": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/cs50victor/claude-code-teams-mcp@v0.1.1", "claude-teams"]
    }
  }
}

OpenCode(~/.config/opencode/opencode.json):

{
  "mcp": {
    "claude-teams": {
      "type": "local",
      "command": ["uvx", "--from", "git+https://github.com/cs50victor/claude-code-teams-mcp@v0.1.1", "claude-teams"],
      "enabled": true
    }
  }
}

需求

  • Python 3.12+
  • 终端复用器
  • PATH上至少有一个编码代理: 克劳德代码 (claude)或 开源代码 (opencode)
  • OpenCode队友需要 OPENCODE_SERVER_URL 和那个 claude-teams MCP在该实例中已连接

配置

变量 描述 默认值
CLAUDE_TEAMS_BACKENDS 启用逗号分隔的后端(claude, opencode) 从连接的客户端自动检测
OPENCODE_SERVER_URL OpenCode HTTP API URL(开放代码队友需要) (未设置)
USE_TMUX_WINDOWS 在tmux窗口而不是窗格中生成队友 (未设置)

没有 CLAUDE_TEAMS_BACKENDS,服务器会自动检测正在连接的客户端,并仅启用其后端。显式设置以启用多个后端:

{
  "mcpServers": {
    "claude-teams": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/cs50victor/claude-code-teams-mcp@v0.1.1", "claude-teams"],
      "env": {
        "CLAUDE_TEAMS_BACKENDS": "claude,opencode",
        "OPENCODE_SERVER_URL": "http://localhost:4096"
      }
    }
  }
}

工具

工具 说明
team_create 创建一个新的代理团队(每个会话一个)
team_delete 删除团队和所有数据(如果队友处于活动状态,则失败)
spawn_teammate 在tmux中培养一名队友
send_message 发送DM、广播(仅限潜在客户)、关闭/计划响应
read_inbox 读取代理收件箱中的邮件
read_config 阅读团队配置和成员列表
task_create 创建任务(自动递增ID)
task_update 更新任务状态、所有者、依赖关系或元数据
task_list 列出所有任务
task_get 获取完整的任务详细信息
force_kill_teammate 杀死队友的tmux窗格/窗口并清理
process_shutdown_approved 优雅关机后删除队友

建筑

  • 产卵:队友在tmux窗格(默认)或窗口中启动(USE_TMUX_WINDOWS).每个都有一个唯一的代理ID和颜色。
  • 消息传递:JSON收件箱和 ~/.claude/teams/<team>/inboxes/.向任何人传递信息;队友只发信息。
  • 任务:JSON文件位于 ~/.claude/tasks/<team>/状态跟踪、所有权和依赖关系管理。
  • 并发:原子写入通过 tempfile + os.replace.跨平台文件锁通过 filelock.
~/.claude/
├── teams/<team>/
│   ├── config.json
│   └── inboxes/
│       ├── team-lead.json
│       ├── worker-1.json
│       └── .lock
└── tasks/<team>/
    ├── 1.json
    ├── 2.json
    └── .lock

许可证

麻省理工学院