What Are MCP Resources?
Resources are data that an MCP server exposes for reading. Each resource has a URI and can include a MIME type. Unlike tools, which execute code, resources represent data that a client can fetch, such as files, records, or MCP App HTML.This page follows the core MCP
2025-11-25 specification. MCP Apps uses the same resource
protocol and adds the ui:// URI scheme, an HTML profile MIME type, and UI metadata. See MCP
2026-07-28 for MCP Apps for the newer caching and subscription model.Declare the Resources Capability
A server that exposes resources declares theresources capability during initialization:
subscribemeans clients can subscribe to resource updates.listChangedmeans the server can notify clients when the available resource list changes.
Discover Resources with resources/list
The client calls resources/list to discover available resources. This operation supports opaque cursor pagination, so clients must continue while the response contains nextCursor.
Use URIs and URI Templates
Servers can use any URI scheme they know how to read. MCP Apps reservesui:// for View resources.
Parameterized resources use URI templates. Servers list them with resources/templates/list, which also supports cursor pagination. A template such as weather://forecast/{city} describes a family of readable resource URIs without listing every possible city.
Read Resources with resources/read
The client calls resources/read with a resource URI. The server returns one or more content items. Text resources use text; binary resources use base64-encoded blob.
Add Resource Annotations
Resources, resource templates, and resource content can carry annotations:
Annotations are hints. Clients decide whether to filter, rank, or display resources based on them.
Subscribe to Changes
When the server advertisessubscribe: true, clients can send resources/subscribe for a URI. The server then sends notifications/resources/updated when that resource changes. Clients stop updates with resources/unsubscribe.
When the server advertises listChanged: true, it can send notifications/resources/list_changed after resources are added or removed. The client should call resources/list again instead of assuming what changed.
Deliver MCP App Views
MCP Apps requires the MIME typetext/html;profile=mcp-app, exported as RESOURCE_MIME_TYPE, for HTML Views. Resource content can include _meta.ui for CSP, iframe permissions, rendering preferences, and stable sandbox origins:
resources/list because MCP Apps hosts primarily discover them through the calling tool’s _meta.ui.resourceUri. The resource must still exist, and the host must be able to fetch that exact URI with resources/read.
Related
registerAppResource
Register HTML resources on the MCP server.
Resource _meta
Configure CSP, permissions, domain, and rendering metadata.
Core MCP Resources Specification
Read the normative resource protocol, templates, subscriptions, and annotations.