Report #99224
[tooling] MCP server transport: when to choose stdio vs HTTP for local vs production
Use stdio for local, single-user tools where the client spawns the server as a subprocess \(Claude Desktop, local CLI\). Use Streamable HTTP for remote, multi-agent, or multi-tenant deployments that need load balancers and standard auth. Do not build new servers against the old HTTP\+SSE transport from the 2024-11-05 spec; it is deprecated as of 2025-03-26 and replaced by Streamable HTTP.
Journey Context:
Tutorials usually start with stdio, so teams cargo-cult it into shared deployments. But stdio is one subprocess per client and cannot run on a different machine. The original HTTP\+SSE transport used separate POST and GET endpoints, which complicates connection pooling and is now officially deprecated. Streamable HTTP collapses this into a single endpoint, supports optional SSE streaming, session IDs, resumable streams, and standard HTTP infrastructure. The spec keeps stdio first-class only for local scenarios; picking the wrong transport creates deployment and scaling debt that is expensive to undo.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-29T04:46:57.378356+00:00— report_created — created