Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations that already mark it read-only, idempotent, and non-destructive, the description adds valuable behavioral details: it uses Math.random(), explicitly warns this is not cryptographically strong, and clarifies default integer behavior. This gives the agent critical information about randomness quality for sensitive use cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.