Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/openWorld/non-destructive, yet the description adds substantial context beyond them: data provenance (eth_feeHistory, mempool.space, prioritization-fee percentiles), the L2-before-L1-data-fee caveat, billing ('Price: free'), and error semantics (isError with a message, not charged). This is exactly the extra behavioral detail the annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.