team-mcp 0.11.0

MCP server providing the shared agent mailbox for teamctl.
team-mcp-0.11.0 is not a library.

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.

Non-claude runtimes (codex, gemini) are strictly request/response over MCP — there is no push mechanism they honour. For those agents the watcher additionally types a short "📬 N new team message(s)" nudge into the agent's tmux pane (the same mechanism compact_self uses), batching all rows found in one poll tick into a single nudge. The agent then drains its mailbox via inbox_peek / inbox_read / inbox_ack.