
agent-mcp-hub
Updated 5d agoby blackaxgit
agent-mcp-hub
One MCP server that bridges multiple CLI coding agents — Codex, Cursor, OpenCode, Claude, and Antigravity — into any MCP client.
stdio only — by design. The hub ships no Docker image and no HTTP transport (both were removed during the 0.5.x line). A containerised or remote server cannot see the caller's repository path and cannot reuse the caller's CLI logins — it would break the product contract on both halves. The hub runs as a child process of your MCP client, on your machine, as you.
Tools
| Tool | Description |
|---|---|
codex | Delegate a prompt to codex exec (prompt piped via stdin) |
cursor | Delegate a prompt to cursor-agent -p (prompt piped via stdin) |
opencode | Delegate a prompt to opencode run |
claude | Delegate a prompt to the Claude Code CLI (prompt piped via stdin) |
agy | Delegate a prompt to Google Antigravity (agy --print=…, prompt passed as a flag value) |
run_all | Same prompt to all agents in parallel, results side by side |
list_agents | Which agent CLIs are installed and on PATH |
ping | Health check |
Agent tools accept prompt (required), model, cwd, timeoutMs (total runtime
cap, default 1800000 = 30 min), and idleTimeoutMs (inactivity cap, default 300000
= 5 min). See Long-running tasks & timeouts.
Known limitation: opencode prompts may not start with - (its CLI could parse
them as flags); the tool returns an actionable error instead of guessing.
Choosing models per agent
Model ids are agent-specific and do not overlap. o3 means nothing to
agy, gemini-3.6-flash-low means nothing to codex, and opencode namespaces
its own (opencode/big-pickle). So a single model value is valid for at most
one agent in a fan-out.
run_alltakesmodels— a per-agent map. Agents you don't list fall back tomodel, then to their own CLI default.review_changetakesrunnerModelandreviewerModel, so the agent writing the change and the agent judging it can use different engines and tiers.modelremains a fallback for both.
{
"tool": "run_all",
"arguments": {
"prompt": "Explain the retry logic in src/exec.ts",
"models": { "codex": "o3", "agy": "gemini-3.6-flash-low", "claude": "haiku" }
}
}
An unknown agent name in models is rejected with the list of enabled agents —
a typo never silently falls back to the default model.
Where to find valid ids: opencode models, cursor-agent models and
agy models list them. codex and claude have no such command — codex reads
its default from ~/.codex/config.toml, and claude accepts the documented
aliases (opus, sonnet, haiku, fable). Note claude models is not a
subcommand: it is treated as a prompt, so its "model list" is generated text,
not a source of truth.
Error handling
When a wrapped CLI fails, the hub classifies the failure and returns a clean,
ANSI-free, actionable isError result — never a raw terminal dump — naming the
class and the exact fix:
| Class | Example remediation |
|---|---|
not_installed | install the CLI (e.g. npm i -g @openai/codex) / fix PATH |
not_authenticated | codex login · cursor-agent login · opencode auth login · claude → /login · agy → sign in on first run (or set the matching API key) |
not_configured | set a model/provider in the CLI's config |
timed_out | raise timeoutMs, or check the agent/model is responsive |
stream_stalled | the agent reached the network but its stream keeps dropping (e.g. cursor behind a TLS-intercepting proxy) — treat that agent as unavailable; raising timeoutMs will not help |
server_busy | retry shortly (upstream rate-limit, or the local agent-spawn queue is full) |
tool_failure | generic non-zero exit — the message includes (exit N) and a trimmed output tail |
Related servers

n8n
Updated todayby n8n-io
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

mcp-server-fetch
OfficialUpdated 14d agoA Model Context Protocol server providing tools to fetch and convert web content for usage by LLMs

@modelcontextprotocol/server-everything
OfficialUpdated 14d agoMCP server that exercises all the features of the MCP protocol