Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It genuinely adds behavioral context: 'read-only' (no state mutation), 'normalized result' (output shape), and 'without managing an RPC provider' (operational trait). But it is silent on failure modes—reverted calls, malformed calldata, network errors—and on the exact form of the normalized result, which matters for a contract-call tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.