Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, openWorldHint=true and destructiveHint=false, so the description doesn't need to restate the write/safety profile. It adds genuine non-obvious behavior instead: that a budget is held while the call runs and released afterward, and that the fetched asset stays reference material by default. It doesn't describe failure/refund behavior if the fetch fails, which keeps 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.