Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable behavior beyond that: it explains what an empty launchBlockers means, and documents defaults for omitted population fields such as unlimited iterations, aggressionMultiplier 1.0, and unthrottled bandwidth. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.