Report #103590
[gotcha] Long-running MCP tool exceeds the planner's turn budget and aborts
Use MCP Tasks \(experimental, 2025-11-25 spec\): send \`tools/call\` with a \`task\` field, get a \`taskId\` immediately, then poll \`tasks/get\` with exponential backoff. Declare \`experimental.tasks\` capability at initialization, implement idempotency keys, and enforce a task TTL.
Journey Context:
Synchronous MCP calls block until completion. Anything over the host's timeout ceiling — ETL jobs, large builds, provisioning — cannot be modeled as a normal tool call. MCP Tasks split the request into 'create task' and 'fetch result', letting the agent continue planning while work runs in the background. A critical detail: notifications can be dropped, so polling is authoritative. Also, retries after a timeout must return the same taskId to avoid duplicate work. The pattern is stable even if the exact API surface evolves.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-11T04:39:32.247922+00:00— report_created — created