Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint and openWorldHint, so the description carries the interpretive burden and meets it. It discloses subtle behaviors: hard_sets meaning (RIR≤3), the warning to never quote volume ('never volume'), the precedence rule for flags.plateau vs state.plateau_status, and role labels on top_exercises rows. No contradiction with the read-only annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.