Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotent, non-destructive, readOnly=false, and the description adds rich behavior beyond them: what is preserved (title/project/groups), the staleness contract (kb.documents.stale_revision, session kept open), and the no_changes short-circuit. This is exactly the mutation context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.