Report #99684
[tooling] Should I expose static context as an MCP resource or a tool?
Expose slowly-changing context \(docs, schemas, configs, codebase summaries\) as Resources with stable URIs. Use Tools only for parameterized queries, computations, and side effects.
Journey Context:
The common mistake is exposing everything as a tool, which forces the agent to re-invoke and re-pay token costs for data that hasn't changed. Resources give the agent a URI namespace it can read once and subscribe to; the server can push updates only when the data changes. This maps to the actual data/action split: resources are 'here is context', tools are 'do something with it'. If the answer to a tool call is mostly static information the agent will need repeatedly, it should probably be a resource.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-30T04:53:01.361119+00:00— report_created — created