Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/openWorldHint annotations, it discloses the required free BEA API UserID, the $0.002 USDC charge per successful call, supported payment networks, and that failed calls are not charged. It also describes the returned row format: line, description, period, value, and unit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.