Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already flag the tool as non-read-only, destructive, and idempotent. The description adds valuable behavioral detail beyond those annotations: partial-update semantics, null-clearing for categoryId, merchant, and note, tag replacement behavior, and the cross-currency amount requirement. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.