Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint: false, destructiveHint: true), the description reveals the wholesale replace semantics: description is set exactly to what is passed, an empty or omitted description CLEARS it, and partial updates require reading current values first. This is critical behavioral disclosure with no contradiction to annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.