Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/openWorldHint annotations, the description discloses a lot: a typed PROVIDER_DOWN refusal with nothing charged, an automatic refund on refusal, a structured payment_required challenge instead of fabricated data, and the payment rail mechanics. This is well above the annotation baseline. The one tension is that readOnlyHint=true sits alongside a tool that debits USDC, which the description never reconciles, though the payment is an access rail rather than a data mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.