Report #65674
[tooling] MCP stdio transport hangs indefinitely when tool output exceeds pipe buffer or runs longer than 5 minutes
Implement streaming JSON-RPC over stdout with explicit flush after each chunk, or switch to HTTP transport for any tool exceeding 100KB expected output; never rely on default OS pipe buffering
Journey Context:
Default OS pipe buffers \(typically 4KB-64KB\) deadlock when the child fills the buffer and the parent hasn't read. Many developers assume MCP handles backpressure, but the spec only defines the message format, not flow control. HTTP SSE avoids this by design, but introduces reconnection complexity. The specific 64KB limit is common on Linux/POSIX systems.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T16:43:12.445781+00:00— report_created — created