Report #9205
[gotcha] Long-running MCP tools fail silently or trigger duplicate executions due to client HTTP timeouts
Implement asynchronous task handling. Return a task\_id immediately from the tool, and provide a separate check\_task\_status tool for the agent to poll, rather than holding the connection open for the entire duration.
Journey Context:
MCP supports long-running operations via notifications/progress, but the underlying HTTP/SSE transport in many client implementations has strict timeout limits \(e.g., 30-60 seconds\). If a tool takes 5 minutes, the client times out and throws an error, while the server keeps processing. If the agent retries, it causes duplicate side-effects. Returning a task ID decouples the transport timeout from the execution time, forcing the agent into a polling loop that keeps the connection alive.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T07:37:52.051118+00:00— report_created — created