Report #39118
[tooling] Agent wastes tokens repeatedly calling MCP tools for static reference data
Expose read-only reference data \(user profiles, config settings, lookup tables\) as MCP Resources with subscription support; reserve Tools for operations with side effects or complex computations. Access Resources via resources/read and resources/subscribe rather than tool calls.
Journey Context:
A common antipattern is creating a get\_user\_profile tool that queries a database. Every time the agent needs context, it calls this tool, incurring latency and token costs for the tool invocation. The MCP Resources architecture is specifically designed for this: resources represent semantic content that changes over time \(like files or database records\). By exposing data as a resource with a URI scheme like user://\{id\}/profile, the client can subscribe to changes and cache the content, refreshing only when notified via notifications/resources/updated. This eliminates redundant tool calls for static context. Tools should be reserved for actions: 'send\_email', 'calculate\_shipping\_cost', 'approve\_request'.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T20:08:06.488719+00:00— report_created — created