Which statements correctly describe the MCP primitive types?
MCP servers expose three primitives: tools (model-initiated, side-effectful), resources (app-initiated, read-only), and prompts (user-initiated templates). Each has a distinct initiator.
Picture a kitchen with three drawers. The first drawer holds appliances the chef reaches for on their own to cook something, which changes the meal. Those are tools, the model decides to use them. The second drawer holds recipe cards, read-only references someone hands the chef when needed, and the chef never rewrites them. Those are resources, the app decides what to pass in. The third drawer holds pre-written order forms a diner picks from a menu to start a request. Those are prompts, the user picks them. The whole trick is remembering who opens each drawer: the chef, the kitchen staff, or the diner. Mixing up who initiates what is the classic mistake.
Detailed answer & concept explanation~8 min readEverything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example.
Everything important, quickly.
3 min: name the three primitives, state the initiator for each, then explain why resources are read-only and why approval is a host policy rather than a spec rule.
| Primitive | Initiator | Side effects | Key field |
|---|---|---|---|
| Tools | Model | Yes, may mutate state | inputSchema |
| Resources | Application | No, read-only | URI |
| Prompts | User | No, expands a template | arguments / slots |
Real products, models, and research that use this idea.
- Claude Desktop discovers tools, resources, and prompts from each configured MCP server and gates tool calls behind user approval.
- Anthropic's filesystem MCP server exposes file contents as read-only resources by URI and edit actions as side-effectful tools.
- Cursor and Zed surface MCP prompts as slash-commands the developer picks, separate from the model-initiated tool calls.
What an interviewer would ask next. Try answering before peeking at the approach.
QWhy does MCP separate resources from tools instead of treating every fetch as a tool call?
QHow does a tool's inputSchema interact with a model vendor's function-calling format?
Don't say thisRed flags and common mistakes that signal junior thinking. Click to expand.
Red flags and common mistakes that signal junior thinking. Click to expand.
Thinking resources are model-initiated or writable. Resources are read-only and pulled by the host application, never invoked by the model.
The night-before-the-interview bullets. Scan these on the way to the call.
Primary sources. Skim if you want the original framing.
Same topic, related formats. Practice these next.