Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The '(read only)' note merely restates the readOnlyHint=true annotation, so it earns no credit beyond structured data. The description does add value by naming the returned fields (currency, number of entries, current balance), which matters because no output schema exists, but it omits any behavior on invalid/missing ids or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.