Describe how Streamable HTTP works as an MCP transport and when to choose it
Same topic, related formats. Practice these next.
Same topic, related formats. Practice these next.
Explain how Streamable HTTP functions as an MCP transport, what HTTP mechanism enables streaming, and describe a concrete deployment where it is the correct choice versus stdio.
Streamable HTTP is one endpoint the client POSTs JSON-RPC to; the server replies with plain JSON or upgrades to SSE for streaming, making remote and serverless MCP servers practical.
Picture a drive-through window instead of a dedicated phone line into the kitchen. You pull up to one window and place your order (POST a request). For a quick item, the cook hands it straight back. For something that takes a while, they keep passing you pieces as they finish, so you are not stuck staring at a blank window. The old design needed a permanent open phone line plus a separate window, which is awkward when many cooks share the work or the kitchen shuts down between orders. The single-window design works even if a different cook handles each visit, because your receipt number tells everyone which order is yours. That is the whole trick: one door, optional trickle-back, and a ticket that survives across cooks.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example.
Everything important, quickly.
4 min: single POST endpoint + JSON-or-SSE response choice + Mcp-Session-Id continuity and resumability + why it beats old HTTP+SSE on serverless + stdio contrast.
| Concern | Streamable HTTP | Old HTTP+SSE | stdio |
|---|---|---|---|
| Endpoints | One POST endpoint | POST endpoint plus GET SSE channel | stdin and stdout of a child process |
| Streaming | Optional SSE upgrade per request | Always via the separate SSE channel | Line-delimited over the pipe |
| Session | Mcp-Session-Id header | Tied to the held-open SSE socket | Bound to the process lifetime |
| Serverless fit | Works; no pinned connection | Poor; needs a long-lived stream | Impossible; needs local spawn |
| Load balancers | Any worker serves any request | Splits the two endpoints awkwardly | Not applicable, local only |
Real products, models, and research that use this idea.
What an interviewer would ask next. Try answering before peeking at the approach.
Red flags and common mistakes that signal junior thinking. Click to expand.
Calling Streamable HTTP just HTTP+SSE renamed. The shift is one endpoint with optional SSE upgrade, not a separate long-lived SSE channel plus a POST endpoint.
The night-before-the-interview bullets. Scan these on the way to the call.
Primary sources. Skim if you want the original framing.