note · growing

Transports: stdio and HTTP

stdio for local, Streamable HTTP for remote. The legacy HTTP+SSE transport is deprecated.

Two transports in practice, and the choice is really "same machine or not".

TransportUsed forShape
stdiolocal serverschild process, stdin/stdout
Streamable HTTPremote serversplain HTTP, stateless
HTTP+SSE (legacy)nothing newdeprecated, on a 12-month offramp
the same server, two ways to reach it
Host
spawn process
stdio
Server
Host
HTTPS request
Streamable HTTP
Server

Why the shift away from SSE

The original remote transport held a long-lived server-sent-events stream open so the server could push requests back. That made every connection sticky — you could not put a plain load balancer in front of it, and a dropped stream lost the session.

stdio is not a lesser transport — for anything that touches the local filesystem or local credentials it is the correct one, and the simplest.

#stdio #http #transport

See this note on the whiteboard →