Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, idempotentHint=false), the description discloses key behavioral traits: it always inserts a new row and never overwrites or deduplicates, consistent with the non-idempotent flag, and it reveals the important side effect that the investment's own value/cost is updated to this valuation, becoming the 'current' value returned by list_equities. It also clarifies what it does NOT touch (name, ticker), which is valuable context for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.