Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint, destructiveHint=false, openWorldHint=false), so the description correctly spends its budget elsewhere: it discloses comparison semantics (key order ignored, array order preserved, decimal comparison without float rounding) and hard limits (20,000 chars, depth 64, 4,000 values, 500 differences). These are traits neither the annotations nor the schema expose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.