Report #57301
[tooling] Agent wastes tokens calling tools for static data or triggers side effects when fetching data
Expose read-only, idempotent data access as MCP Resources with URI templates \(e.g., \`db://users/\{id\}\`\) and reserve Tools for mutations or side-effect operations. Never fetch data via a tool if it can be a Resource.
Journey Context:
The MCP spec distinguishes Resources \(application-controlled, attached to context\) from Tools \(model-controlled, invoked by LLM\). Developers often expose database queries as Tools, causing the agent to re-fetch on every turn and consume context window. Resources are cached by the client and attached to context automatically, saving tokens. The litmus test: if the operation is idempotent, read-only, and represents a 'thing' rather than an 'action', it must be a Resource with a stable URI.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T02:39:55.544743+00:00— report_created — created