Report #101072
[tooling] MCP transport choice: stdio or HTTP/SSE?
Default to stdio for local, same-machine servers \(client spawns a child process, no network/TLS, lowest latency, process-level isolation\). Use Streamable HTTP only when you need remote access, multiple concurrent clients, or HTTP-friendly auth. Avoid the legacy HTTP\+SSE transport; it is deprecated. For Streamable HTTP, always include the negotiated MCP-Protocol-Version header \(mandatory since 2025-06-18\).
Journey Context:
stdio means the server reads JSON-RPC from stdin and writes to stdout; anything else \(especially logs\) on stdout corrupts the stream, so log to stderr. It is single-client and tied to the process lifetime. Streamable HTTP uses POST plus optional SSE streaming and supports standard auth, but adds TLS, session, and retry concerns. Many older tutorials and templates still configure 'sse' URLs; the current spec has moved to Streamable HTTP and reclassified HTTP\+SSE as deprecated. Picking the wrong transport creates brittle local servers or over-complicates remote deployments.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-06T04:56:35.902492+00:00— report_created — created