Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description goes well beyond that, disclosing the preview-versus-apply contract (read-only unless confirm:true), exactly what it mutates (adds LMCP to apps missing it, repairs dead-command entries), and the boundary of its authority (permissions, app restarts, unsafe configs, update installs surface in needs_you with the exact step). That is unusually rich disclosure for a tool that can write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.