Model Context Protocol
Streamable HTTP transport
Streamable HTTP is the standard MCP transport for remote servers: the client sends each JSON-RPC message as an HTTP POST to one endpoint, and the server answers with a JSON object or a Server-Sent Events stream.
What it is
The Model Context Protocol defines two standard transports. stdio carries messages over a local process's standard input and output. Streamable HTTP carries them over HTTP to a single URL, the MCP endpoint, such as https://example.com/mcp. It was introduced in protocol version 2025-03-26 and replaced the earlier HTTP+SSE transport, which is now deprecated.
Why it matters
It is what makes a remote MCP server possible. Because it is ordinary HTTP, it works through load balancers, proxies and firewalls, it can use standard authentication, and a server can scale across many instances.
How it works
In every revision, the client sends each message as its own POST with an Accept header listing application/json and text/event-stream. For a request, the server answers with one JSON object or opens an SSE stream that carries progress and ends with the response.
The revisions differ in the details:
- 2025-03-26 to 2025-11-25. A server may assign a session with the
MCP-Session-Idheader. A client may open a standalone SSE stream withGETfor server-initiated messages, and streams can resume withLast-Event-ID. After initialisation the client sendsMCP-Protocol-Versionon every request. - 2026-07-28. The
GETstream and protocol-level sessions are gone. Every request carries its protocol version and capabilities in the body, mirrored into headers such asMCP-Protocol-Version,Mcp-MethodandMcp-Nameso gateways can route without parsing the body; the server must reject a header that disagrees with the body. Long-lived notifications use asubscriptions/listenrequest.
In both, servers must validate the Origin header to stop DNS rebinding, and should authenticate every connection.
Example
POST /mcp HTTP/1.1
Authorization: Bearer <token>
Accept: application/json, text/event-stream
Content-Type: application/json
MCP-Protocol-Version: 2025-11-25
{"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"check","arguments":{"action":"..."}}}
Common pitfalls
- Buffering proxies. A reverse proxy that buffers responses holds SSE events back. The 2026-07-28 text says servers should send
X-Accel-Buffering: noon SSE responses. - Sessions as identity. A session ID must never stand in for authentication.
- Mixing eras. A client that speaks only 2026-07-28 and a server that speaks only 2025-11-25 must detect each other; the specification describes the fallback.
How actionlake handles it
The actionlake endpoint, https://connect.actionlake.com/mcp, speaks Streamable HTTP on every current revision: 2026-07-28, where each request carries its own version and server/discover lists what the server speaks, and the handshake revisions 2025-11-25, 2025-06-18 and 2025-03-26 (the last with JSON-RPC batching). It is POST-only and holds no session, so any instance can answer any request; it offers no GET stream and answers GET or DELETE with 405 and Allow: POST, which is the specification's answer for a server without one. Browser-sent Origin headers are checked against an allow-list. Each request is authenticated on its own; see OAuth for MCP. The API reference documents the REST twin of the same eight tools.
Questions
Is Streamable HTTP the same as SSE?
No. Server-Sent Events is one way a Streamable HTTP server can stream a response. The old HTTP+SSE transport, with separate endpoints, is deprecated in favour of Streamable HTTP.
Does Streamable HTTP need WebSockets?
No. It uses plain HTTP POST requests, answered either with a JSON body or an SSE stream.
Which MCP revision should a new server support?
The specification's versioning page names the current revision. Many clients in use still speak earlier revisions, so check which ones your clients send before dropping support.
Related terms
- Remote MCP serverA remote MCP server runs on the internet rather than on your computer, and AI clients reach it over HTTPS using the Streamable HTTP transport, usually after an OAuth sign-in.
- MCPThe Model Context Protocol (MCP) is an open standard that lets an AI application connect to external systems and discover and call their tools, read their resources and use their prompts through one JSON-RPC message format.
- OAuth for MCPOAuth for MCP is the authorisation flow the MCP specification defines for remote servers, in which an MCP client discovers the server's authorisation server, registers itself, sends the person to sign in and consent, and then calls the server with a short-lived, audience-bound access token.
- MCP clientAn MCP client is the component inside an AI application that holds one connection to one MCP server, fetches that server's tool list and passes the model's tool calls to it.
- MCP serverAn MCP server is a program that offers tools, resources and prompts to AI applications over the Model Context Protocol, usually by wrapping one system's API, such as a ticket desk or an accounting ledger.
Sources
Connect an agent. Start free.
100,000 calls free every month. No card. Hard caps on every key.