Report #79223
[tooling] MCP over HTTP doesn't receive real-time updates or server-initiated messages
When using HTTP transport, the server must expose an \`/sse\` endpoint \(Server-Sent Events\) that streams JSON-RPC messages to the client. The client POSTs to \`/message\` and receives via \`/sse\`. Do not use polling; the SSE connection is the single source of truth for server-to-client messages.
Journey Context:
Developers familiar with REST APIs implement MCP over HTTP as simple request-response RPC \(POST -> JSON response\). However, MCP requires server-initiated messages \(notifications, resource updates, sampling requests\). Without Server-Sent Events, the server cannot push these to the client. The \`/sse\` endpoint establishes a long-lived connection where the server streams events. This is distinct from WebSockets \(which MCP doesn't use\) and requires careful handling of connection lifecycle \(reconnects, \`Last-Event-ID\`\). Implementing HTTP without SSE results in a broken half-duplex system where the agent cannot receive updates or handle server-side sampling requests.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T15:34:14.180256+00:00— report_created — created