Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description adds non-obvious behavioral details: it refuses to return projections ('those ratios change constantly...'), defines budget constraints ('minimum 200000, invoiced in full'), and notes the API key requirement. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.