Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing that the attempt consumes allowance, that a timeout does not mean the request failed to run, that the request ID must not be replaced, and that the original receipt should be checked. This is exactly the failure-mode and cost context an agent cannot get from destructiveHint/idempotentHint alone; no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.