The MCP Guide
Connect to servers

MCP transports: stdio, Streamable HTTP, and legacy SSE

A transport is how bytes move between client and server. MCP defines two: one for local processes and one for the network. Picking the right one is mostly about where the server runs.

stdio (local) #

The server runs as a child process of the host and exchanges JSON-RPC messages over standard input and output. It is the simplest option, has no network surface, and is the default for anything running on the same machine as the client. Almost every local server you install uses stdio.

Streamable HTTP (remote) #

Streamable HTTP is the current transport for remote servers. The client sends requests over HTTP POST, and the server can stream responses back, including server-initiated messages, over the same connection. It replaces the older two-endpoint HTTP+SSE design and is what you should build new remote servers on.

Legacy HTTP+SSE #

Deprecated

Earlier remote servers used a separate Server-Sent Events endpoint alongside an HTTP POST endpoint. This transport is deprecated in favor of Streamable HTTP. You may still encounter it on older servers; new work should target Streamable HTTP.

Choosing #

  • Runs on the user's machine, per user: stdio.
  • Hosted and shared across users, reached over the network: Streamable HTTP.

Resources & further reading

  • MCP specification MCPThe authoritative protocol spec: messages, capabilities, transports, and lifecycle.