Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only supply the safety profile (readOnlyHint=false, destructiveHint=false), and the description adds materially beyond it: the return buckets (removed/not_member/not_found), the AUTO_SYNCED_LIST refusal code, the fact the operation is reversible via undo_contact_change, the $0.05 cost and API-key requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.