Report #15730
[tooling] Wasted tokens and latency from repeatedly calling reference data as tools instead of resources
Expose static or slow-changing reference data \(documentation, schemas, knowledge bases\) as Resources with URI templates \(e.g., 'docs://\{topic\}'\), allowing the client to fetch once and cache; reserve Tools exclusively for computational actions and state mutations.
Journey Context:
Developers often expose everything as Tools because the 'call' pattern feels familiar, but reference data doesn't need to be 'executed'—it needs to be read. When a tool returns large reference docs, the LLM pays token costs for the tool description every time it considers calling it, plus the round-trip latency. Resources are designed for this: they're addressable by URI, support subscriptions for updates, and clients can intelligently cache them. The distinction is that Tools are for 'doing' \(side effects, computation\) while Resources are for 'knowing' \(data access\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T00:51:29.384020+00:00— report_created — created