Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/openWorldHint annotations, it discloses non-obvious behavior: itemId is matched case-insensitively by name, no stable per-item identifier exists, unmatched names return not-found, and no substitute is returned. It also states no auth is required. This is exactly the behavioral context an agent needs before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.