Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the readOnly/openWorld annotations: it explains that successful rows are individually signed, that per-symbol errors occur for unavailable rows, that the specific error code TOO_MANY_SYMBOLS is returned, that the v2 block signs quality fields while batch metadata is unsigned, and that there are no automatic retries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.