Report #14111
[tooling] Long-running MCP tools cause client timeouts or make users think the agent is stuck
Implement notifications/progress per MCP spec: when receiving a tool call with progressToken, emit progress notifications every 5-10 seconds with incrementing progress values and status messages; ensure your server supports the progress notification capability.
Journey Context:
Default MCP client timeouts are often 30-60s. Long-running operations \(database migrations, builds, file indexing\) exceed this. Without progress notifications, clients may retry \(causing duplicate work\) or fail silently. The MCP spec defines a progress protocol using tokens passed in the initial request, but most SDK examples omit it. The pattern: client generates unique progressToken in the request; server emits notifications/progress with that token, percentage \(0-1 or incremental\), and message. This resets connection timeouts and provides UX feedback. Many developers incorrectly use logs or stdio for progress, which doesn't prevent timeouts.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T20:43:12.522587+00:00— report_created — created