Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true is consistent with a 'query' verb, so no contradiction. The description adds only the category-scoping hint beyond the annotation; it does not disclose the available categories, the shape of the returned capability data, or whether the result is a full dump versus a filtered slice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.