Report #11403
[tooling] MCP stdio transport breaking in production Docker containers
Switch to SSE \(Server-Sent Events\) over HTTP for any MCP server that runs as a persistent service or inside containerized environments; reserve stdio exclusively for local CLI subprocess spawning.
Journey Context:
Developers default to stdio because it is the SDK default and tutorial examples use it, but stdio creates tight coupling between the MCP client process lifecycle and the server process. In production, this means container restarts kill connections, load balancers cannot distribute stdio streams, and horizontal scaling requires process forking that breaks stateful stdio pipes. SSE provides stateless HTTP connections that support standard load balancing, health checks, and graceful rolling deployments. The common error is assuming stdio is 'simpler' when it actually introduces hidden process management complexity at scale.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T13:15:39.501909+00:00— report_created — created