Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent, openWorld, non-destructive), the description discloses key behavioural traits: it never guesses line type, returns null with a reason, does not check number assignment or reachability, and operates offline. It also tells the agent about pricing and auth requirements, which affect whether the tool can be invoked. This is rich, non-redundant context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.