Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false – the description aligns, stating computation (no mutation). It adds context that the tool handles both single vectors and matrices, and returns per-vector plus matrix-level stats. No contradiction. With annotations already covering safety, the description adds meaningful behavioral context about the data structure handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.