Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the description carries the burden of explaining side effects. It discloses that the QR code expires every ~20 seconds, that the tool returns a pair_id, and that import_history controls whether phone history is loaded. It doesn't explicitly state that this is a state-changing operation, but the description's language ('Begin linking') and the QR-code flow make the non-read-only nature clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.