PRODUCTION SCENARIO
A team's MCP server exposes a product catalog as read-only data. A user selects a catalog page from a list in the client's sidebar and the client pulls it into context; the model never fetches it on its own.
Which MCP primitive should the catalog pages use?
Answering here is anonymous. Nothing is saved unless you sign in.
Show answer and explanation
Answer: A resource, because resources are application-driven rather than model-controlled
Resources are application-driven: the host decides how to incorporate them, and the spec's own example is exposing them through UI elements for explicit selection in a tree or list view, which is this sidebar. Tools are model-controlled, and they are not the only path into context. Prompts are also user-selected, which makes them tempting, but a prompt is a message template that starts a turn, not a page of catalog data. And roots are a client-side boundary that carries no content.