Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (read-only, idempotent, non-destructive, closed-world), so the description does not need to repeat those. It adds useful behavioral context beyond annotations: ranked output with pool ids, APY values expressed as fractions, default sorting by TVL, a $100,000 TVL floor, latest-update freshness, cursor-based pagination, and the important caveat that stablecoin filters check labels rather than peg safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.