Skip to content
MCP: the protocol

03.03 · Concept

Tools, resources and prompts

Choose the right MCP primitive for a capability instead of making everything a tool.

MCP capabilities fit different primitives: tools perform actions, resources expose readable context, and prompts package repeatable interaction patterns. Choosing between them keeps an agent interface clearer, with cleaner permissions, fewer fake function calls, and less confusion about whether the model is acting, inspecting information, or following a guided workflow.

What this lesson answers

  • when should MCP capability be a tool
  • MCP resource versus tool for agent context
  • how are MCP prompts different from tools

Notes

MCP gives an AI application a few different primitives because not every capability is the same kind of thing. A tool is an action the model can ask to run, such as creating a ticket, querying a database, or calling a build system. A resource is context the client can read and provide to the model, such as a file, document, schema, log, or record. A prompt is a reusable interaction template: a packaged way to ask for something, often with parameters and expected structure.

A useful mental model is to ask whether the capability is an action, a thing to inspect, or a workflow-shaped instruction.

Common questions

When should I model something as an MCP tool?
Use a tool when the model needs to explicitly ask for an operation to run. Good examples are actions that change state, call another service, query a live system, or trigger computation. If you need permission checks, execution results, errors, or auditability around the operation, it probably belongs as a tool.
What belongs in an MCP resource instead of a tool?
Use a resource for information the client can read and place into the model’s context. Files, logs, schemas, documents, records, and similar inspectable data are usually resources. If the model mainly needs to look at it, quote it, compare it, or reason over it, avoid wrapping the read as an action.
How is an MCP prompt different from a tool description?
A prompt is a named, reusable way to guide an interaction, often with parameters and an expected output shape. It is not the same as hiding instructions inside a tool description. Use a prompt when the value is the task framing itself, such as reviewing a change, writing a summary, or applying a standard checklist.