Report #88700
[tooling] Exposing large reference datasets as tools wastes tokens on every call
Expose large static datasets as Resources \(cacheable\) with appropriate mimeType, not Tools; use Tools only for actions or computations.
Journey Context:
Developers often expose static lookup tables \(country codes, API schemas, documentation\) as Tools that take an ID and return data. Since Tools are stateless and non-cacheable by design in MCP, the LLM re-fetches this data on every relevant turn. Resources are designed for cacheable, read-only data. By exposing large static datasets as Resources with appropriate mimeTypes \(application/json\), clients fetch once and cache. The key distinction: if the data changes less frequently than the conversation, use Resources; if it changes per request or performs side effects, use Tools.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T07:28:16.365437+00:00— report_created — created