Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the async lifecycle, the exact success payload ({ id, status:"generating", estimateUsd? }), the 402 cost-ceiling failure mode, and the webhook event name. Annotations (readOnly=false, idempotent=false, destructive=false, openWorld=false) are consistent with, and supplemented by, this operational detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.