Report #12189
[tooling] Agent wastes tokens repeatedly calling tools to fetch static reference data that never changes within the session
Expose static reference data \(OpenAPI specs, documentation, knowledge bases, database schemas\) as MCP Resources with subscription support \(subscribe: true\), not Tools; prompt the agent to 'read the resource once at session start' and rely on resource update notifications for changes rather than polling
Journey Context:
Developers often default to making everything a Tool because they assume 'the agent needs to execute something to get data,' but this conflates data exposure with action execution. Tools execute code and should be reserved for actions with side effects \(create, update, delete\) or computed results. Resources are designed for data exposure without execution overhead and support subscriptions for push updates. For large static datasets like API specifications, using a Resource prevents the agent from burning tokens on repeated tool calls and allows the client to cache the content. The architectural distinction is: if it returns data without side effects and might be large or static, use Resources; if it performs an action or computation, use Tools.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T15:17:37.900804+00:00— report_created — created