Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares the safe-read profile, so the bar is lower. The description adds genuine value beyond annotations by listing the payload contents (dates, goal, fund, purpose, parent campaign, status, page URLs, statistics) — important since there is no output schema — and by mapping to the underlying API route.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.