An MCP transport is the wire layer carrying JSON-RPC messages. Stdio (local subprocess) and streamable HTTP (remote service) are the two active transports in 2026; HTTP plus SSE was deprecated.
Think of MCP messages as letters in a specific envelope format. The transport is the delivery service that carries them. The letters do not care which service delivers them; they only care that they arrive intact. MCP has two delivery services in use today. Stdio is for when the destination is on the same machine (a local program on your laptop). Streamable HTTP is for when the destination is across the internet (a remote server in the cloud). An older third service called HTTP plus SSE was retired in late 2025 because it was harder to operate. New servers should not use it.
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.
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.
A transport in MCP is the layer you rarely think about until something breaks. It is the wire substrate that moves JSON-RPC 2.0 messages between the client (inside the host) and the server (the process wrapping an external system). The protocol defines message shapes and semantics; the transport defines how the bytes travel.
This deep dive covers what a transport is, why MCP is transport-agnostic, the two transports in active production use as of 2026, the transport that was deprecated late 2025, how authentication layers onto transports, and the design trade-offs that landed the ecosystem here.
What a transport is and why it is pluggable
A transport is the wire layer that carries JSON-RPC 2.0 messages between an MCP client and an MCP server. The protocol describes the messages (tools/list, tools/call, resources/read, the initialize handshake, notifications) and what each means semantically. It does not describe how the bytes get from one side to the other.
The pluggability is intentional. Different deployment shapes call for different wire layers. A local server that the host launches as a subprocess wants the cheapest inter-process channel (stdin and stdout). A remote multi-tenant SaaS server wants something that crosses the internet and integrates with existing auth systems (HTTP). Forcing both shapes onto one transport would compromise both.
The payoff is that the JSON-RPC framing, the capability negotiation, and the request handling are identical regardless of transport. From host code, calling a tool on a stdio server looks the same as calling a tool on a streamable HTTP server. The difference is contained in the connection setup phase.
Situations where this technique stops working.
2–4 min · Everything important, quickly.
Real products, models, and research that use this idea.
- Claude Desktop's filesystem server uses stdio: launched as a Node subprocess on the user's machine, messages over stdin/stdout.
- GitHub MCP server (rewritten in Go in 2025) uses streamable HTTP: multi-tenant, OAuth 2.1 authentication, deployed in GitHub's cloud.
What an interviewer would ask next. Try answering before peeking at the approach.
QWhy did the spec move from HTTP plus SSE to streamable HTTP?
HTTP plus SSE required two HTTP connections (POST for client to server, SSE for server to client) and was harder to operate across proxies, load balancers, and CDNs. Streamable HTTP collapses both directions onto a single connection with bidirectional streaming, fitting modern HTTP/2 and HTTP/3 deployments naturally.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Targeting HTTP plus SSE for new servers. That transport was deprecated late 2025 in favor of streamable HTTP. New remote servers should use streamable HTTP exclusively.
60 second bullets to scan on the way to the call.
Define an MCP transport as the wire layer for JSON-RPC messages.
Name the two transports in active use in 2026 (stdio, streamable HTTP).
Primary sources. Browse if you want the original framing.
Same topic, related formats. Practice these next.