Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantial context beyond them: the call is free, it returns an UNSIGNED transaction {to, data, value, chainId} on Base, nothing executes until the caller signs and broadcasts, and Liquid is non-custodial. This resolves the apparent tension between a 'send' tool and readOnlyHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.