Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safety profile (readOnlyHint=false, destructiveHint=true, idempotentHint=true, openWorldHint=true), so the bar is lower. The description adds real context — that changes persist to Contacts ("saves Contacts changes") and that the contact itself is preserved — though it does not touch error handling (e.g., contact not in group) or auth. The mutation/persistence framing sits fine alongside the destructiveHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.