Installation
- Claude Code
- Claude Desktop
- Cursor
- Codex
- Other clients
1
Install the Subframe plugin
2
Enable auto-update (recommended)
Keep the Subframe plugin up to date automatically:
- Run
/pluginto open the plugin manager - Select the Marketplaces tab
- Choose the subframe marketplace
- Select Enable auto-update
3
Verify installation
Run
/mcp to check that the Subframe MCP server is connected, then try asking Claude Code to use Subframe.4
Create your first design
Follow the Working with AI agents guide to design and implement your first page.
Using the MCP server
Once configured, your AI assistant can access Subframe automatically when you prompt or paste an MCP link to a page from the Code panel. You can get the MCP link for any design by either:- Copying the link from the browser address bar
- Copying the link under Code > Inspect in Subframe

Available tools
The Subframe MCP server exposes tools across several categories. Most read tools take aprojectId. If omitted, the first project the user has access to is used.
Discovery
Pages
Components
Snippets
Snippets are small, standalone bits of UI typically embedded inside design documents as live examples (e.g. a “Button variants” snippet showing every Button state). They live within Subframe and do not sync out.Flows
A flow is a collection of related pages (e.g. “Onboarding”, “Checkout”).Design documents
Design documents are markdown files that convey how to work within your design system — brand voice, design principles, component usage rules (“when to use Toggle vs. Checkbox”), accessibility requirements, do/don’t examples. AI automatically reads them when designing or implementing. Project-scoped docs (many per project) cover broad guidance; component-scoped docs (one per component, attached directly to it) cover specifics for that component.
Read existing docs first via
get_project_info (project-level) or get_component_info (component-level). When updating, always pass the existing id — components allow at most one design document, and creating a second is rejected.
Theme
Async jobs
design_page, design_component, and edit_component return a jobId alongside their URL. The URL can be used immediately to view the real-time progress of the job in the editor. Pass the jobId(s) to wait_for_jobs before reading back the generated content with get_page_info, get_component_info, get_snippet_info, or get_flow_info — those reads return empty/stale state until the job is done.
Prompt with MCP link
When prompting we recommend using the MCP link found in the Code Inspect panel for a page.To get the latest version of components in your project, run
npx @subframe/cli@latest sync to sync
components.Example prompts
Implement a new page from a design
Implement a new page from a design
Update an existing page with a new design
Update an existing page with a new design
Design a new component
Design a new component
Write a design document
Write a design document
Delete unused components
Delete unused components
Migrate to Subframe's design system
Migrate to Subframe's design system
Fetch a component
Fetch a component
List available components
List available components
Get the theme
Get the theme
Troubleshooting
Authentication failed
Authentication failed
The Subframe MCP server uses OAuth. If you’re seeing authentication errors:
- Try re-authenticating by reconnecting to the MCP server in your client
- Check that you have the correct permissions for the project you’re trying to access
- Make sure your browser session is active when authenticating
- Confirm your client supports MCP OAuth — Subframe access tokens are not accepted by the MCP server
AI not calling the server
AI not calling the server
Make sure your AI tool:
- Has MCP support enabled
- Has the Subframe server in its MCP configuration
- Has been restarted after adding the configuration
Component or page not found
Component or page not found
Use
list_components, list_pages, list_snippets, or list_flows to see what’s available.Verify:- The component/page/snippet exists in your Subframe project
- The name or URL matches exactly
- You have access to the project
Background job seems stuck
Background job seems stuck
design_page, design_component, and edit_component run as background jobs. Check wait_for_jobs with the jobId returned by the design tool — it reports running, done, or not_found. The URL is live throughout, so opening it in the editor shows real-time progress.If a job stays running longer than ~10 minutes, the server treats it as stalled (worker died, request timed out) and reports it as done to unblock polling. Open the URL to see whether anything was actually generated; the chat panel surfaces any errors from the AI agent.Connection errors
Connection errors
If the MCP server is unreachable:
- Check your internet connection
- Verify the URL is
https://mcp.subframe.com/mcp - Reach out to the Subframe team for support


Claude Code
Cursor
Codex