Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint, so the description carries most of the burden and does well: it explains the returned fields (`expected_move` units and semantics, `hist_move_mean`/`hist_move_n` scope) and the two partition buckets for no-data symbols. It doesn't mention latency, rate limits, or coverage limits on historical depth, keeping it short of 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.