Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful behavior: the returned edge's `id` is the found node's id, `score` is null until update_edge is used, and the call returns null when exhausted. It does not cover permissions, error cases, or side effects on the graph beyond the new edge, but the lifecycle contract is unusually well spelled out.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.