Zenaique

Why does MCP have a 'prompt' primitive separate from tools and resources?

Flashcard·Easy·4.0 · 0·~30s·Asked atBanana DevCitadelCloudflare·Relevant atAnthropic
Attempt it
TL;DR

Prompts are user-invoked reusable templates; tools are model-invoked; resources are host-pulled. Each primitive owns a distinct invocation pattern, and overloading one for another's job fights the protocol.

Memory aid
Sign in to see the mnemonic that makes this stick.
Easy to grasp

Imagine the AI app has a small menu of pre-written request templates, like recipe cards. Each card has a name (like /code-review or /summarize-meeting) and a few blanks the user fills in. When the user picks a card and fills in the blanks, the app sends a polished request to the model. The user never needs to remember the perfect wording; the template handles that. MCP prompts are these cards, but instead of the app inventing them, they come from MCP servers. A GitHub server can ship a /pr-review card. A Notion server can ship a /weekly-summary card. The user picks them from the same menu, and any MCP-aware app reads them the same way. The key difference from tools is that the model does not pick prompts; the user does.

Concept explanation~2 min read

Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.

MCP defines three primitive families: tools, resources, and prompts. Each maps to a different invocation pattern and a different actor in the system. Of the three, prompts are the most easily misunderstood because the word 'prompt' already carries heavy meaning in LLM contexts. In MCP, it has a specific technical definition: a reusable, parameterized template the server ships, that the user invokes by name through a host UI affordance.

This explanation walks through why the third primitive exists, what it looks like at the protocol level, how its rendered output differs from a flat string, how it contrasts with system prompts and tools, and where prompts add the most value in real deployments.

The three-way invocation split

MCP's three primitive families exist because three distinct invocation patterns matter enough to standardize separately.

Tools are model-invoked. The model reads tool descriptions during inference and emits structured function calls. The host routes the call through the client to the server. Tools may have side effects (write a file, send a message, run a query). The model decides when and which tool to call.

Resources are host-pulled. The host enumerates available resources (identified by URI) and injects their content into the conversation. Resources are read-only. The host decides which resources to include.

Prompts are user-invoked. The user picks a named template from a slash-command menu, supplies arguments, and the host fetches a rendered message list from the server. The model never picks a prompt autonomously; it sees the rendered result as a high-quality structured request.

The split exists because each invocation pattern produces a different UX. Collapsing prompts into tools would mean the model could invoke workflow templates without user intent. Collapsing prompts into resources would lose the parameterized, rendered-output shape. Keeping them separate gives each actor (model, host, user) a clean primitive to work with.

The protocol surface: list, get, notify
Rendered output: a structured message list
Prompts versus system prompts
Where prompts add the most value
Sign in to unlock the full deep dive.

Situations where this technique stops working.

Sign in to see when this approach fails.

2–4 min · Everything important, quickly.

Sign in to see the quick scan of the deep dive.

Real products, models, and research that use this idea.

  • GitHub MCP server: a `pr-review` prompt that takes a PR number and renders a structured review request with diff and context.
  • Postgres server: an `explain-query` prompt that takes a SQL statement and renders a request asking the model to explain the query plan.
Sign in to see more production examples.

What an interviewer would ask next. Try answering before peeking at the approach.

QHow is an MCP prompt different from a system prompt?
A

A system prompt is static host configuration: a fixed instruction set the host sends at the start of every session. An MCP prompt is a user-invoked template a server ships: the user picks it by name, supplies arguments, and the server renders a message list. They coexist; the MCP prompt does not replace the system prompt, it adds a per-invocation structured request on top of it.

2 more follow-ups an interviewer would ask next. Sign in to reveal them.

Red flags & common mistakes

The phrases that signal junior thinking. Click to expand.

Most common mistake

Confusing MCP prompts with system prompts or with tools. MCP prompts are user-invoked reusable templates; tools are model-invoked functions; system prompts are static host configuration.

Sign in to see all red flags and common mistakes.

60 second bullets to scan on the way to the call.

  • State the three-way invocation split: tools (model), resources (host), prompts (user).

  • Name the two JSON-RPC methods that operate on prompts (prompts/list, prompts/get).

Sign in to unlock the revision sheet.

Primary sources. Browse if you want the original framing.

Similar questions

Same topic, related formats. Practice these next.

4 curated
Next question
What is the Model Context Protocol (MCP) and what problem does it solve?
MCQ·Easy