Report #97817
[tooling] MCP transport choice: stdio vs HTTP/SSE for local vs remote servers
Use stdio for local client-spawned tools \(Claude Desktop, IDE extensions\) because the host gets process lifecycle, stderr logs, and isolation for free. Use HTTP\+SSE for remote/shared services, team-wide deployments, or when clients cannot spawn subprocesses. Match transport to deployment model, not fashion.
Journey Context:
stdio looks primitive but it solves process ownership: the host spawns, kills, and restarts the server automatically, and stderr surfaces in client logs. HTTP requires solving auth, CORS, keep-alive, deployment, and restart logic yourself. The common mistake is building an HTTP server first and then discovering the target client only supports stdio. Conversely, forcing stdio on a shared service forces every consumer to install the binary and run it locally. The right call is local=stdio, remote=HTTP/SSE.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-26T04:45:05.743579+00:00— report_created — created