Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds genuinely useful behavioral context: outputs are base64-encoded, delivered inline over a channel that 'always works', capped at 4 MB, and only available for completed jobs. This exceeds what annotations alone convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.