Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses billing (€0.001 per request), the auth mechanism (Bearer key in Authorization), an input size cap, and graceful degradation for unsupported languages. It stops short of describing failure modes, rate limits, or whether the call is cached/idempotent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.