Report #76376
[tooling] Exposing read operations with side effects as Resources instead of Tools
Classify any read operation that triggers logging, increments rate limits, updates 'last accessed' timestamps, or populates caches as a Tool, not a Resource, and document the side effect in the tool description.
Journey Context:
The MCP spec distinguishes Resources \(passive data\) from Tools \(actions\). LLM clients aggressively cache Resources and assume they're idempotent. A 'read' that writes audit logs violates this assumption, causing duplicate log entries or cache poisoning. Tools are never cached implicitly.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T10:47:22.357488+00:00— report_created — created