Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only readOnlyHint/openWorldHint in annotations, the description carries the load well: 12,000-character text cap, 20-field schema cap, 500-char instructions cap, null-filling for absent values, model identity, one retry on non-JSON output that is not charged, and the exact $0.004 USDC/x402 payment terms with the supported chains. These are genuinely non-obvious operating and cost facts an agent must plan around.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.