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 as well as write design documents and edit the theme. 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”).

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. 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, 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.
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 May 27, 2026