Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already covers the safety profile, so the bar is lower, and the description still adds useful context by disclosing the returned fields (total budgeted, actual cost, paid, plus all budget items). With no output schema, that enumeration is the only signal about what comes back. It omits pagination/scoping behavior, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.