Turning Point Academy · MCP Engineering

MCP Transports — Cheat Sheet

Curso MCP Engineering · M1


This guide explains, from scratch and taking nothing for granted, what a transport is and how to choose between the two that matter today: stdio and Streamable HTTP. Choosing the right transport is the first practical decision you'll make when building a server.

In one sentence

A transport is the channel through which messages travel between the client and the server in MCP. The protocol defines what they say; the transport, where through. The same conversation can travel through different channels — like a letter you send by post or by email: the content is the same, the medium changes.

The key question

Does the server run on YOUR machine or on the NETWORK?

With that single question you solve 95% of cases. Everything else is details.

stdio: the server lives on your machine

stdio stands for standard input / standard output: two "pipes" of text that every terminal program already has. With this transport, the MCP server runs as a local subprocess —a program that the host starts on your own computer— and messages go back and forth through stdin (input) and stdout (output).

If you're getting started, stdio is where you'll build your first server.

Streamable HTTP: the server lives on the network

When the server isn't on your machine but somewhere else —a remote server that many people connect to over the internet— you use Streamable HTTP (introduced in the version of the specification 2025-03-26).

It's the path for remote or hosted servers.

Decision table

TransportWhen to use itProsCons
stdioLocal or desktop tool; the server runs as a subprocess on your machineThe simplest; no network or ports; lowest latency; ideal for getting startedLocal only; not for remote access
Streamable HTTP (spec 2025-03-26)Remote or hosted server that others connect to over the networkA single HTTP endpoint; optional SSE for streaming; sessions, resumability, MCP-Protocol-Version headerMore pieces to configure; requires security precautions (Origin, binding)
HTTP+SSE (spec 2024-11-05)❌ Don't use in new projectsDeprecated: replaced by Streamable HTTP

⚠️ HTTP+SSE is deprecated

Before Streamable HTTP there was another network transport called HTTP+SSE (from version 2024-11-05). It worked, but it was more rigid: it used two separate channels and didn't handle reconnections or sessions well. Streamable HTTP replaces it and does everything in a single endpoint, more robust. That's why HTTP+SSE became deprecated (obsolete): it still appears in old tutorials, but for anything new don't use it. If you see "HTTP+SSE" in a guide, it's a sign that it's out of date — choose Streamable HTTP.

Don't confuse them: "SSE" (Server-Sent Events) is a streaming technique that Streamable HTTP still uses. What's deprecated is the complete HTTP+SSE transport from 2024, not the SSE technique itself.

Security note on network transports

Network transports require precautions that stdio doesn't need, because they open a door to the world. Two basics to keep on your radar:

Don't worry about the details now: they're covered in depth in a lesson dedicated to security later on. It's enough to know that the network calls for precautions that local doesn't.

Glossary

To remember


Turning Point Academy · MCP Engineering Course · Module 1 · Transports