Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Strong disclosure beyond annotations: it is a paid operation (~$0.08 default engine cost, budgetUsd caps it, chargedUsd reports actual), requires the write scope, and writes an MP3 into the media library. It does not address what destructiveHint=true implies (whether an existing asset is overwritten or whether a failed/aborted generation still bills), which is the one behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.