Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint, openWorldHint), so the bar is lower, and the description still adds genuinely useful behavioral context: it discloses cost ($0.002 USDC per successful call, paid via x402 on named chains) and that failed calls are not charged. That billing/charge-failure semantics is not derivable from annotations or schema. It stops short of describing pagination, latency, or error modes for missing packages.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.