team-mcp — the shared agent mailbox, exposed as an MCP stdio server.
Protocol: MCP (JSON-RPC 2.0 over stdio, line-delimited). Protocol version
pinned to the workspace constant team_core::MCP_PROTOCOL_VERSION.
Each agent runs its own team-mcp child (spawned by the runtime via
--mcp-config). All processes point at the same SQLite file. Concurrent
writers are handled by SQLite in WAL mode.
Channels delivery
When the connected client is Claude Code v2.1.80+ launched with
--channels server:team, this server pushes every new inbox row as an
notifications/claude/channel JSON-RPC notification. The runtime injects
the payload into the live session as a <channel source="team"> event,
so the agent reacts on arrival without polling. The watcher initialises
its high-water mark to the current max inbox id at startup, so unacked
pre-existing mail is left for the agent to fetch via inbox_peek (the
bootstrap prompt directs it to). Other runtimes silently ignore the
notification, so emitting unconditionally is safe.