Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the write nature is known. The description adds the write scope requirement, which is useful context beyond annotations. However, it does not disclose whether the update is partial (only provided fields) or full replacement, nor what happens if the contact does not exist. With annotations lowering the bar, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.