Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses domain boundaries beyond the schema — the supported range and that prime status is only defined for n >= 2 — which is genuinely additive. But it is silent on what happens for out-of-range inputs or n < 2 (e.g., is 1 prime? error?), and says nothing about performance for large composites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.