Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (destructiveHint=true, idempotentHint=false) by spelling out the mutation contract: partial updates touch only supplied keys, null clears an optional field, empty string clears text but not numbers or closed lists, and required fields can be changed but not cleared. That is exactly the behavioral detail an agent needs to avoid unintentionally wiping a water recipe's mineral figures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.