Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the 'Read-only' clause is redundant. What the description adds beyond the structured data is genuinely useful: it discloses that the call is cheap, that it is a sensible first call, and that it returns null when no card exists yet — a non-obvious return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.