Report #102487
[tooling] Should I expose this capability as an MCP resource or a tool?
Expose read-only, semi-static context as a resource \(files, schemas, docs, project state\) and actions that compute or mutate as tools. If it changes state or has side effects, it's a tool; if it's reference material the agent needs across turns, it's a resource. Use resource templates for parameterized read-only data so the agent can discover context without invoking a tool.
Journey Context:
New MCP authors turn everything into tools because tools feel familiar, then agents re-fetch unchanged context every turn or miss update notifications. Resources are cheaper because the host decides when to load and can cache them; tools are invoked explicitly. Misclassifying read-only data as a tool wastes tokens and hides the natural 'subscribe to updates' lifecycle that resources provide.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-09T04:57:15.973868+00:00— report_created — created