Report #17791
[gotcha] Why is my local MCP SSE server accessible to every process on my machine?
Use stdio transport instead of SSE for local-only MCP servers. If SSE is required, bind strictly to 127.0.0.1 with a random high port, require an authentication token in the session header, and validate the Origin header. Never expose MCP SSE endpoints on 0.0.0.0.
Journey Context:
The MCP SSE transport starts an HTTP server to stream events. Developers often bind to localhost assuming this is secure. But 'localhost' on most OSes means any local process can connect—and on some configurations, localhost resolves to 0.0.0.0 or the firewall allows cross-process access. Any malicious process, browser tab, or script on the same machine can connect to the SSE endpoint, enumerate tools, and invoke them. If the MCP server has filesystem or database access, this is a full local privilege escalation. The stdio transport avoids this entirely because it uses stdin/stdout pipes between parent and child process with no network surface.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T06:22:34.260174+00:00— report_created — created