Report #7422
[tooling] MCP stdio transport deadlocks on long-running synchronous tools
Limit concurrent tool executions to 1 using asyncio.Lock or semaphore in stdio servers to prevent JSON-RPC message queue blocking; migrate heavy tasks to HTTP/SSE transport.
Journey Context:
Stdio transport multiplexes requests over stdin/stdout. If a tool blocks the thread, subsequent JSON-RPC messages queue indefinitely. Developers often spawn threads but forget backpressure. HTTP/SSE avoids this via independent connections. The fix ensures stdio remains responsive.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T02:42:00.502556+00:00— report_created — created