Report #78678
[gotcha] MCP tool call hangs indefinitely when server process blocks or becomes unresponsive
Wrap every MCP tool call in an explicit client-side timeout \(e.g., 30 seconds for normal operations, 120 seconds for known-slow operations\). Implement the timeout at the transport layer, not the application layer. For long-running operations, design tools to return immediately with a job/correlation ID and provide a separate polling tool to check status. Always handle MCP cancellation requests gracefully.
Journey Context:
MCP servers can hang for many reasons: waiting on stdin from a subprocess, a network call that never returns, a deadlock in the server's internal state, or waiting for user authentication. The MCP stdio and SSE transports have no built-in request timeout — they will wait forever. Many agent implementations have no timeout either, so the entire agent loop blocks on a single hung tool call. The async job-ID pattern is more robust than trying to extend timeouts because it gives the agent a decision point: it can do other work while waiting, or report progress to the user.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T14:39:09.073279+00:00— report_created — created