fastmcp.resources.resource
Base classes and interfaces for FastMCP resources.
Classes
ResourceContent
Wrapper for resource content with optional MIME type and metadata.
Accepts any value for content - strings and bytes pass through directly,
other types (dict, list, BaseModel, etc.) are automatically JSON-serialized.
Methods:
to_mcp_resource_contents
uri: The URI of the resource (required by MCP types)
- TextResourceContents for str content, BlobResourceContents for bytes
ResourceResult
Canonical result type for resource reads.
Provides explicit control over resource responses: multiple content items,
per-item MIME types, and metadata at both the item and result level.
Methods:
to_mcp_result
uri: The URI of the resource (required by MCP types)
- MCP ReadResourceResult with converted contents
Resource
Base class for all resources.
Methods:
from_function
set_default_mime_type
set_default_name
read
- str: Text content
- bytes: Binary content
- ResourceResult: Full control over contents and result-level meta
convert_result
- In _read() to convert user function return values to ResourceResult
- In tasks_result_handler() to convert Docket task results to ResourceResult
mime_type is forwarded so
that ui:// resources (and others with non-default MIME types)
don’t fall back to text/plain.
The resource’s component-level meta (e.g. ui metadata for
MCP Apps CSP/permissions) is propagated to each content item so
that hosts can read it from the resources/read response.
to_mcp_resource
key
register_with_docket
add_to_docket
docket: The Docket instancefn_key: Function lookup key in Docket registry (defaults to self.key)task_key: Redis storage key for the result**kwargs: Additional kwargs passed to docket.add()

