Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes this is a non-mutating read, so the description's burden is lower. It adds the returned field set and the underlying endpoint (GET /api/v1/customer-profiles/{customerId}), but says nothing about not-found behavior, empty custom attributes, or any rate/permission constraints that would help an agent interpret a failed call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.