Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=false and destructiveHint=false the annotations only say 'write, but safe'; the description adds the crucial nuance that no bytes are uploaded and no generation starts here, so the agent understands the actual side effect is only URL generation. It doesn't mention presigned-URL expiry or upload constraints (size, content-type enforcement), which would be the remaining behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.