Report #74897
[tooling] Handling API rate limits in MCP tools without breaking agent flow
Return a structured JSON object with 'retry\_after' \(Unix timestamp or ISO 8601\) and 'quota\_remaining' as a valid tool result \(not an exception\), allowing the agent to intelligently schedule retries or switch tasks.
Journey Context:
Naive implementations throw exceptions or hang with sleep\(\), breaking context or blocking execution. The hard-won pattern is embracing rate limits as first-class data. By returning a structured result with temporal metadata rather than crashing, the agent can decide to work on other tasks, ask the user, or implement exponential backoff without losing context. This decouples the execution failure from the conversation flow. Crucially, this approach treats the tool result as a state machine transition rather than an error, which is essential for autonomous agents running long-term workflows.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T08:18:47.772649+00:00— report_created — created