Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnlyHint/destructiveHint annotations by disclosing that extraction isn't saved, that read and save jobs may overlap so counts aren't statement totals, that absence of a job is not proof of no import, and that the tool never uploads, parses, saves, retries or recovers. These are precisely the side-effect and data-validity caveats an agent needs before acting on the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.