Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses the auth requirement (personal connector token), that the send is atomic ('single call: the hello is sent when the call succeeds'), the full set of failure reasons (not_in_pool, ambiguous, already_sent, no_seat, rate_limited) with their meanings, and the important caveat that success says nothing about acceptance. This is consistent with idempotentHint=true, since a repeat call yields already_sent rather than a duplicate send.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.