Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, and the description still adds real behavior: it discloses the response components and the important edge case that items above your visibility class return an account_required pointer rather than content. It does not cover cost, latency, or whether routing has side effects on the corpus.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.