Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description need not restate these. It adds useful behavioral detail: the order of operations, that '%' is interpreted as divide-by-100, and that trig functions respect angleMode. This goes beyond the structured fields and gives the agent a clear picture of execution semantics without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.