Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety and idempotency. The description adds that results include decoded return codes, but does not disclose caching behavior, rate limits, or what constitutes a 'listing'—though the force_refresh parameter hints at caching. The description provides moderate additional context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.