Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the per-row re-profiling cadence for pools under 6 hours old, checkedAt semantics, the class taxonomy (held/safe/unknown/empty), the 404-and-not-charged behavior for untracked tokens, and a concrete price of $0.02 USDC via x402. That covers payment, error, and freshness behavior an agent needs before invoking a paid call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.