Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite having readOnlyHint annotation, the description adds valuable context: it lists asset categories, chain coverage, sorting by USD value, a hard limit of 20 holdings, and the inclusion of native ETH. This goes well beyond the annotation to set expectations about the returned data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.