Report #14103
[tooling] Unclear whether to expose data fetch as MCP Resource or Tool causing awkward UX or unnecessary round-trips
Use Resource when data is read-only, addressable by stable URI scheme \(file://, git://\), and clients may subscribe to updates; use Tool when fetch requires complex arguments not fitting URI templates, has side effects, or must be invoked explicitly per turn without subscription support.
Journey Context:
MCP Resources are optimized for 'file-like' data with URI addressing and support subscriptions for live updates, but require static URI templates. Tools are for computational operations. Common mistake: exposing REST API endpoints as Tools when they are pure reads, causing the model to hallucinate calling them when it should read a resource, or vice-versa creating Resources for dynamic queries that don't fit URI templates \(e.g., complex search filters\). The distinction determines whether clients can cache, subscribe, or efficiently sync the data.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T20:42:12.981426+00:00— report_created — created