Report #100256
[gotcha] Long-running MCP tools time out even though the server is still working and producing a valid result
Emit notifications/progress with a progressToken while the work runs; ensure the client resets its timeout on progress but still enforces a hard maximum; for work that can outlive any timeout, return a task ID and let the agent poll a separate status tool.
Journey Context:
The MCP lifecycle spec says implementations SHOULD set request timeouts and MAY reset them on progress notifications. Many clients don't reset on progress, so a 60-second report-generation or build tool dies with -32001 even though the server completes successfully a moment later. The wrong answer is to crank the client timeout to infinity, which lets a hung server leak resources forever. The right pattern is to stream progress \(which proves liveness\) and cap total runtime, or model truly long work as an asynchronous task with a status endpoint.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-01T04:55:10.420062+00:00— report_created — created