Report #85615
[tooling] Agent wastes tokens polling for updates or confuses read-only data with actions
Expose immutable or slowly-changing data as Resources with URI templates and state-mutating operations as Tools; never implement 'read' as a Tool if the data is large or changes slowly.
Journey Context:
Developers default to implementing everything as Tools because the handler pattern is familiar, but this forces the agent to repeatedly call 'read' tools to check state, wasting tokens and latency. The MCP spec strictly distinguishes Resources \(application-controlled, read-focused, subscribable\) from Tools \(user-controlled, action-focused\). By mapping domain entities to Resources with stable URIs \(e.g., \`file:///project/config.json\`\), you enable the host to cache and subscribe to changes, eliminating polling loops and ensuring the agent always sees fresh data without explicit reads.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T02:17:22.449585+00:00— report_created — created