Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, it discloses the 24-hour lifetime, the meaning of failure, the returned digest and byte length, and the max_downloads consumption model (downloads_left, value gone once reads are taken). It also notes no API key or account is required, which matters for agent planning. This is exactly the kind of behavior an agent cannot infer from the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.