Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond readOnlyHint=true by disclosing the returned fields (product_id, name, category, product_url, total) and, critically, the non-obvious caveat that width/drop filters apply separate maximums rather than a validated pair. It also routes the agent to get_price for exact-pair confirmation, which prevents a real failure mode.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.