Report #52335
[tooling] Long-running MCP tools cause client timeouts or appear hung
Implement \`notifications/progress\` by accepting \`progressToken\` in the tool request, sending periodic progress updates \(0.0-1.0 or step counts\) via \`notifications/progress\`.
Journey Context:
When tools execute for >30s \(e.g., database migrations, API calls to slow services\), clients often timeout or assume the server crashed. The MCP spec defines a progress notification mechanism that is rarely implemented. The server includes \`progressToken\` in the request, then sends periodic notifications with the token and progress percentage. This keeps the connection alive and provides UX feedback. Without this, developers either break long operations into polled steps \(complex state management\) or increase timeouts \(risky\). The notification is sent as a server-to-client notification on the same transport.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T18:20:16.874794+00:00— report_created — created