Inferensys

Glossary

MCP Resource

An MCP Resource is a data object, such as a file, database record, or API response, that is exposed by an MCP server for reading by a client, identified by a URI and described by metadata including its name, description, and MIME type.
Stylish WeWork-like workspace with hot desks and document wall, professional searching through enterprise knowledge base on a mounted ultrawide display, warm industrial pendants overhead.
MODEL CONTEXT PROTOCOL

What is an MCP Resource?

A fundamental data object within the Model Context Protocol (MCP) framework, enabling AI clients to read external information.

An MCP Resource is a data object—such as a file, database record, or API response—exposed by an MCP server for reading by an MCP client. It is uniquely identified by a URI and described by metadata including a name, description, and MIME type. This standardized definition allows AI assistants to dynamically discover and retrieve external data, grounding their responses in real-time, contextual information without hard-coded integrations.

Resources are a core capability negotiated during the MCP handshake. A client requests a resource by its URI, and the server's resource provider returns the content. This mechanism enables dynamic context injection, where retrieved data is seamlessly added to a language model's context window. Unlike MCP Tools, which perform actions, resources are strictly for read-only data access, forming the foundational layer for retrieval-augmented generation within agentic workflows.

MODEL CONTEXT PROTOCOL

Core Characteristics of an MCP Resource

An MCP Resource is a data object exposed by a server for reading by a client, identified by a URI and described by metadata. These are the fundamental properties that define its structure and behavior within the protocol.

01

Unique URI Identifier

Every MCP resource is uniquely identified by a Uniform Resource Identifier (URI) within the server's namespace. This URI acts as a permanent, addressable handle that clients use to request the resource's contents. The URI scheme is defined by the server (e.g., file://, db://, api://) and provides a hierarchical structure for organization.

  • Example: file:///project/docs/spec.md or github://issues/open#123
  • Key Property: URIs are immutable for the lifetime of the resource. If the underlying data changes, the same URI returns the updated content.
02

Structured Metadata

Resources are described by a fixed set of metadata fields provided by the server, which clients use for discovery and understanding.

  • name: A human-readable label for the resource (e.g., "Quarterly Sales Report").
  • description: A plain-text explanation of the resource's content and purpose.
  • mimeType: The Multipurpose Internet Mail Extensions (MIME) type that declares the content's format (e.g., text/markdown, application/json, image/png). This tells the client how to interpret the data.
  • This metadata is returned when a client lists available resources or requests details, enabling intelligent context selection.
03

Read-Only Data Interface

The core MCP resource protocol is fundamentally read-only. Clients can request (resources/list) and fetch (resources/read) resource contents, but cannot create, update, or delete resources through standard resource calls. This design enforces a clear separation of concerns:

  • Servers are the authoritative source and manage the lifecycle of data.
  • Clients are consumers that retrieve context on-demand.
  • Modification of underlying data must be performed through MCP Tools, which are separate, executable functions. This ensures state changes are explicit, auditable, and validated.
04

Dynamic or Static Content

A resource's content can be either static or dynamically generated at read-time, abstracted from the client.

  • Static Resources: Reference fixed data, like a file on disk or a cached API response. The URI consistently returns the same content until the source is externally updated.
  • Dynamic Resources: Are computed upon each read request. Examples include:
    • stock://price/TSLA (fetches live price)
    • db://query/results (executes a parameterized query)
    • server://metrics/cpu (returns current system load)
  • The client interacts with both types identically via the resources/read call, simplifying the architecture.
05

Binary and Text Support

Through the mimeType metadata and protocol design, MCP resources natively support both text and binary data formats.

  • Text Resources: Use MIME types like text/plain, text/markdown, application/json. Their contents are transmitted as strings in JSON-RPC messages.
  • Binary Resources: Use MIME types like image/png, application/pdf, audio/mpeg. The MCP protocol encodes binary data using Base64 when transmitting over JSON-RPC. The client is responsible for decoding the Base64 string based on the mimeType.
  • This allows the protocol to handle a vast range of contextual data, from code snippets and configuration files to diagrams and audio clips.
06

Protocol Integration Points

Resources are integrated into the broader MCP ecosystem through specific JSON-RPC methods and lifecycle events.

  • Discovery: Client calls resources/list to get a catalog of available URIs and their metadata.
  • Reading: Client calls resources/read with a URI to fetch the actual content.
  • Notifications: Servers can send resources/updated or resources/removed notifications to subscribed clients, enabling real-time context awareness when resources change.
  • Relationship to Tools: While distinct, resources and tools are complementary. A resources/read call might fetch a configuration file (resource), whose contents are then used as parameters for a subsequent tools/call to execute an action.
MCP RESOURCE

Frequently Asked Questions

Common questions about MCP Resources, the fundamental data objects exposed by Model Context Protocol servers for AI applications to read and utilize.

An MCP Resource is a data object, such as a file, database record, or API response, that is exposed by an MCP server for reading by an MCP client. It is identified by a Uniform Resource Identifier (URI) and described by metadata including its name, description, and MIME type. Resources provide a standardized way for AI applications to access external, up-to-date information without the model needing prior knowledge of the data.

  • Core Purpose: To serve as a read-only conduit for contextual data from external systems into an AI agent's session.
  • Key Identifier: The Resource URI (e.g., file:///logs/app.log or db://customers/123) uniquely names the resource within the server's namespace.
  • Metadata: Includes a human-readable name, a description for the client/LLM, and a mimeType (e.g., text/plain, application/json) to guide parsing.
Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.