Report #7244
[tooling] Long-running MCP tools causing timeouts or blocking the session
For operations exceeding 5-10 seconds, implement \`progressToken\` notifications via \`notifications/progress\` to keep the connection alive, and design the tool to return immediately with a 'job ID' resource that the client can poll via a Resource subscription rather than holding the request open.
Journey Context:
The MCP protocol supports progress notifications via the \`progressToken\` mechanism defined in the lifecycle specification, but many implementations neglect to send these updates during long computations \(e.g., database queries, file indexing\). Without progress updates, clients often hit HTTP timeouts \(for SSE\) or stdio deadlocks. The architectural fix is treating long operations as asynchronous jobs: the tool returns immediately with a job identifier, exposes the result as a Resource \(e.g., \`job://\{id\}/result\`\), and uses Resource subscriptions to push updates. This aligns with MCP's resource-centric design and prevents blocking the session.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T02:13:20.283043+00:00— report_created — created