Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=true, so the explicit 'Read-only' restates structured data. The real added value is the semantic disclosure of what an 'ad set' maps to per platform, which tells the agent what the returned entities look like conceptually. No pagination, rate-limit, or result-volume context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.