github
Atlas/Guides/Concepts/Transports: stdio, SSE, and HTTP
Concepts·Intermediate·9 min read

Transports: stdio, SSE, and HTTP

Trade-offs between local stdio servers and remote HTTP/SSE servers, and when to choose each.

MCP defines the message shape, not the transport. Whatever pipe carries the JSON-RPC frames is a transport. The two that matter today are stdio (local subprocess) and HTTP/SSE (remote).

stdio

The client spawns the server as a child process, frames messages over stdin/stdout, and treats stderr as logs. Latency is microseconds, there's no network surface, and lifecycle is automatic.

HTTP / SSE

The server runs as a long-lived HTTP endpoint. The client opens an SSE stream for incoming events and POSTs requests back. This is what you want for shared servers, multi-user setups, or anything that needs to persist state between client sessions.

When to pick which

  • Pick stdio for: anything personal (filesystem, local DB, notes), reference servers, prototypes.
  • Pick HTTP/SSE for: shared team services, anything that aggregates remote APIs, anything you want to monitor centrally.