Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile needs no repetition. The description adds genuine context beyond that: the meaning of each returned field and how create_api_key enforces them when minting a key (default when ttlDays is omitted, enforced limits). This tells the agent what the values signify and how they behave downstream. It omits error behavior, but the read-only, zero-param nature makes that a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.