hyperhive/hive-agent-mcp/README.md
2026-07-25 20:05:32 +02:00

34 lines
1.6 KiB
Markdown

# hive-agent-mcp
The built-in hyperhive MCP server every agent gets by default. Runs a
long-lived streamable-http listener (the `hive-mcp-http` systemd unit)
that claude reconnects to each turn via `--mcp-config` — this avoids
the per-turn stdio re-registration race that a spawned-per-turn server
would hit. HTTP is the sole transport; there is no stdio mode here.
## When to use it
This is where the core hyperhive tool surface lives: `send`, `recv`,
`ask`/`answer`, `remind`, `get_loose_ends`, `set_status`,
`get_agent_meta`, lifecycle (`kill`/`start`/`restart`/`update` on
direct children), scheduling, and the approval-request tools. Reach
for this crate when you're adding or changing a built-in tool rather
than an `extraMcpServers` add-on — those are separate stdio bridges
(see `hive-bash-mcp`, `hive-matrix-mcp`) that dial the harness socket
or their own daemon instead of living here.
## Shape
- **`mcp/`** — the tool surface itself: one handler per tool, dispatch
through `client.rs` back into the hyperhive broker
(`/run/hive/mcp.sock`) or, for loose-ends v2 (todos/reminders), the
in-agent socket the `hive-agent` harness serves.
- **`client.rs`** — socket client to the hyperhive broker.
- **`send_allow.rs`** — enforces the per-agent
`hyperhive.allowedRecipients` allow-list on `send`/`ask`.
- **`paths.rs`** — socket + state path resolution shared with the
harness's own `paths.rs` conventions.
Sibling of `hive-agent` (the serve loop that renders the
`--mcp-config` blob pointing here). Standalone bin crate so the
always-on MCP server doesn't need to link the whole turn-loop lib.