Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare non-read-only, open-world, non-destructive, so the description's job is to add what those hints cannot: it discloses the authorization scope constraint, the approval rule for sensitive content, idempotency behavior via message_id reuse, and critically that "delivery is storage, not proof of reading or execution." That last line prevents a very common false assumption. It lacks failure/error behavior and size limits, keeping it at 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.