LearnThatStack Ace your next interview
Model Context Protocol (MCP) · question
Question 3 of 56

What are the three server primitives in MCP, and who controls each one?

beginner
← All Model Context Protocol (MCP) questions
Re-explain

MCP servers expose three primitives: tools, resources, and prompts. They differ mainly in who decides when each one is used.

  • Tools are model-controlled. The LLM chooses and calls them mid-turn, normally behind user approval.
  • Resources are application-controlled. The host decides what data to read and attach as context.
  • Prompts are user-controlled. The user picks them on purpose, like a slash command or menu item.

This control axis should drive your design. Anything with side effects belongs in a tool, so the host can gate it. Plain read-only context belongs in a resource, so the host stays in charge of the context window. A workflow a person should trigger belongs in a prompt.

Sampling, roots, and elicitation are client primitives, not server ones.

Rewriting in plainer words…

This answer doesn't lend itself to a diagram - it reads best . No credits were charged.

Why there's no diagram: “”

The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓

The diagram below the answer is the concept . Jump to it ↓

Tailored explanation · switch back to · ·
What should the new diagram focus on?
Guided practice for Model Context Protocol (MCP) One question at a time. Answer out loud, get graded, see what you missed.
How well did you know this?
AI:

Saved in this browser - sign in to keep your review list.

How should your speech become text?

Listening… your words appear above as you speak - tap Stop when you're done.

Recording · cr - tap Stop & transcribe when you're done.

Transcribing with AI…

Voice:

Keep going - a few more words and AI can grade it.

Interview lens How interviewers actually use this question

Likely follow-ups

What you can say

  1. MCP servers offer three primitives, tools, resources and prompts, and the main difference is who decides when each one gets used.
  2. Tools are model-controlled, so the LLM chooses and calls them mid-turn, normally behind a user approval step.
  3. Resources are application-controlled, which means the host decides what data to read and attach as context.
  4. Prompts are user-controlled, so a person picks one on purpose, like a slash command or a menu item.
  5. Sampling, roots and elicitation sometimes get lumped in, but those are client primitives, not server ones.
  6. That split should drive design, so anything with side effects goes in a tool the host can gate, read-only context in a resource, and a person-triggered workflow in a prompt.

Weak answers to avoid

  • Names the three with no word on control Listing tools, resources and prompts is the easy half. The question asks who controls each, so say model, host and user, and why that matters.
  • Calls resources just read-only tools The split isn't read versus write. The host picks resources and the model picks tools. Say who decides, then why side effects must be a tool.
  • Counts sampling or roots as server primitives Sampling, roots and elicitation are client primitives that the server asks the client for. Mixing them in shows you don't know which side offers what.
  • Puts side-effecting actions in a resource The host may read a resource without asking the user, so a write there skips approval. Anything with side effects belongs in a tool the host can gate.
Interview lens

Likely follow-ups, what you can say, and the weak answers to avoid.

Sign in free to open it Free account - the lens opens as soon as you're back.

Want a quick review of the fundamentals? See the Model Context Protocol (MCP) cheatsheet.

← Back to all Model Context Protocol (MCP) questions
Pro · $10/mo

49 of 56 Model Context Protocol (MCP) answers are in Pro.

Full answers, code samples, and AI explanations that go simpler or deeper. Cancel anytime.

  • Full answers + code
  • AI explanations, simpler or deeper
  • 1,000 AI credits / month
  • Cancel anytime