Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations carrying almost no behavioral detail, the description properly carries the burden: it explains the single-use default, the max_uses override, the fact that the user forwards a prepared message, and the recipient's two join paths (link or code). It does not cover error cases or rate limits, but it covers what an agent needs to invoke safely.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.