Remote vs local MCP servers
MCP defines two standard transports. Which one a server uses decides how you install it, how it signs in, and what it can touch on your machine.
Updated Oct 22, 2026 · 8 sources
§1The two transports
| Local — stdio | Remote — Streamable HTTP | |
|---|---|---|
| How it runs | The client launches the server as a subprocess and talks over stdin/stdout | An independent server process at a URL (e.g. https://example.com/mcp), handling many clients |
| Install | A command: npx, uvx, docker, a binary | A URL |
| Auth | Credentials from the environment (env vars / API keys you pass in); the spec says stdio servers should not use its OAuth flow | OAuth sign-in per the spec's authorization rules, or a bearer token header |
| Reach | Can access your files, local apps and network | Only what the vendor's API allows for your account |
The older HTTP+SSE transport was replaced by Streamable HTTP in protocol version 2025-03-26 and is formally classified as Deprecated in the current spec (2026-07-28); Anthropic's Claude Code docs also call SSE deprecated. Some services still expose /sse endpoints.
Streamable HTTP changed in spec revision 2026-07-28: every client message is its own HTTP POST to a single MCP endpoint, and the server answers with a JSON object or an SSE stream scoped to that request. Protocol-level sessions (the Mcp-Session-Id header), the standalone GET stream and resumable streams were removed. Servers and clients on 2025-03-26 through 2025-11-25 still use the older shape, and the spec describes how each side detects and falls back.
For local Streamable HTTP servers the spec requires validating the Origin header (403 if invalid) and recommends binding to 127.0.0.1 rather than 0.0.0.0 and authenticating every connection, to block DNS-rebinding attacks.
§2Same idea, different config per client
{
"mcpServers": {
"local": { "command": "npx", "args": ["-y", "some-mcp-server"] },
"remote": { "url": "https://example.com/mcp" }
}
}{
"servers": {
"remote": { "type": "http", "url": "https://example.com/mcp" }
}
}claude mcp add --transport http remote https://example.com/mcp
claude mcp add local -- npx -y some-mcp-server[mcp_servers.remote]
url = "https://example.com/mcp"
[mcp_servers.local]
command = "npx"
args = ["-y", "some-mcp-server"]Claude Code reads a JSON entry with a url but no type as a stdio server and skips it — add "type": "http" when copying configs into .mcp.json.
§3Which should you pick?
- Pick remote when the vendor runs an official server (GitHub, Linear, Sentry, Stripe, Notion, Supabase): no install, OAuth instead of long-lived keys.
- Pick local when the tool needs your machine: a filesystem, a local browser, a local database, git.
- Cursor's docs suggest running servers that handle sensitive data locally over stdio.
Remote servers in the index include GitHub, Linear, Sentry, Stripe, Notion, Supabase and Figma. Local-only examples include Filesystem, Git, Playwright and SQLite (reference, archived).
§4FAQ
- What is the difference between stdio and Streamable HTTP in MCP?
- With stdio the client launches the server as a local subprocess and exchanges messages over stdin/stdout. With Streamable HTTP the server is an independent process at a URL that receives each message as its own HTTP POST to a single endpoint and replies with JSON or a request-scoped Server-Sent Events stream. As of spec revision 2026-07-28 there are no protocol sessions and no standalone GET stream.
- Is SSE deprecated in MCP?
- Yes. The HTTP+SSE transport from protocol version 2024-11-05 was replaced by Streamable HTTP in 2025-03-26 and is classified as Deprecated in the 2026-07-28 spec, eligible for removal in a future revision. Claude Code's docs describe SSE as deprecated. Streamable HTTP can still use SSE internally for streaming.
§5Sources
- MCP specification — Transports (2026-07-28) ↗
- MCP specification — Streamable HTTP transport (2026-07-28) ↗
- MCP specification — stdio transport (2026-07-28) ↗
- MCP specification — Authorization (2026-07-28) ↗
- Cursor docs — Model Context Protocol ↗
- Claude Code docs — Connect Claude Code to tools via MCP ↗
- OpenAI docs — Model Context Protocol (Codex) ↗
- VS Code docs — Add and manage MCP servers ↗
Sources checked Oct 22, 2026. Spot something out of date? Tell us.