fastmcp.server.apps
MCP Apps support — extension negotiation and typed UI metadata models.
Provides constants and Pydantic models for the MCP Apps extension
(io.modelcontextprotocol/ui), enabling tools and resources to carry
UI metadata for clients that support interactive app rendering.
Functions
ui_to_meta_dict
meta["ui"].
resolve_ui_mime_type
ui:// scheme resources, defaults to UI_MIME_TYPE when no
explicit MIME type is provided. This ensures UI resources are correctly
identified regardless of how they’re registered (via FastMCP.resource,
the standalone @resource decorator, or resource templates).
Args:
uri: The resource URI stringexplicit_mime_type: The MIME type explicitly provided by the user
- The resolved MIME type (explicit value, UI default, or None)
Classes
ResourceCSP
Content Security Policy for MCP App resources.
Declares which external origins the app is allowed to connect to or
load resources from. Hosts use these declarations to build the
Content-Security-Policy header for the sandboxed iframe.
ResourcePermissions
Iframe sandbox permissions for MCP App resources.
Each field, when set (typically to {}), requests that the host
grant the corresponding Permission Policy feature to the sandboxed
iframe. Hosts MAY honour these; apps should use JS feature detection
as a fallback.
ToolUI
Typed _meta.ui for tools — links a tool to its UI resource.
All fields use exclude_none serialization so only explicitly-set
values appear on the wire. Aliases match the MCP Apps wire format
(camelCase).
ResourceUI
Typed _meta.ui for resources — rendering hints for UI-capable clients.
