Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and succeeds: it lists allowed extensions, states the ~22.5MB raw-byte ceiling from the 30MiB transport body limit, warns oversize calls are rejected with an opaque 413 before the tool runs, and flags the context cost of looping over binaries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.