Report #12875
[tooling] Exposing static file data as Tools causing unnecessary function calls
Expose read-only, referenceable data as Resources with stable URIs \(e.g., 'file:///project/src/utils.ts'\). Use Tools only for actions that compute, mutate state, or require parameters to generate results.
Journey Context:
Resources are designed for 'attachment' to context—the agent can read them once and refer back. Tools are for 'execution.' If an agent needs to read a file, making it a Resource allows the client to cache it and provide it as context without a round-trip. This distinction is crucial for performance: calling a Tool for every file read adds latency and token overhead vs. subscribing to a Resource. Many developers coming from function-calling backgrounds treat everything as a Tool.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T17:14:03.673899+00:00— report_created — created