Report #35572
[tooling] Choosing between stdio and SSE \(HTTP\) transport for MCP servers without clear decision criteria
Use stdio for local-only, single-user desktop integrations where the server is spawned by the client; use HTTP\(SSE\) for remote or multi-tenant scenarios requiring network isolation, horizontal scaling, or when the server must outlive the client process
Journey Context:
Developers often default to stdio because it's simpler to implement, but this creates architectural constraints: stdio servers terminate when the client disconnects, cannot be shared across multiple clients, and are limited to local machine boundaries. Conversely, HTTP with SSE \(Server-Sent Events\) enables remote hosting, load balancing, and persistent state across client reconnections, but introduces authentication complexity and network latency. The critical decision factor is process lifecycle coupling: if the server is a local utility that makes no sense without the client \(like a filesystem wrapper\), use stdio. If the server provides a service that should persist independently \(like a database or multi-user collaboration service\), use HTTP\(SSE\). This choice is often made incorrectly by copying quickstart examples without considering deployment topology.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T14:10:55.800269+00:00— report_created — created