Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
'Read only' duplicates readOnlyHint, but the description goes beyond annotations by disclosing the authentication requirement and the concrete behavior on failure ('the connection asks the customer to sign in on printdash.io'), which is exactly what an agent needs to handle an unauthenticated call. It also enumerates the returned content, though the output schema already covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.