Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations by disclosing quota cost (one AI generation), the caching exception (no charge if a precomputed description exists), the refund on failure, and specific error conditions (400 on exhausted quota or invalid URL, error on too little readable text). These are exactly the operational facts an agent cannot get from readOnlyHint/openWorldHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.