Report #61647
[tooling] Long-running MCP Tools timeout or hang over stdio transport
Use HTTP with Server-Sent Events \(SSE\) transport and implement \`notifications/progress\` to stream progress updates, avoiding stdio buffer deadlocks and client timeouts.
Journey Context:
Stdio transport is appealing for its simplicity but suffers from head-of-line blocking and opaque buffer limits. If a Tool executes for minutes \(e.g., training a model\), the client may timeout or the stdout pipe may deadlock. The MCP spec defines \`notifications/progress\` specifically for long-running operations. By switching to HTTP\+SSE, you maintain a bidirectional channel where you can send progress notifications \(e.g., 'epoch 5/10'\) without returning the final result. This keeps the connection alive, informs the user of status, and prevents the agent from assuming the task failed and retrying wastefully.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T09:57:54.238037+00:00— report_created — created