Are you the author? Sign in to claim
MCP server for monitoring and controlling coding agents (OpenCode, Claude Code, Codex CLI)
MCP control center for coding agents.
Monitor, inspect, search, and coordinate AI coding sessions from one MCP server: OpenCode, Claude Code, Codex CLI, and Qoder.
Run it without cloning a repository:
npx -y agent-herder
Add the same command to any MCP client:
{
"mcpServers": {
"agent-herder": {
"command": "npx",
"args": ["-y", "agent-herder"]
}
}
}
Start the harness you want to observe first. For OpenCode, that means:
opencode serve
Monitor, inspect, and coordinate. Agent Herder gives your MCP client one control plane for coding-agent sessions that normally live in separate tools.
Typical request:
Find the parent of this session, list its children, then show the last five messages from the child that is currently working on the bug.
Use Agent Herder when you need an MCP server for OpenCode, a Claude Code session manager, Codex CLI transcript search, or one dashboard for several AI coding agents. It is especially useful for parent/child agent workflows, parallel coding tasks, bounded context, and session recovery.
| Harness | Connection | Enablement |
|---|---|---|
| OpenCode | HTTP API | Enabled by default; run opencode serve |
| Claude Code | SDK/CLI and session files | Enabled by default |
| Codex CLI | Native app-server with CLI fallback | Enabled by default |
| Qoder CLI | Native ACP | Set ENABLE_QODER=true |
| Group | Tools |
|---|---|
| Discover | list_agents, agent_info, audit_worktrees |
| Lineage and context | find_parent, list_children, get_transcript, search_transcripts |
| Control | send_message, resume_agent, stop_agent |
| Permissions and models | respond_permission, set_permissions, list_models, change_model |
| Summaries | summarize_session |
get_transcript accepts a session ID, an optional number of latest messages,
and an optional search prompt. It returns only the useful slice instead of
loading an entire conversation into context.
PATH.OPENAI_API_KEY for Codex when the Codex app-server requires it.The common switches are:
| Variable | Default | Purpose |
|---|---|---|
ENABLE_OPENCODE | true | Enable the OpenCode adapter |
ENABLE_CLAUDE | true | Enable the Claude Code adapter |
ENABLE_CODEX | true | Enable the Codex adapter |
ENABLE_QODER | false | Enable the Qoder ACP adapter |
OPENCODE_URL | http://127.0.0.1:4096 | OpenCode server URL |
OPENCODE_SERVER_PASSWORD | — | OpenCode server password, if configured |
CODEX_TRANSPORT | app-server | Codex native transport or cli fallback |
QODER_CWD | current directory | Workspace used by Qoder |
SUMMARIZER_API_KEY | — | Enables summarize_session |
Example for Qoder:
export ENABLE_QODER=true
export QODER_CWD=/path/to/project
npx -y agent-herder
npm ci
npm test
npm run build
npm run inspect
The local stdio entrypoint is dist/index.js.
The optional web UI runs on loopback:
export AGENT_HERDER_WEB_PORT=8787
npm start
Open http://127.0.0.1:8787/. For a persistent ACP profile, set
ACP_AGENT_COMMAND, ACP_AGENT_ARGS as a JSON array, and
ACP_AGENT_PROFILE before starting the server.
Does Agent Herder replace my coding agent? No. It connects your MCP client to the sessions owned by OpenCode, Claude Code, Codex, or Qoder.
Does get_transcript load everything? No. Ask for the latest N messages or
search for a prompt; the result is bounded for practical agent context.
Can I use only one harness? Yes. Disable adapters you do not run with the
ENABLE_* variables.
MIT
Run analytics queries on ClickHouse — explore schemas, execute SQL, fetch results
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases