Zenaique

Match each MCP transport to its defining characteristic and correct deployment scenario

Match pairs·Medium·4.0 · 0·~2 min·Asked atObserve AiSiemensSourcegraph·Relevant atAnthropic
Attempt it

Drag each answer to line up with its matching prompt

stdio

Local child process, newline delimited JSON over stdin/stdout, no network exposure: for local developer tools

HTTP+SSE (deprecated)

HTTP POST for all messages with optional SSE streaming of the response: current standard for remote/cloud deployed servers

Streamable HTTP

Asymmetric transport: SSE for server→client, POST for client→server. Deprecated in March 2025 due to connection lifecycle issues

TL;DR

stdio is a local subprocess over stdin/stdout. HTTP+SSE was the deprecated two-channel remote transport. Streamable HTTP is the current single-endpoint remote standard.

Memory aid
Sign in to see the mnemonic that makes this stick.
Easy to grasp

Think of three ways to talk to a helper. stdio is like passing handwritten notes to a coworker at your desk: instant, private, no phone needed. HTTP+SSE was an old long-distance setup with two separate phone lines, one to listen and one to speak, which kept dropping calls when the listen line broke. Streamable HTTP is the modern long-distance line: one number you call for everything, and it can keep streaming back to you when there is a lot to say. All three carry the same messages. They just differ in whether the helper sits beside you or lives across the network, and how reliably the line stays up.

Concept explanation~2 min read

Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.

MCP is two things stacked together. The upper layer is the protocol: every MCP message is a JSON-RPC 2.0 request, response, or notification. The lower layer is the transport: the pipe those bytes travel through. A transport never changes the message shape. It only changes where the server lives, how the connection stays open, and what reliability and security you inherit.

The match pairs three transports against three characteristics. They are not three competing message formats. They are three deployment topologies for the same JSON-RPC traffic. Focus on a single axis, local versus remote, and then split remote into the deprecated design and the current one. The matching then becomes clear.

Transport versus protocol

Start by separating the two layers.

The protocol is JSON-RPC 2.0. A client sends a request with a method name like tools/list and an id. The server returns a response with that id. Either side can send notifications with no id. This is identical no matter how the bytes move. The transport is the delivery mechanism underneath: a local pipe, or an HTTP connection across a network. Version and capability negotiation also works the same way regardless of transport: every request carries its protocol version and client capabilities in _meta.

This matters in the match because the three left-hand items are transports. Each right-hand item describes a delivery mechanism plus a deployment scenario, never a different message schema. If you find yourself thinking one transport speaks a different language than another, you have conflated the layers. They all carry the same JSON-RPC envelopes. What differs is locality, connection lifecycle, and the reliability you get for free.

Here is a useful sanity check during the match. Read each right-hand clue and ask whether it describes a wire mechanism (pipes, sockets, streams) or a message format. Every one of them describes a mechanism. None of them mentions a different request or response shape, because there is only one shape. That observation alone tells you the three options differ on deployment, not on language.

stdio: the local subprocess transport
HTTP+SSE: the deprecated remote transport and why it failed
Streamable HTTP: the current remote standard
The one-axis mental model for the match
Sign in to unlock the full deep dive.

Situations where this technique stops working.

Sign in to see when this approach fails.

2–4 min · Everything important, quickly.

Sign in to see the quick scan of the deep dive.
TransportChannelsNetworkStatus / use
stdiostdin/stdout, newline-delimited JSONNone, local subprocessCurrent, local developer tools
HTTP+SSESSE server to client + POST client to serverRemoteDeprecated March 2025
Streamable HTTPSingle endpoint, POST + optional SSE streamRemoteCurrent standard for remote servers

Real products, models, and research that use this idea.

  • Claude Desktop and Claude Code launch local filesystem and Git servers over stdio as child processes configured in a JSON config file.
  • The MCP spec's 2025-03-26 revision deprecated HTTP+SSE and made Streamable HTTP the recommended transport for remote servers.
Sign in to see more production examples.

What an interviewer would ask next. Try answering before peeking at the approach.

QWhy did the asymmetric two-channel design of HTTP+SSE cause connection lifecycle problems?
A

Trace what happens when the long-lived SSE stream drops mid-session: reconnection and message ordering, plus how stateless load balancers handle a persistent stream versus discrete POSTs.

2 more follow-ups an interviewer would ask next. Sign in to reveal them.

Red flags & common mistakes

The phrases that signal junior thinking. Click to expand.

Most common mistake

Calling HTTP+SSE the current remote transport. It was deprecated in 2025 and replaced by Streamable HTTP, which uses one endpoint for both directions.

Sign in to see all red flags and common mistakes.

60 second bullets to scan on the way to the call.

  • Which transport runs the server as a local subprocess

  • How stdio frames its JSON messages over standard streams

Sign in to unlock the revision sheet.

Primary sources. Browse if you want the original framing.

Similar questions

Same topic, related formats. Practice these next.

4 curated
Next question
What is the Model Context Protocol (MCP) and what problem does it solve?
MCQ·Easy