PrepGenAICerts

MCP Primitives: Tools, Resources, and Prompts

Core

Understand MCP servers, their primitives, and transports · Difficulty 2/5

0%
mcpmcp-primitivestools-resources-promptsreusability

Explanation

What MCP Is

The Model Context Protocol (MCP) is an open standard for connecting AI applications to external systems -- described as "a USB-C port for AI." An **MCP Server exposes capabilities that any MCP-compatible client (Claude Desktop, Claude Code, a custom app) can connect to, so a capability is built once and reused everywhere**, maintained independently of any single application.

Three Core Primitives

PrimitiveWhat it is
ToolsModel-callable functions (actions), like an inventory lookup or sending an email
ResourcesReadable data/content the client can load into context (files, records)
PromptsReusable, parameterized prompt templates the user/client can invoke

An MCP Server is not limited to exposing actions -- it can also surface readable content and ready-made prompt templates, which is a distinct capability from a plain custom tool.

Resources: Direct vs. Templated

Within the resources primitive, there's a further distinction worth knowing: a direct resource has a fixed address with no parameters -- a specific file, a fixed database record, a static list of available documents. A templated resource has a parameterized address -- a URI template that takes an argument, such as a document identifier or a date range, so the same resource *shape* can address many different underlying records. Reach for a resource (of either kind) when you want known data sitting in context from the start of a turn, because pulling it in directly is cheaper and more predictable than making the model issue a tool call to go fetch it.

One caveat worth flagging: resource-injection support varies by client. Not every MCP Client automatically pulls a resource directly into context without an explicit tool call -- verify that the specific client you're targeting actually supports resource injection before designing around the assumption that it does.

Client vs. Server Roles

The client sits inside the AI application and connects to one or more servers; each server advertises its tools/resources/prompts and handles the calls made to it.

When to Build One

Build an MCP Server when a capability (e.g., an internal REST service) should be reusable across multiple Claude applications and maintained independently of any one of them. That reuse-plus-independent-maintenance combination is the canonical MCP use case.

Common exam traps

  • "MCP only exposes tools." False -- MCP exposes tools, resources, and prompts as three distinct primitives.
  • "Which of these is an MCP primitive?" style questions that list a plausible-sounding fourth option (e.g., model weights) -- only tools, resources, and prompts are core MCP Primitives.
  • Assuming every resource is a fixed, parameterless address. A templated resource takes a parameter in its address (e.g., a document ID) -- direct and templated resources are both valid resource shapes, distinguished by whether the address itself takes an argument.
  • Assuming every MCP Client supports pulling a resource directly into context without a tool call. Resource-injection support varies by client -- verify rather than assume.
  • Hard-coding integration logic into each app's system prompt instead of building a shared MCP Server -- that approach is neither reusable across apps nor independently maintainable.

Key Takeaways

  • MCP is an open standard ('USB-C for AI') that lets a capability be built once and reused across any MCP-compatible client
  • MCP servers expose three primitives: tools (actions), resources (readable data), and prompts (reusable templates) -- not just tools
  • Resources split into direct (fixed, parameterless address, e.g. a specific file) and templated (parameterized address, e.g. a URI template taking a document ID or date range)
  • Client support for resource-injection (pulling a resource directly into context without a tool call) varies by client -- verify per client rather than assume universal support
  • The client lives inside the AI app and connects to servers; servers advertise and handle their own tools/resources/prompts
  • Build an MCP server when a capability must be reusable across multiple apps and maintained independently -- the canonical use case

Glossary Terms

Model Context Protocol (MCP)

An open standard protocol for connecting Claude to external tools and data sources. Defines a client-server architecture where MCP servers expose capabilities that MCP clients discover and use. Supports project-scoped (.mcp.json) and user-scoped configurations.

MCP Client

An application that connects to MCP servers to access their tools, resources, and prompts. Responsible for tool-list filtering, tool_use_id routing, and enforcing which capabilities the model can call. Claude Code is the canonical MCP client in the CCA-F curriculum.

MCP Primitives

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.

MCP Prompts

The user-controlled MCP primitive. Pre-defined prompt templates that users explicitly trigger via the application UI (e.g., a '/summarize' command). The user chooses when to apply them. Prompts can be parameterized and support autocomplete via the MCP completion endpoint.

MCP Resources

The application-controlled MCP primitive. The host application determines what data to provide to Claude by reading resources. Resources are identified by URIs and can be text, JSON, binary data, or template-generated content. Claude reads but does not autonomously request resources.

MCP Server

A process that implements the MCP protocol and exposes tools, resources, and prompts to MCP clients. Built with official SDKs (Python, TypeScript). Deployed locally via stdio or remotely via StreamableHTTP. Claude Code auto-discovers servers configured in .mcp.json.

MCP Tools (Primitive)

The model-controlled MCP primitive. Claude autonomously decides when to invoke MCP tools based on task requirements. Distinct from Resources (app-controlled) and Prompts (user-invoked). The invocation path mirrors the API's native tool_use → tool_result exchange.

Related Concepts

PrepGenAICerts.com is an independent third-party exam-prep platform for the Claude Certified Architect (CCA-F) certification. We are not affiliated with, endorsed by, or acting on behalf of Anthropic PBC.

Note: New premium upgrades are temporarily paused while we resolve an issue with our payment provider. Existing premium members retain full access.