PrepGenAICerts

MCP Primitives

MCP

Definition

The three fundamental building blocks of the MCP protocol: Tools (model-controlled actions Claude can invoke), Resources (application-controlled data Claude can read), and Prompts (user-controlled templates for common interactions). Each serves a distinct control model.

Example Usage

Use Tools for actions Claude decides to take, Resources for data the app provides to Claude, and Prompts for user-initiated interaction templates.

In Depth

MCP servers expose exactly three kinds of capabilities, called primitives: Tools, Resources, and Prompts. Each primitive maps to a different control model — that is, a different answer to the question "who decides when this is used?"

Tools are model-controlled. The AI decides when to invoke a tool based on its interpretation of the task. You register a tool by giving it a name, a description, and a JSON Schema for its input. When the model determines a tool call is appropriate, it emits a tool_use block; the client executes it and returns the result. Because the model initiates tool use, tools are suited for actions: querying a database, creating a file, sending a message.

Resources are application-controlled. The host application decides what data to inject into Claude's context. Resources are identified by URIs and contain read-only content — text, JSON, binary blobs, or template-generated output. The application calls resources/read and passes the result to Claude; Claude does not autonomously request a resource by URI. Resources suit ambient context: the current user's profile, a document being edited, environmental state.

Prompts are user-controlled. They are reusable interaction templates that surface in the UI so humans can invoke them directly. A Prompt might package a common workflow — "summarise this ticket," "review this PR" — as a named command. The human selects the prompt; the client renders it and sends it to Claude. Prompts are the primitive closest to slash commands.

The three-primitive model is one of the highest-yield exam areas in Domain 2 because every MCP question eventually comes back to "which primitive fits this requirement?" Misclassifying a Resource as a Tool (or vice versa) is the most common error — the giveaway is the control question: if the *model* initiates it, it is a Tool; if the *app* provides it, it is a Resource; if the *user* triggers it, it is a Prompt.

See MCP Tools (Primitive) and MCP Resources for deeper dives into those specific primitives.

How It Compares

PrimitiveControlled byInitiates asTypical use
ToolsModelModel decides to callActions: query DB, create issue, send message
ResourcesApplicationApp injects into contextAmbient data: user profile, open document
PromptsUserHuman selects in UIReusable workflows: /review-pr, /summarise
*(not a primitive)*——Server configuration, transport, session lifecycle

How It's Tested & Common Confusions

  • Classification scenarios: given a capability description, identify which primitive it is.
  • Control-model questions: "who decides when this is invoked?" — correct answer maps to model/app/user.
  • Design questions: asked to design an MCP server for a use case, choose the right primitive type for each capability.
  • Distractor format: one answer option swaps Tool and Resource for the same use case; you must apply the control-model test to distinguish them.

Frequently Asked Questions

Can a single MCP server expose all three primitives?

Yes. Primitive types are not mutually exclusive. A file-system server might expose Tools for write operations, Resources for read-only directory listings, and Prompts for common file-manipulation workflows. Each primitive is discovered independently via its own list endpoint.

If a Resource is read-only, how does Claude 'use' it?

The application reads the resource and includes its content in Claude's context — typically in the system prompt or as injected user-turn content. Claude processes the content but does not call a read function itself. This is the application-controlled nature of Resources: the app decides what to surface and when.

PrepGenAICerts is an independent exam-prep site. It is not affiliated with, endorsed by, or sponsored by Anthropic, PBC. Claude and Anthropic are trademarks of Anthropic, PBC. Exam details are taken from publicly available Anthropic and Pearson documentation. About PrepGenAICerts.