Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, openWorld), yet the description adds real behavior: dead/aged-out/off-board ids surface in `unavailable` with a named reason and don't fail the batch, includeDescription=false avoids the vendor fetch, and auth is required ('needs a key or a sign-in'). This is exactly the extra context annotations can't carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.