agent-calling
v1.0.5
Published
Codex MCP bridge for delegating plans to Claude Code.
Readme
agent-calling
agent-calling 是一个 Codex MCP 服务,用于把 Codex 生成的任务方案桥接给 Claude Code 执行。Codex 启动时会启动 MCP 服务,关闭时自动销毁;Claude 执行 workspace 固定为当前项目的 .agents/calling,运行数据和日志统一写入 .agents/calling/logs。
config.toml 配置
推荐使用 npx 启动,不依赖本地源码路径。配置位置通常是 ~/.codex/config.toml。
[mcp_servers.agent-calling]
command = "npx"
args = [
"-y",
"agent-calling",
"mcp"
]
startup_timeout_sec = 20
tool_timeout_sec = 3600npm 包入口
npm 包暴露命令:
npx -y agent-calling mcp包内入口为 bin/agent-calling.js,它会启动包内 Python MCP 服务:
python <packageRoot>/python/start_worker.py --mcp因此目标机器仍需要能执行:
python --version
claude --version工作目录和日志
MCP 模式默认以 Codex 启动时的当前目录作为项目根目录。每次调用工具时也可以传入 projectRoot 覆盖。
- workspace:
<projectRoot>/.agents/calling - 日志根目录:
<projectRoot>/.agents/calling/logs - MCP 日志:
<projectRoot>/.agents/calling/logs/mcp.log - bridge 日志:
<projectRoot>/.agents/calling/logs/bridge.log - run 数据:
<projectRoot>/.agents/calling/logs/runs/<runId>/
不会生成 <projectRoot>/.agents/calling/.tmp/agent-bridge。
MCP 工具
claude_bridge_health:检查 Claude Bridge 状态、workspace、日志目录、Windows Terminal、PowerShell7、Windows PowerShell、独立 worker 和 Claude 命令可用性。claude_bridge_submit:提交planText或planPath到独立 worker 队列,返回runId和 run 文件路径;不会主动打开窗口。claude_bridge_run:提交任务并按 Windows Terminal -> PowerShell7 -> Windows PowerShell 的顺序打开可见 worker 窗口;Claude 实时输出只在该窗口展示,MCP 调用等待本地状态进入终态后返回{ status, worker, completion }。
推荐调用流程:
claude_bridge_run -> PowerShell7 窗口展示 Claude 实时输出 -> MCP 调用轮询本地 status.json 到终态 -> 返回 status + worker + completionMCP 服务不再声明 logging capability,不发送 notifications/message 或 notifications/progress,也不提供 claude_bridge_wait / claude_bridge_read 工具。claude_bridge_run 只在 MCP 调用内部轮询本地 status.json 终态,不轮询 Claude 实时输出。
worker 窗口按 wt.exe、pwsh、powershell 的顺序发现启动器。无论使用哪个启动器,最终都通过 -ExecutionPolicy Bypass -EncodedCommand <base64> 执行同一个 start_worker.py --once --run-id <runId>,不会生成临时 .ps1 启动脚本;执行结束后窗口自动关闭。bridge root 固定为:
<projectRoot>/.agents/calling/logsClaude 执行命令会动态追加当前项目根目录,并使用用户明确要求的高权限模式:
claude -p --output-format stream-json --verbose --include-partial-messages --permission-mode bypassPermissions --add-dir <projectRoot>bypassPermissions 会绕过 Claude Code 的权限确认,适合受信任自动化环境;不要在不可信仓库或不可信 plan 上使用。
开发验证
$env:PYTHONDONTWRITEBYTECODE='1'; python tests/claude_bridge_tests.py$env:PYTHONDONTWRITEBYTECODE='1'; python -c "import ast, pathlib; files=[pathlib.Path(p) for p in ['tools/claude_bridge/common.py','tools/claude_bridge/submit_task.py','tools/claude_bridge/read_run.py','tools/claude_bridge/start_worker.py','python/common.py','python/start_worker.py','tests/claude_bridge_tests.py']]; [ast.parse(f.read_text(encoding='utf-8'), filename=str(f)) for f in files]; print('syntax ast parse passed')"