Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations only covering the read/write/idempotency profile, the description adds substantial behavioral context the annotations cannot: balance is reserved up front, the job runs in the background, a customer API key is required, live keys actually spend balance, and a repeated call can charge again unless a stable request_id is reused. This is exactly the cost/billing disclosure an agent needs before invoking a billable tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.