Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare the safe-read profile, and the description goes well beyond them: it discloses exactly what is returned (revert reason, gas estimate, ETH cost, decoded approval and whether it is UNLIMITED or setApprovalForAll) plus the full commercial behavior ($0.03/call via x402, prepaid x-credit-token header, 1 free call/day, no API key). That is unusually rich operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.