Report #9048
[tooling] Choosing wrong MCP transport causes firewall issues or latency in containerized environments
Use stdio for local CLI extensions and sidecars \(same-machine, parent-child lifecycle\), HTTP with SSE for remote/cloud-hosted servers or when browser clients need direct access; for serverless \(Lambda/Cloud Functions\), implement stateless HTTP servers with no persistent SSE connections, using request-response pattern only.
Journey Context:
The default choice is often stdio because it's simpler to implement, but it breaks in Docker containers when the server needs to outlive the parent process, or when running in serverless functions \(AWS Lambda\) where persistent connections aren't allowed. HTTP with SSE is required when the client is a browser \(CORS constraints\) or when the server runs remotely \(different host\). The key insight is that stdio servers are necessarily stateful \(subprocess lifetime tied to client\), while HTTP can be stateless \(each request independent\), enabling horizontal scaling and serverless deployment. For local AI coding agents, stdio avoids port allocation conflicts and firewall prompts.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T07:11:37.952760+00:00— report_created — created