Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (readOnly, openWorld, non-destructive). The description adds non-obvious behavioral contract: the response contains a list plus a hidden uprn and display_address, uprn must never be surfaced to the user, the agent must do the matching itself, and the values feed into the next tool. That is meaningful context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.