Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only establish the read-only/idempotent profile, and the description adds substantial non-obvious behavior: balances lag transactions so balance.as_of must be checked, earliest_available_date marks the start of synced history and empty results are a coverage artifact rather than zero activity, and sensitive identifiers are omitted. These are exactly the caveats that would otherwise cause an agent to report misleading totals.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.