导线mcp
一个轻量级的MCP服务器,用于从任何终端编排Claude Code工作人员。
不需要Chrome。 将TabzChrome的编排能力带到iTerm、Kitty、Alacritty、Windows终端、WezTerm或您喜欢的任何终端。
功能(35工具)
核心工作器工具
工具
说明
send_keys
将密钥发送到tmux会话,可选择使用Enter键提交
spawn_worker
创建工作树+tmux会话+注入beads上下文
speak
通过边缘TTS(带音频互斥)发布TTS公告
kill_worker
清理工人会议和可选的工作台
list_workers
列出活动的工作进程
get_worker_status
从/tmp/Claude代码状态读取Claude状态
capture_worker_output
获取最近的终端输出
get_context_percent
从Claude Code状态行解析上下文%
get_workers_with_capacity
查找具有剩余上下文容量的工作人员
会话和窗口管理
工具
说明
create_session
创建新的tmux会话(用于非tmux环境,如Claude Desktop)
create_window
在现有会话中创建新窗口
窗格管理
工具
说明
split_pane
水平或垂直拆分当前窗格
create_grid
创建网格布局(2x2、3x1、4x1等)
list_panes
列出所有窗格及其状态
focus_pane
将焦点切换到特定窗格
kill_pane
删除特定窗格
spawn_worker_in_pane
在现有窗格中生成worker
实时监控
工具
说明
watch_pane
通过管道窗格将流窗格输出到文件
stop_watch
停止流式窗格输出
read_watch
从监视文件读取最近的输出
同步
工具
说明
wait_for_signal
阻塞,直到通道接收到信号(超时)
send_signal
在频道上发送信号以解锁服务员
弹出通知
工具
说明
show_popup
在tmux中显示浮动弹出窗口
show_status_popup
显示员工状态摘要弹出窗口
钩子(事件驱动)
工具
说明
set_pane_hook
设置在窗格上运行的命令事件(死亡、退出等)
clear_hook
移除之前设置的钩子
list_hooks
列出活动挂钩
布局和大小调整
工具
说明
resize_pane
调整窗格大小(绝对或相对)
zoom_pane
切换窗格的全屏缩放
apply_layout
应用布局(平铺、均匀水平等)
rebalance_panes
将窗格重新平衡到相等大小
配置
工具
说明
get_config
获取当前导体配置(只读)
面向用户的设置(语音、配置文件、布局/时间)在指挥家tui设置面板中进行管理。规范配置: ~/.config/conductor/config.json.
关键差异
tmux MCP execute-command 立即发送键,这会导致Claude/Codex提示创建换行符而不是提交。 send_keys 使用可选延迟修复此问题:
复制 # What tmux MCP does (broken for Claude):
tmux send-keys -t session "prompt" Enter # Too fast!
# What conductor-mcp does (works):
send_keys(session, "prompt") # submit=True by default
# Internally:
# tmux send-keys -t session "prompt"
# sleep 0.8 # Wait for input detection
# tmux send-keys -t session Enter
# Just type without submitting:
send_keys(session, "partial text", submit=False)
安装
复制 # Clone the repo
git clone https://github.com/GGPrompts/conductor-mcp.git
cd conductor-mcp
# Install dependencies
pip install mcp edge-tts
# Add to Claude Code
claude mcp add conductor -- python /path/to/conductor-mcp/server.py
需求
Python 3.10+
tmux 3.0+
边缘tts(pip install edge-tts)
mpv、ffplay或vlc(用于音频播放)
beads CLI(可选,用于spawn_worker上下文注入)
git(用于工作台管理)
音频挂钩设置(可选)
对于Claude使用工具或完成任务时的自动TTS公告:
1.复制钩子脚本
复制 mkdir -p ~/.claude/hooks/scripts
cp reference/state-tracker.sh ~/.claude/hooks/scripts/
cp reference/audio-announcer.sh ~/.claude/hooks/scripts/
chmod +x ~/.claude/hooks/scripts/*.sh
2.添加到Claude设置(~/.Claude/settings.json)
复制 {
"env": {
"CLAUDE_AUDIO": "1",
"CLAUDE_VOICE": "en-US-AndrewNeural",
"CLAUDE_RATE": "+20%"
},
"hooks": {
"SessionStart": [{"matcher": "", "hooks": [{"type": "command", "command": "~/.claude/hooks/scripts/state-tracker.sh session-start", "timeout": 2}]}],
"PreToolUse": [{"matcher": "", "hooks": [{"type": "command", "command": "~/.claude/hooks/scripts/state-tracker.sh pre-tool", "timeout": 1}]}],
"PostToolUse": [{"matcher": "", "hooks": [{"type": "command", "command": "~/.claude/hooks/scripts/state-tracker.sh post-tool", "timeout": 1}]}],
"Stop": [{"matcher": "", "hooks": [{"type": "command", "command": "~/.claude/hooks/scripts/state-tracker.sh stop", "timeout": 1}]}]
}
}
3.可用语音
列车长自动为工作人员分配独特的声音。可用语音:
美国:AriaNeural、GuyNeural、JennyNeural、DavisNeural、AmberNeural、AndrewNeural、EmmaNeural、BrianNeural
英国:SoniaNeural、RyanNeural
AU:娜塔莎神经,威廉神经
音频功能
互斥锁 :直接 speak() 通话优先于挂机通知
防抖 :快速发布的工具受到限制
缓存 :生成的音频缓存在 /tmp/claude-audio-cache/
使用示例
基本:将钥匙发送给工人
复制 # Send and submit (default behavior)
send_keys(session="worker-1", keys="Fix the auth bug")
# Send without submitting
send_keys(session="worker-1", keys="partial input", submit=False)
# Announce status
speak(text="Task assigned to worker 1")
工人视觉网格
复制 # Create a 2x2 grid (4 panes)
grid = create_grid(layout="2x2", start_dir="/path/to/project")
# Spawn workers in each pane
for pane_id, issue_id in zip(grid["panes"], issues):
spawn_worker_in_pane(pane_id=pane_id, issue_id=issue_id, project_dir="/path/to/project")
speak(text=f"Spawned {issue_id}")
来自克劳德桌面(非tmux)
复制 # Bootstrap tmux environment first
session = create_session(name="workers", start_dir="/project")
# Then create grid and spawn workers
create_grid(layout="2x2", session="workers")
实时监控
复制 # Watch a pane's output
watch_pane(pane_id="%5")
# Read recent output
output = read_watch(pane_id="%5", lines=20)
# Stop watching
stop_watch(pane_id="%5")
工人与信号的协调
复制 # Conductor waits for worker to finish
result = await wait_for_signal(channel="done-BD-abc", timeout_s=600)
# Worker signals completion
send_signal(channel="done-BD-abc")
参考
中的遗留实现 reference/:
audio-announcer.sh -带缓存、互斥、去抖动的TTS
state-tracker.sh -Claude钩子用于状态跟踪
tmux-status-claude.sh -Tmux状态栏集成
许可证
麻省理工学院