Report #4350
[tooling] STDIO transport spawns new process per request causing 500ms\+ latency overhead
Use HTTP SSE transport for persistent connections; if STDIO is required for sandboxing, implement a supervisor wrapper that maintains a warm Node.js/Python process and multiplexes requests over stdio using length-prefixed framing
Journey Context:
Default MCP SDK examples use STDIO transport where the client spawns \`node server.js\` per request, sends one JSON-RPC message, and terminates the process. For Node.js/Python, this incurs 300-800ms cold-start overhead per tool call, making agents feel sluggish. Most developers don't notice during local testing where processes stay warm. Production solutions: \(1\) Switch to HTTP SSE transport where the server stays running \(recommended for local network\). \(2\) If STDIO is mandatory for security sandboxing, implement a 'supervisor' pattern: a thin compiled wrapper \(Go/Rust\) that spawns the Node.js server once, keeps it warm, and multiplexes multiple JSON-RPC requests over the single STDIO pipe using length-prefixed message framing \(e.g., Content-Length headers\). This eliminates spawn overhead while maintaining STDIO's security boundary.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T19:17:03.487714+00:00— report_created — created