MCP transports: stdio, Streamable HTTP and SSE
Every MCP connection carries the same messages — JSON-RPC 2.0 requests, responses and notifications — but they can travel in different ways. The specification calls these transports, and a server's registry entry says which ones it supports.
- Servers over Streamable HTTP
- 16,864
- Servers over stdio (local process)
- 13,123
- Servers over SSE (HTTP + Server-Sent Events)
- 515
stdio: a program on your computer
With stdio, the client starts the server as a child process on the same computer. The client writes messages to the server's standard input and reads replies from its standard output, one JSON-RPC message per line; the server may write logs to standard error. When the client closes the connection, the process ends.
Nothing listens on a network port, so there is no URL to protect — but the program runs with the user's own permissions and can read whatever the user can. stdio servers are installed from packages: npm, PyPI, container images, MCP Bundles and others.
Streamable HTTP: one endpoint on the web
Introduced in the specification revision of 2025-03-26, Streamable HTTP uses a single HTTPS endpoint, such as https://example.com/mcp. The client sends each message with an HTTP POST. The server answers either with one JSON response or by opening a stream of Server-Sent Events, over which it can send several messages — progress notifications, for example — before the final result. The client may also open a GET stream to receive messages the server starts on its own.
A server can assign a session, named in an Mcp-Session-Id header that the client sends back on later requests. Because it is ordinary HTTPS, it works with standard sign-in — the MCP authorization specification builds on OAuth — and with ordinary web infrastructure.
SSE: the earlier HTTP transport
The first published revision (2024-11-05) defined an HTTP transport built on Server-Sent Events: the client opens a long-lived GET connection for the event stream, the server's first event names a second URL, and the client posts its own messages there. Revision 2025-03-26 replaced it with Streamable HTTP; clients and servers may keep supporting it for backwards compatibility, which is why some servers list both.
Which one a server uses
A hosted service that many people reach from many assistants normally offers Streamable HTTP, the transport the protocol now recommends for remote servers. A tool that must touch local files or applications uses stdio. A server can offer both: its registry entry then lists a remote endpoint and a package, and its page here shows each.
MCP servers by transport · Remote or local? · Browse the directory →
More: What is an MCP server? · What is llms.txt? · How AI assistants find and book travel · How listings are verified · Remote or local: which kind of MCP server to use · How to add an MCP server to an AI assistant · What is the official MCP Registry? · What goes in an llms.txt file · OpenAPI for AI agents · How AI assistants find travel availability · Before you connect an MCP server: a checklist