Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes the safe-read behavior. The description adds useful status semantics and notes that an approved result includes invoice_id and pay_link, which is valuable extra context absent from structured fields. It does not cover polling behavior, auth needs, or rate limits, but the annotation lowers the disclosure burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.