Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry idempotentHint=true and destructiveHint=false, so the description's job is to add context. It does so by specifying what idempotency means here: 'safe to call when columns already exist.' It also states the exact columns created, which goes beyond the annotation flags. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.