Report #93215
[tooling] MCP HTTP SSE transport fails with connection refused or hangs under concurrent load
Implement HTTP/1.1 keep-alive with connection reuse; respect browser limit of 6 concurrent SSE connections per domain; use HTTP/2 multiplexing if possible or shard endpoints across subdomains
Journey Context:
When implementing MCP over HTTP with Server-Sent Events \(SSE\), naive clients create a new TCP connection for every request or every tool invocation. Browsers and HTTP/1.1 clients strictly limit concurrent connections per domain to 6 \(per RFC 2616\). When an agent uses 10 concurrent tools, 4 connections hang indefinitely waiting for a slot, causing timeouts or 'connection refused' errors. The MCP specification mentions HTTP transport but doesn't detail connection management. The fix is aggressive connection reuse via keep-alive, using HTTP/2 for multiplexing \(single connection, multiple streams\), or sharding across subdomains \(a.example.com, b.example.com\) to bypass the 6-connection limit.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T15:02:58.351064+00:00— report_created — created