Skip to main content

Glossary

Streamable HTTP

How an agent talks to an MCP server that lives at a URL instead of on your laptop.

By · Last updated: September 2026

TL;DR

Streamable HTTP is the transport the Model Context Protocol uses for remote servers. The client sends each JSON-RPC message as an HTTP POST to one endpoint; the server answers with a single JSON response or, when it has several messages to send, a Server-Sent Events stream. It replaced MCP's earlier HTTP+SSE transport in 2025.

Free plan, no credit card. 1,000 credits a month.

How it works

How it works

MCP's first remote transport, HTTP+SSE, needed two endpoints and a long-lived Server-Sent Events connection for every client — awkward behind load balancers and for serverless hosting. The 2025-03-26 revision of the spec replaced it with streamable HTTP:

  1. 1
    The server has one endpoint, such as https://example.com/mcp.
  2. 2
    The client POSTs each JSON-RPC message to it, accepting both application/json and text/event-stream.
  3. 3
    The server answers with one JSON response — or, if it wants to send progress or several messages, opens an SSE stream on that response.
  4. 4
    Optionally, the server issues an Mcp-Session-Id header for stateful sessions, and the client may GET the endpoint for server-initiated messages.
Listing a server's tools
POST /mcp HTTP/1.1
Host: urlpipe.dev
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
Accept: application/json, text/event-stream

{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}

In practice

Why it matters

A server that answers every message with plain JSON and keeps no session is an ordinary HTTP API: it scales horizontally, sits behind any proxy and authenticates with a normal Authorization header. Streaming is there for the servers that need it — long-running tools reporting progress — without forcing it on the rest. Clients that only speak the older transport, or only stdio, can reach a streamable HTTP server through a small local bridge.

URLpipe

URLpipe's transport

URLpipe's MCP server at https://urlpipe.dev/mcp speaks streamable HTTP in its simplest form: every message gets a single JSON response, it opens no SSE stream and keeps no session. Authentication is a bearer token in the header, with no OAuth flow to complete. Long jobs don't need a stream: tools are async by default and return a token that get_result redeems, or pass sync: true to wait. See the MCP docs.

FAQ

Frequently asked questions

The older HTTP+SSE transport needed a separate SSE connection held open for every client. Streamable HTTP uses one endpoint and plain POSTs, and only streams when a response needs it.

See it on your own pages.

Free plan, no card. Confirm your email and your API key is live — you'll be making real requests in minutes.