Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (not read-only, not idempotent, not destructive), the description discloses asynchronous behavior: it returns a thread_id, status, next_action, poll_after_seconds, and next_step, and instructs the agent to poll get_request_status. This adds meaningful operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.