Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (openWorldHint=false, destructiveHint=false), the description discloses more: 'it files NOTHING with any state and charges NOTHING, so it is always safe to call, including during testing'. It also warns against refusing in test contexts, which is behavioral guidance not present in annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.