Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description's 'read-only' is consistent; it adds useful behavior beyond annotations: itineraries are editorial, day-by-day, each venue is resolved to structured fields, and an empty list is returned when a city has none. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.