Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even with readOnly, idempotent, and non-destructive annotations, the description adds substantial behavioral detail: UTF-8 byte handling, 5-bit grouping, the A-Z/2-7 alphabet, padding rules, lowercase tolerance, missing-padding tolerance, and error reporting for invalid characters. This goes well beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.