Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds crucial context: it creates a live payment session, returns a URL, but charges nobody by itself, and warns against completing the payment. This goes beyond the annotations by clarifying the tool's side effects (session creation without charging) and the expected agent behavior (hand off the URL).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.