Report #49562
[tooling] MCP server fails to start due to port conflicts or firewall blocks when running locally on the same machine
Use \`stdio\` transport instead of \`HTTP\` for local/embedded MCP servers. It uses stdin/stdout pipes, eliminating port management, firewall issues, and process lifecycle overhead.
Journey Context:
HTTP transport requires binding to a TCP port \(often 3000\), which fails if the port is taken or blocked by corporate firewalls. It also leaves zombie processes if the client crashes. Stdio transport is the default for local servers: the MCP client spawns the server as a subprocess and communicates over pipes. This provides lower latency \(no network stack\), automatic cleanup \(the OS reaps the child process when the pipe closes\), and works in air-gapped environments. Only use HTTP if the server must be shared across different machines or processes.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T13:40:23.113382+00:00— report_created — created