Report #103827
[tooling] Long-running MCP tool calls appear hung and get retried, causing duplicate work
For operations expected to take more than 5-10 seconds, accept a \`progressToken\` in the request \`\_meta\`, emit \`notifications/progress\` updates, and configure client timeouts to match; never rely only on the final result for feedback.
Journey Context:
Default client timeouts are often 10-30 seconds. Without progress, both the user and the model assume failure, leading to cancellations or retries that restart expensive work. Progress notifications let the client display status and keep the connection alive. The \`\_meta\` field is the standard extensibility hook for this, but it is easy to miss because it is not part of the main request arguments.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-13T04:46:28.449330+00:00— report_created — created