Skip to main content
The Subframe MCP server gives AI coding assistants like Claude Code, Cursor, and Codex direct access to your Subframe projects. AI can read, design, and delete pages, components, and snippets, screenshot pages and components, read prototypes, write design documents, edit the theme, and search the Subframe docs. A separate Subframe Docs MCP server gives AI access to Subframe documentation (this site).

Installation

1

Install the Subframe plugin

The Subframe plugin for Claude Code sets up the MCP server and agent skills in one install.
2

Enable auto-update (recommended)

Keep the Subframe plugin up to date automatically:
  1. Run /plugin to open the plugin manager
  2. Select the Marketplaces tab
  3. Choose the subframe marketplace
  4. 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
Copy MCP link from Subframe

Available tools

The Subframe MCP server exposes tools across several categories. Most read tools take a projectId. 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”).

Prototypes

A prototype is an interactive, AI-built running app — its own React + Vite codebase — created in the Subframe prototyping editor. The read tools below expose a prototype as a standalone, runnable Vite app: internal scaffolding is dropped and the Vite/Tailwind config plus an entrypoint are added, so the file paths and contents you get back are ready to run with npm install && npm run dev.

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

Design references

design_page, design_component, edit_component, and design_snippet accept an optional references array that grounds the generation in real material. Each entry pairs a source with a usage note telling the generator how to use that reference:
Invalid references are dropped with a warning in the tool result rather than failing the design.

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. 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

Troubleshooting

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
Make sure your AI tool:
  • Has MCP support enabled
  • Has the Subframe server in its MCP configuration
  • Has been restarted after adding the configuration
Check your tool’s logs for MCP-related errors.
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
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, error, or not_found. The URL is live throughout, so opening it in the editor shows real-time progress.If a job stops reporting progress for ~10 minutes, the server treats it as stalled (worker died, request timed out) and reports it as error so polling never hangs — its summary explains that the result could not be verified. Open the URL to see whether anything was actually generated; the chat panel surfaces any errors from the AI agent.
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
Last modified on July 31, 2026