Experimental — MCP Apps use the ext-apps protocol extension and require an MCP client with ext-apps support. The protocol may evolve.
How MCP Apps Work
MCP Apps extend the Model Context Protocol with a UI layer. When an AI tool returns a result, it can also include an interactive HTML application that renders inline in the conversation. Key concepts:- Server-side tools register with the MCP server and handle data fetching
- App-only tools are hidden from the AI model and callable only from the UI
- Resource URIs point the host to the HTML application to render
- App SDK (
@modelcontextprotocol/ext-apps) handles the lifecycle, theming, and communication
Available Apps
Token Browser
Browse all design tokens from your Figma file in an interactive table. Features:- Organized by variable collection with expandable sections
- Filter by type (Colors, Numbers, Strings) and search by name
- Per-collection mode columns (Light, Dark, Custom) matching Figma’s layout
- Color swatches with hex/rgba values and alias reference resolution
- Click any token name or value to copy it to your clipboard
figma_browse_tokens which returns a brief summary to the conversation and renders the full interactive Token Browser inline. The tool auto-detects the current file from your connected browser tab — no URL required.
Design System Dashboard
Audit your design system with a Lighthouse-style health scorecard rendered inline. Features:- Overall weighted score (0–100) with six category gauges: Naming, Tokens, Components, Accessibility, Consistency, Coverage
- Expandable category sections with individual findings, severity indicators, and actionable details
- Diagnostic locations linking findings to specific variables, components, or collections
- Tooltips explaining each check’s purpose and scoring criteria
- Refresh button to re-run the audit without consuming AI context
figma_audit_design_system which returns a brief text summary and renders the full interactive dashboard inline. The tool auto-detects the current file from your connected browser tab — no URL required. The dashboard scores six categories:
| Category | Weight | What it checks |
|---|---|---|
| Naming & Semantics | 25% | Semantic variable naming, component naming conventions |
| Token Architecture | 20% | Alias usage, depth layering, mode support, descriptions |
| Component Metadata | 20% | Descriptions, variant structure, standalone vs. set ratio |
| Accessibility | 10% | Contrast-ready tokens, focus state components, readable naming |
| Consistency | 15% | Delimiter usage, casing patterns, scale adherence, mode naming |
| Coverage | 10% | Token type coverage, core component presence, variable count |
Enabling MCP Apps
MCP Apps are gated behind an environment variable and only available in Local Mode.ENABLE_MCP_APPS is not set or set to "false", no app tools are registered and existing functionality is completely unaffected.
Architecture
Each MCP App follows a modular structure:- TypeScript compiles
server.tstodist/apps/<app-name>/server.js - Vite bundles the UI into a single self-contained
dist/apps/<app-name>/mcp-app.html - The server registers a resource URI that serves the built HTML file
- The host renders the HTML inline when the tool is called
@modelcontextprotocol/ext-apps SDK for lifecycle management, host theming, and server communication.
Building Apps
The build system supports multiple apps via theAPP_NAME environment variable:
- Create
src/apps/<name>/server.tswith tool and resource registration - Create
src/apps/<name>/ui/mcp-app.htmlandmcp-app.ts - Add a
cross-env APP_NAME=<name> vite buildentry to thebuild:appsscript - Register the app in
src/local.tsinside theENABLE_MCP_APPSgate
Roadmap
Planned MCP Apps:- Component Gallery — Visual browser for searching and previewing components with variant exploration
- Style Inspector — Interactive panel for exploring color, text, and effect styles with live previews
- Variable Diff Viewer — Side-by-side comparison of token values across modes and branches
Learn More
- MCP Apps Protocol Extension — Official specification
@modelcontextprotocol/ext-appson npm — Client and server SDK- Architecture — How Figma Console MCP works under the hood