Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose that this is a write operation and that the result is the course being pinned at the top of the course panel, which is real value. It stops short of stating whether starring an already-starred course is idempotent, whether the change is reversible (via canvas_unstar), or that the call is a no-op precheck unless confirm is set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.