MCP Tools

The AgentiHooks MCP server (hooks-utils) exposes tools across 3 categories. The server runs python -m hooks.mcp and is registered automatically during agentihooks init.

Categories

Category Tools
Channels channel_publish, channel_list, channel_acknowledge, channel_clear, brain_refresh, brain_status — fleet-command broadcast + brain adapter
Enforcement enforcement_set, enforcement_list, enforcement_clear — doctrine reminder banners injected at PreToolUse
Agent pool pool_list, pool_status, call_agent — see which fleet agents are live, declare what you are working on, and message one peer directly

Earlier releases shipped generic cloud-utility categories (aws, email, storage, database, compute, observability, utilities). These were removed; only the two agentihooks-native categories above ship now.


Filtering categories

By default, all categories load. Use MCP_CATEGORIES to restrict:

MCP_CATEGORIES=channels python -m hooks.mcp

Valid values (comma-separated):

channels, enforcement, agent_pool

Setting MCP_CATEGORIES=all (the default) loads every category.

An unknown category is skipped with a warning on stderr; if every requested category is unknown the server starts with zero tools and warns loudly.

Transport

stdio by default: Claude Code spawns one server process per session. Where a policy filters stdio MCP servers out of the client, MCP_TRANSPORT switches hooks-utils to sse or streamable-http and agentihooks init runs it as a daemon instead. See MCP Transport.

Two consequences of one process serving every session:

  • pool_list, pool_status, call_agent and channel_acknowledge need an explicit session_id, because no environment lookup can identify the caller. SessionStart names it for each session.
  • MCP_CATEGORIES becomes machine-wide. Per-profile tool subsetting is stdio-only, since a url entry in ~/.claude.json carries no env block.