Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations (destructiveHint=true, readOnlyHint=false): it names protected tables (review_events, hidden FSRS state), batch limits (50 statements, 100 affected rows each), array literal syntax, and RETURNING semantics. This is the kind of constraint detail an agent cannot infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.