{
  "id": 1207203,
  "title": "MCP Transports: stdio vs HTTP, and What Just Changed",
  "url": "https://urgent.news/2026/08/16/mcp-transports-stdio-vs-http-and-what-just-changed",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-16T05:33:47.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/studiomeyer_io/mcp-transports-stdio-vs-http-and-what-just-changed-41fi"
  },
  "original_language": "en",
  "account": "A recent revision of the MCP Transports protocol has caused confusion, as many existing resources describe a version that has been replaced. This article aims to clarify the differences between using stdio and Streamable HTTP, as well as the implications of the latest revision.\n\nFor situations where a server needs to access local files, databases, or tools, using stdio is recommended. However, this method can be problematic if the server writes anything to stdout that is not a valid MCP message. The server should write all output to stderr, which is designated for logging purposes and will not interfere with the protocol.\n\nWhen the server needs to be reachable over a network or serve multiple clients, Streamable HTTP is the preferred option. In this method, the server exposes a single HTTP endpoint that accepts POST requests. Each JSON-RPC request or notification is sent as a separate POST request. The server responds with either a JSON object or an SSE (Server-Sent Events) stream, which carries progress notifications and the final response. The client must handle both JSON and SSE responses, and the metadata headers are mandatory.\n\nThe most significant change in the 2026-07-28 revision is the removal of protocol-level sessions, standalone GET streams, resumable streams, and resumable streams. The server should ignore any incoming Mcp-Session-Id header, and GET or DELETE requests on the MCP endpoint should return a 405 Method Not Allowed status code. Additionally, resumable streams and Last-Event-ID headers have been removed, and a new control flow mechanism called Multi Round-Trip Requests has been introduced.\n\nIn summary, when deciding between stdio and Streamable HTTP, consider the server's requirements for accessing local resources. If using stdio, ensure that the server only writes valid MCP messages to stdout. For Streamable HTTP, ensure that the client can handle both JSON and SSE responses, and pay attention to the mandatory metadata headers. Finally, be aware of the changes introduced in the latest revision, including the removal of protocol-level sessions, standalone GET streams, resumable streams, and resumable streams.",
  "summary": "Our own search data has been telling me to write this for months and I ignored it. Thirty-one different spellings of the same question, things like \"stdio vs http mcp\" and \"mcp server stdio vs http\", nearly three hundred impressions, several of them sitting on page one. Zero clicks, because we rank for it by accident out of other articles and have never had a page that actually answers it. So…",
  "key_points": [
    "stdio recommended for server accessing local files, databases, or tools",
    "Streamable HTTP preferred for network-reachable servers serving multiple clients",
    "Latest 2026-07-28 revision removes protocol-level sessions and resumable streams"
  ],
  "editors_take": "The removal of protocol-level sessions and standalone GET streams in the MCP Transports revision shifts server implementation towards stateless interactions, affecting how servers handle requests and clients process responses.",
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}