Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly, idempotent, non-destructive, and the description adds valuable behavioral context beyond that: rate limits ('Free: 30/hr, Pro: 500/hr'), privacy ('No data stored'), and the return shape ('Returns {total, by_severity, findings}'). It also notes supported languages, which are capabilities not covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.