Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses key behavioral details: it returns only prefixes, never the raw key; it provides the exact return object schema including field semantics (revoked_at null for active, spent_today since UTC midnight); and lists possible errors (unauthorized, forbidden, rate_limited). This is rich, non-obvious context that helps the agent understand side effects and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.