Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower; the description still adds real context the annotations do not: terminal states (ready/failed/unavailable/expired), the retry_after_seconds backoff contract, and the important fact that research_prepare_cohorts does not return a job_id. It does not mention rate limits or how long results persist, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.