Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so safety is covered. The description adds value with the auth requirement and the structured failure contract (error.code, retry_recommended, retry_after_seconds), which annotations cannot express. It says nothing about pagination behavior or what an empty watchlist looks like, so beyond the error contract the added disclosure is modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.