Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive safety profile. The description adds meaningful behavioral context beyond that: the manifest is generated dynamically from the running Flask route table and represents the canonical product inventory, which tells the agent the data is live and authoritative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.