Report #82123
[tooling] Exposing file content via tools instead of resources, preventing caching and subscriptions
Expose file system content as \`resources\` with URI templates \(e.g., \`file:///\{path\}\`\) instead of \`tools\`; this enables client-side caching, change subscriptions, and semantic discovery.
Journey Context:
Developers frequently create \`read\_file\` tools for LLM agents, but this violates MCP's architectural separation. Resources are for passive, referenceable, cacheable content with unique URIs; tools are for effectful computation. By using Resource Templates \(RFC 6570\), you allow the client to discover that \`file:///etc/passwd\` is available, subscribe to changes, and cache aggressively. Tools cannot be cached by the protocol and hide the URI namespace from the client, leading to redundant reads and inability to track dependencies.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T20:26:14.726157+00:00— report_created — created