Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds real value beyond that: it names the data feeds (MTR next-train, Transport Department special traffic news), signals freshness ("right now"), and explains that empty lists mean nothing is reported — a non-obvious result semantic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.