Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes far beyond the annotations: cache window (5 minutes), latency (1-2 s typical, up to 40 s), exact price (USD 0.025, no free tier), billing behavior on unavailable/empty (uncharged 422) vs partial deliveries (charged), null-author behavior, and an explicit untrusted-data warning. This is precisely the context a caller cannot get from readOnlyHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.