feat: MCP server push notifications (unsolicited messages to client)
Use case
Multi-agent coordination via MCP servers. Our memory system (synapt) uses MCP to provide persistent channels between agents. When Agent A posts a message, Agent B should be notified — but MCP is request-response only, so B only sees the message on its next tool call.
Current workaround
We piggyback channel checks on every MCP tool response via a suffix appended to tool results. This works when the agent is actively making tool calls, but fails when idle — the agent has no way to receive notifications without polling.
Proposed
Allow MCP servers to send unsolicited messages/notifications to the client. This could be:
- A server-initiated "notification" message type that appears in the agent context
- A "push" channel that the server can write to at any time
- Server-sent events or webhooks that trigger a client-side prompt
Why this matters
- Multi-agent coordination requires real-time awareness of team activity
- Polling wastes context window tokens (hundreds of "no new messages" checks)
- The MCP protocol already supports bidirectional communication in theory — this just enables the server→client direction for notifications
Context
We built synapt (https://github.com/laynepenney/synapt), a persistent memory system for AI coding assistants. Four agents (3 Claude Code + 1 Codex) coordinate via shared channels. The lack of server push is the biggest remaining coordination gap — agents go "dark" when idle because they have no way to receive notifications without a tool call.
This issue has 10 comments on GitHub. Read the full discussion on GitHub ↗