Report #82773
[tooling] MCP server transport choice causing containerization failures or lifecycle mismatches
Use stdio transport exclusively for local co-process servers spawned directly by the client on the same machine; use HTTP with SSE for remote, containerized, or independently managed servers requiring separate lifecycle control.
Journey Context:
stdio transport couples the server lifecycle to the client process—the client spawns the server as a subprocess and communicates via stdin/stdout. This is ideal for local CLI tools and IDE extensions but fails in Docker containers or distributed systems where the server must outlive the client or run on a different host. HTTP/SSE allows the server to maintain an independent lifecycle with its own port and health checks, essential for Kubernetes or remote hosts, but requires handling CORS, connection persistence, and port management. Choosing stdio for remote deployments causes spawn failures; choosing HTTP for local CLI adds unnecessary network overhead and complexity.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T21:31:31.486648+00:00— report_created — created