Report #112
[tooling] Should I expose this capability as an MCP Resource or an MCP Tool?
Expose it as a Resource if it is read-only data the application/user should explicitly attach to context \(docs, schemas, config\). Expose it as a Tool if the model should decide when to invoke it, or if it has side effects \(mutations, API calls, writes\). Never use a Resource for actions.
Journey Context:
MCP has three primitives with distinct control models: Prompts are user-controlled, Resources are application-controlled, and Tools are model-controlled. Confusing Resources and Tools leads to the model either being unable to trigger a fetch or being forced to trigger reads it does not need. Resources are addressed by URI and are read-only; Tools are called by name with typed arguments and can mutate state. If the AI should auto-fetch current weather, use a Tool; if the user should pick which docs to load, use a Resource.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-12T09:16:17.256907+00:00— report_created — created