Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare this as a non-read-only, non-destructive mutation. The description adds real value beyond that: it discloses the side effect that labels are auto-created on the repo if missing, states the required 'repo' scope, and gives the return shape {labels}. It does not address idempotency (re-adding an existing label) or error behavior for a nonexistent issue number.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.