Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of explaining behavior. 'Scan' implies a read-only operation, but it does not disclose whether the scan runs locally, sends code to an external service (especially given the api_key parameter), or produces a report. It also does not state whether it modifies files, requires network access, or has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.