Report #79692
[tooling] Agent works with stale data from MCP resource or wastes tokens re-fetching large static files
Expose data as a Resource when it is large, changes infrequently, and benefits from client-side caching \(e.g., codebase files, config\). Expose as a Tool when data is small, dynamic, requires filtering parameters, or must be fetched fresh every time \(e.g., 'search\_logs\(query\)'\).
Journey Context:
MCP clients \(like Claude Desktop\) cache Resource content and only re-fetch when the resource URI changes or TTL expires. If you expose a live database query as a Resource, the agent sees stale data. Conversely, if you expose a 10MB log file as a Tool \('read\_logs'\), the agent fetches it fresh every turn, wasting tokens. The litmus test: if the operation takes parameters to filter results \(like date ranges\), it's a Tool. If it's a canonical URI representing a static entity \(like 'file:///config.yaml'\), it's a Resource.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T16:21:38.249398+00:00— report_created — created