🧩Free

MCP Resources vs Tools vs Prompts: Choose the Right Primitive

Published: 2026-08-12Updated: 2026-08-12~8 min

MCP Radar Editorial · Facts verified: 2026-08-12 · Refresh due: 2027-02-12

Direct answer

MCP resources expose context the application chooses to read or attach; MCP tools expose executable operations the model can request; MCP prompts expose reusable workflows the user invokes. Start with the least powerful primitive that satisfies the task, and separate read context from consequential actions.

Control flows before capability

1

User chooses workflow

A prompt packages an explicit reusable starting point.

2

Application supplies context

A resource is selected and attached or read.

3

Model requests operation

A tool call proposes structured arguments.

4

Host enforces policy

The application approves, executes, and returns results.

The least-powerful rule reduces accidental authority while keeping the user task clear.
PrimitivePrimary controllerBest forSide effectsCore operations
ResourceApplicationDocuments, schemas, records, reference contextInteraction is read-oriented; the backing data may still changeresources/list, resources/read
ToolModelQueries, computations, API calls, writes and other operationsMay be read-only or consequentialtools/list, tools/call
PromptUserReusable, parameterized workflows and instructionsIndirect; can guide use of resources/toolsprompts/list, prompts/get
Control semantics follow the current MCP server overview; a host may present these capabilities through different UI patterns.

Use a resource when the application should control context

A resource is a named or templated data source that a client can discover and read. It fits file contents, database schemas, API documentation, records, or other reference material. Resource interaction is read-oriented, but do not call the underlying world immutable: the backing file, database, or API can change between reads.

Use a tool when the model must request an operation

A tool has a name, description, input schema, and execution result. It fits calculations, searches, live queries, file changes, messages, deployments, and downstream API calls. Mark read-only behavior precisely, validate arguments server-side, and put human approval in front of consequential operations.

Model the same domain both ways

For a support system, `support://policies/refunds` can be a resource the application attaches as policy context. `lookup_order` can be a read-only tool using an order ID. `issue_refund` is a consequential tool with a separate scope and confirmation. A `resolve_refund_case` prompt can guide the user through the sequence without owning the underlying authority.

Caching, pagination, tokens, and errors

Use resources when application-controlled selection and caching match the data. Use tools when a parameterized operation or fresh computation is required. Both lists can be paginated and both paths can produce errors. Token use depends on the host: loading a large resource can cost more than a narrow tool result, while loading many tool definitions can cost more than a focused resource. Measure your client/model path.

Avoid common anti-patterns

Do not expose an arbitrary SQL or shell tool when a narrow resource or typed query tool is enough. Do not hide a write inside a tool described as 'get' or 'sync'. Do not make every static document a tool merely because tools are familiar. Do not split the same primitive comparison into separate near-duplicate URLs; prompts belong in this three-way decision.

Decision tree

If the user is choosing a reusable workflow, start with a prompt. If the application needs to supply named context without asking the model to execute an operation, use a resource. If the model must request a parameterized query, computation, or action, use a tool. When a task spans all three, keep their permissions and control semantics distinct.

Methodology and limitations

  • Definitions and control roles were checked against current official MCP architecture and server-concept documentation.
  • This page does not claim universal token savings; client discovery and context strategies vary.
  • The support example is a design illustration, not a tested vendor implementation.

Frequently asked questions

Are MCP resources always read-only?

Resource interaction is read-oriented, but the backing system can change. Describe freshness, access control, caching, and mutation paths separately.

Can a tool only perform actions?

No. Tools can also retrieve information or compute results. Use a tool when a model-requested parameterized operation is the right control model.

Where do MCP prompts fit?

Prompts are user-controlled reusable templates. They can guide the model to use resources and tools without replacing either primitive.

Sources

  1. Model Context Protocol — architecture overview (2026-07-28) · retrieved 2026-08-12
  2. Model Context Protocol — server concepts · retrieved 2026-08-12
  3. MCP specification — server overview · retrieved 2026-08-12

Continue reading