Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered by structured data and the bar is lower. The description adds computation semantics but nothing about output shape, defaults, ordering, or edge cases (empty vector, NaN handling) — the gaps in behavior are filled by the output schema rather than the prose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.