Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations: it discloses the 422 not_erc20 error for non-token addresses and that such a call is not charged, notes bytes32 symbol decoding, warns that symbol/decimals are contract-supplied and spoofable, gives a latency figure (~1 s), states the USD 0.001 price and the 10 free reads/IP/UTC-day quota, and flags returned on-chain strings as untrusted data. The 'Read-only' line merely restates readOnlyHint=true and is consistent with it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.