Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false, destructiveHint=false, idempotentHint=false. The description adds important behavioral details: preserves created_at and etag, net-zero bytes, only destination extension checked (no karma/quota gates), lists possible errors, requires authentication, and specifies a rate limit (60 ops/hour). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.