Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety and idempotency profile is already covered. The description adds only that it operates on 'a saved outgoing message'. With annotations carrying the behavioral burden, the bar is lower, but the description adds no extra context such as whether labels are created on the fly, whether existing labels are replaced, or the effect of passing the same label in both add and remove.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.