MCP
MCP: a client, not a server
agent-ops speaks MCP in one direction: as a client. It calls two tools on mcp-agent-bridge, a separate, always-on local MCP server. It does not expose any MCP tools of its own.
What it calls
implement runs Claude against the cloned target repo for tasks with no agent label or agent:claude.
review runs every eval: it gets the rubric from references/evals/ and the task or diff, and returns a verdict with issues and suggestions.
- Client
- scripts/dispatch/lib/mcp-bridge-client.mjs
- Bridge URL in the workflows
- http://localhost:8960/mcp
Why a bridge
A claude -p spawned straight from the runner job reported “Not logged in” every time, while the same command worked from an interactive shell. The bridge is a long-lived, already-authenticated process, so routing through it sidesteps that.
Verdicts stay agent-ops’s own
The bridge’s review tool answers in its own vocabulary. agent-ops maps each answer onto the eval’s own verdict pair, such as DONE / NOT_DONE, and never uses the bridge’s generic labels as its verdicts.