Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial context beyond the annotations: caller cost ($0.25 USDC), the service's own spend cap ($0.1 from its own wallet), payment rail (Base), async job-id behavior, the free polling follow-up, and a signed EIP-191 receipt bound to the arguments. One tension: readOnlyHint=true while the description frames the operation as 'not a reading but a purchase' that spends funds and may POST, so the annotation understates the side effects even though the text is honest about them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.