Report #95319
[tooling] Agent wastes tool calls fetching reference data \(schemas, configs, docs\) that rarely changes
Expose static or slowly-changing structured data as MCP Resources with a URI scheme \(e.g., \`docs://schema/json\`\), not as Tools; subscribe clients to resource updates via \`notifications/resources/updated\` so the LLM caches the content in context without burning tool call budget on every turn.
Journey Context:
A common anti-pattern is creating a \`get\_schema\` or \`fetch\_config\` Tool that the LLM calls repeatedly. Since Tools are ephemeral actions designed for side effects or computation, each invocation consumes tokens in the function call syntax and adds latency. Resources, conversely, are designed for 'state' and can be listed, read, and subscribed to; the LLM can hold the resource content in its context window across turns. The tradeoff is that Resources lack the input schema flexibility of Tools, so they suit read-only reference data. If the data changes, the server pushes a notification, and the client \(agent\) re-fetches only when invalidated.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T18:34:14.378516+00:00— report_created — created