Creativity · MCP — pattern
MCP Transports — stdio vs SSE vs Streamable HTTP
Model Context Protocol is transport-agnostic but ships with three official flavours: stdio for local child processes, legacy SSE for long-lived browser-style streams, and the current Streamable HTTP transport that replaces SSE for remote multi-tenant servers. Knowing which to pick drives your deployment, auth, and latency story.
MCP facts
- Kind
- pattern
- Ecosystem
- anthropic-mcp
- Transports
- stdio, sse, http
Capabilities
- stdio: spawned as a child process by the client; ideal for local tools
- SSE: legacy HTTP transport with separate POST + event-stream endpoints
- Streamable HTTP: single endpoint, bidirectional, the current recommendation for remote
- Choice driven by deployment model: local desktop vs hosted multi-tenant SaaS
Configuration
{
"mcpServers": {
"local-fs": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/you"]
},
"remote-notion": {
"url": "https://mcp.notion.com/mcp"
}
}
} Frequently asked questions
When should I use stdio vs HTTP?
Use stdio when the server is a local binary or npm package running on the same machine as the client — it is the fastest and easiest path. Use HTTP (Streamable HTTP) when the server is a hosted service like GitHub, Notion, or Stripe's official MCP endpoint.
Is SSE still supported?
Yes, but the 2025 spec revision made Streamable HTTP the primary remote transport. SSE remains for backwards compatibility; new remote servers should implement Streamable HTTP.
What about latency and scaling?
stdio has zero network overhead but is single-tenant per process. Streamable HTTP scales horizontally behind a load balancer and supports multi-tenant auth — it is what you want for SaaS-grade MCP servers.
Can the same server speak multiple transports?
Yes. Many official servers (Notion, Sentry, Cloudflare) run the same business logic over stdio for local dev and Streamable HTTP for the hosted endpoint. The MCP SDK makes it a one-line configuration.
Sources
- MCP spec — Transports — accessed 2026-04-20
- MCP spec — Streamable HTTP — accessed 2026-04-20