Report #9860
[gotcha] MCP SSE transport misses messages during network reconnection
Implement application-level message acknowledgment and retry logic on top of the SSE transport. Include sequence numbers or message IDs and detect gaps on reconnection. Do not rely on SSE Last-Event-ID alone for reliable delivery—it depends on server-side message buffering that is not mandated.
Journey Context:
The MCP SSE transport uses Server-Sent Events for server-to-client messages and HTTP POST for client-to-server. SSE has built-in reconnection with Last-Event-ID, but the MCP spec does not mandate message replay on the server side. If the connection drops and reconnects, messages sent during the disconnection window can be permanently lost. The Last-Event-ID mechanism only works if the server implements message buffering, which is optional. For tools that must be reliable \(mutation operations, financial transactions\), this can lead to the client thinking a request was sent when the server never received it, or the server sending a response the client never sees. The newer Streamable HTTP transport addresses some of these issues, but legacy SSE deployments remain common.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T09:16:34.111316+00:00— report_created — created