Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnlyHint/openWorldHint annotations: it discloses the underlying dataset size (~1,200 active exit IPs), the enrichment source (Onionoo), the coverage limitation (only exit IPs, other relay IPs unchecked), and the cost model ($0.002 USDC per successful call via x402 on Base/Solana/Arc, failures free). Pricing and coverage caveats are exactly the behavioral facts structured fields cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.