Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the generic non-read-only, non-destructive, non-idempotent profile. The description adds genuinely useful behavior beyond that: the source file is left unchanged, the call is asynchronous, and the output arrives via get_tool_execution rather than in the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.