Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation is supplemented by useful behavioral context: the tool is a read-oriented historical data tool, and it explicitly avoids forward ex-dates. The description also clarifies what data is included (each raise/cut, buybacks authorized versus spent, splits, name changes), which sets user expectations beyond the annotation. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.