Streamable HTTP is the Model Context Protocol's standard transport for remote servers: the client sends JSON-RPC messages as HTTP POST requests to a single endpoint, and the server replies with JSON or a stream of server-sent events.
How streamable HTTP works
The MCP specification added streamable HTTP in its March 2025 revision, replacing the earlier HTTP-plus-SSE transport that used two endpoints.
The basics:
- The server exposes one endpoint, such as
/mcp. - The client POSTs each JSON-RPC message to it.
- The server replies with either a single JSON response or a text/event-stream that can carry progress messages and then the result.
- The client can open a GET stream to receive server-initiated messages.
- A session ID header can tie requests together, and servers can run statelessly.
- Remote servers authenticate clients, commonly with bearer tokens or OAuth.
Streamable HTTP versus stdio
| Streamable HTTP | stdio | |
|---|---|---|
| Where server runs | Remote, over a network | Local child process |
| Clients per server | Many | One |
| Auth | HTTP auth, OAuth | Inherits local environment |
| Typical use | Hosted services, web clients | Desktop and IDE tools |
An example
A team runs one hosted MCP server. Several people connect to its /mcp URL from ChatGPT, Claude, and VS Code, each with their own credentials.
Why it matters for AI-agent publishing
Hosted and web-based clients cannot launch a local process, so they need an HTTP transport. One remote server also means one place to manage keys and logs.
SocialHandoff serves MCP over streamable HTTP at /mcp and over stdio. Generate client config with the MCP config generator.