Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: relevance ranking, the highlighted snippet format, the <2-char empty-result behavior, the authentication requirement, the 120/hour rate limit, and the exact meaning of total vs has_more. These are real operational traits an agent needs and cannot get from readOnlyHint/idempotentHint alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.