Report #47135
[tooling] Agent works with stale data or polls excessively when using MCP Resources for dynamic API data
Expose dynamic or parameterized data \(database queries, API results, time-sensitive state\) as Tools, not Resources; reserve Resources exclusively for static or slowly-changing reference material \(file contents, schemas, documentation\) where the URI is a stable content identifier
Journey Context:
Developers often map REST API patterns directly onto MCP, exposing endpoints as Resources with parameterized URIs \(e.g., 'weather://london/current'\). However, MCP clients aggressively cache Resources by URI and expect them to be content-addressable—meaning the content should not change without the URI changing. This causes agents to receive stale data or forces inefficient polling. Tools, by contrast, are invoked on-demand with parameters and return fresh data immediately. The architectural rule is: if the data changes faster than the agent's context window, or requires parameters to fetch, it must be a Tool.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T09:35:15.889951+00:00— report_created — created