Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the description is free to add the operationally important part: the exact four result states (pending/approved/denied/expired) in a tool with no output schema, plus the downstream constraint that execute_swap only works until the session ends. What is missing is timing behavior — how long 'expired' takes, whether polling is expected, and whether the code is single-use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.