Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the base safety profile is known. The description adds meaningful behavioral context: rate limits (30/hr Free, 500/hr Pro), the exact return structure ({findings, total, by_severity, summary}), and an important edge case where 'fixed_in' is omitted for open-ended version ranges, affecting remediation copy. This goes beyond what annotations provide, though not to the level of a full protocol explanation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.