Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so 'read-only' is redundant, but the description adds genuinely new behavior: 'not metered', the bytes_available=false case for a portable Standard Statement admitted without its original, and the fact that chart/declaration rows hold the exact sealed register. That is meaningful disclosure of edge-case row semantics 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.