Software Development

Figma MCP + Claude Code: Build Websites From Your Design System

Tech Arion TeamTech Arion Team
October 1, 202613 min read0 views
Figma MCP + Claude Code: Build Websites From Your Design System
Connect the official Figma MCP server to Claude Code so it builds from your real frames, variables and components instead of guessing. Setup, prompts, Code Connect, token mapping and the limits.

The Figma MCP server lets Claude Code read your actual Figma frames, variables and components through tools such as get_design_context, get_variable_defs and get_screenshot, so it builds from your design system instead of inventing a purple-gradient template. Add it with one command (or Figma's Claude Code plugin), paste a link to a frame, and tell Claude to implement it with the components you already have. Pair it with Code Connect so Claude imports your real Button instead of writing a new one, and with the newer write-to-canvas tools so Claude can push work back into Figma. Below: setup, prompts that work, the token pipeline into Tailwind, and the seat limits that catch teams out.

What does the Figma MCP server actually give Claude Code?

Generic AI websites happen because the model has no design context, so it falls back on averages. The Figma MCP server fixes the input rather than the prompt. Figma's tools reference splits the server into read tools that pull design data into your editor and write tools that create content in Figma. get_design_context is the default entry point for design-to-code, and Figma notes its output is React plus Tailwind by default, which you can steer to Vue, plain HTML and CSS or iOS through your prompt.

  • •get_design_context: structured design context for a layer or selection, the main tool for implementing a frame.
  • •get_variable_defs: the variables and styles used in a selection, such as colours, spacing and typography, which is how your tokens survive the trip into code.
  • •get_screenshot: a PNG of the selection so Claude can compare its build with the design; Figma recommends keeping it on unless you are worried about token limits.
  • •get_metadata: a sparse XML outline of layer IDs, names, types, positions and sizes, for breaking a very large design into pieces.
  • •search_design_system and get_libraries (remote only): find existing components, variables and styles in connected libraries before building anything new.

Remote or desktop: which Figma MCP server should you use with Claude Code?

The remote server, hosted at mcp.figma.com/mcp, needs no desktop app, uses OAuth and has the broadest feature set, including every write tool. The desktop server runs inside the Figma desktop app at 127.0.0.1:3845/mcp once you enable it from the MCP server section of the Dev Mode inspect panel. Figma's docs state that selection-based prompting only works with the desktop server, while the remote server needs a link to a frame or layer. Figma positions the desktop server for specific organisational needs, so for most teams the remote server is the right default. Tutorials using an SSE endpoint at 127.0.0.1:3845/sse describe an older setup, so check dates before copying.

How do you connect the Figma MCP server to Claude Code?

Figma's recommended route is its Claude Code plugin, which bundles the MCP server settings with Agent Skills for common Figma workflows. The manual route is a single claude mcp add command. Both end with the same OAuth sign-in. For a team, --scope project writes the server into a committed .mcp.json file, and Claude Code asks each teammate to approve it once.

1
Install the plugin (preferred)

Run: claude plugin install figma@claude-plugins-official. This installs the MCP configuration plus Figma's skills, including the foundational figma-use skill that the write tools depend on.

2
Or add the server manually

Run: claude mcp add --transport http figma https://mcp.figma.com/mcp. Add --scope user (claude mcp add --scope user --transport http figma https://mcp.figma.com/mcp) to make it available in every project; without it Claude Code uses local scope, which applies to the current project only.

3
Authenticate

Start a new Claude Code session, type /mcp, select figma, choose Authenticate and click Allow Access in the browser.

4
Desktop server alternative

In the Figma desktop app, open a Design file, switch to Dev Mode (Shift+D), click Enable desktop MCP server, then run: claude mcp add --transport http figma-desktop http://127.0.0.1:3845/mcp. Check it with claude mcp list.

5
Check your seat first

Ask Claude to run the whoami tool. It returns the email you authenticated with plus every plan you belong to and your seat type in each, which explains most permission and rate-limit surprises before you start.

What do Figma MCP seats, plans and rate limits mean in practice?

Access depends on plan and seat, with per-minute limits on top of daily or monthly caps for tools that read data. On Starter, and for View or Collab seats on paid plans, the allowance is monthly, and one design-to-code pass calls several tools. Some tools are exempt from the limits, including add_code_connect_map, create_new_file and whoami, and the tools reference says generate_figma_design is exempt too. Writing to the canvas with use_figma needs a Full seat; Dev seats are read-only outside their drafts. Write to canvas is free during its beta and will become usage-based, and Figma may change limits, so recheck before budgeting.

20 / month
Tool calls on the Starter plan, any seat
6 / month
Tool calls for View and Collab seats on Professional, Organization and Enterprise
200 / day
Dev and Full seats on Professional (10 per minute) and Organization (15 per minute)
600 / day
Dev and Full seats on Enterprise, at 20 calls per minute
25,000
Claude Code's default maximum tokens for one MCP tool result, adjustable with MAX_MCP_OUTPUT_TOKENS

How should you prompt Claude Code to implement a Figma frame?

Figma's guidance is to brief the agent like a teammate: name the framework, component folder, file path and layout primitives. Right-click a frame in Figma, choose Copy link to selection, and paste that link into prompts like the ones below. Work one section or component at a time: Figma's docs warn that large selections slow the tools down, cause errors or return incomplete responses, and Claude Code warns when an MCP result exceeds 10,000 tokens. If you wanted token values and got code back, say exactly which tool you want, for example: Get the variable names and values for this selection.

  • •Implement this frame <link> in Next.js using only components from components/ui. Do not create new primitives; if something is missing, stop and list it.
  • •Call get_variable_defs on <link> first and map every colour, spacing and radius value to our existing Tailwind theme variables. Report any value that has no matching token instead of hard-coding it.
  • •After building, call get_screenshot on <link> and compare it with the running page at 375px and 1440px; list every visual difference before you fix anything.

How does Code Connect stop Claude from duplicating your components?

Figma's file-structure guidance puts it bluntly: linking components to real code with Code Connect is the number one way to get consistent component reuse, and without it the model is guessing. For connected components, the server sends CodeConnectSnippet markers with property values, the import statement, a usage snippet and your custom instructions. On the remote server you can tell Claude to set the clientFrameworks parameter to your Code Connect label, such as React, so it receives the right mapping when one component is mapped to several frameworks. Code Connect is available on Organization and Enterprise plans and needs a Full or Dev seat.

  • •Code Connect UI runs inside Figma and connects to GitHub; it generates import statements from the mapped path and component name. Use Add instructions for MCP to record prop patterns, accessibility rules and team conventions.
  • •Code Connect CLI runs in your repository and gives richer snippets with prop mappings. Figma now recommends template files (for example Button.figma.ts), and its GitHub README says the framework-specific parsers will no longer receive updates.
  • •Start with the components you use most: Button, Input, Card, Nav, Footer. Figma's own best-practice list starts with connecting core components and keeping mappings current when component APIs change.
  • •The figma-code-connect skill helps Claude write Code Connect templates from a Figma component URL, and add_code_connect_map is exempt from rate limits, so mapping a library does not burn your read allowance.

How do you turn Figma variables into Tailwind design tokens?

In Tailwind CSS v4, theme variables defined with the @theme directive decide which utility classes exist, so a variable named --color-brand-500 produces bg-brand-500, text-brand-500 and a matching CSS variable. That is a clean landing spot for Figma variables. Alex Bobes, in his CTO guide to Figma MCP, notes that the official server's output can include arbitrary values such as leading-[22.126px] that agents copy verbatim, which is exactly what a token pass is meant to catch. Our guide to design tokens and CLAUDE.md rules covers the rules-file side; this is the Figma half.

Figma variables to Tailwind @theme, step by step

In Figma, apply variables for colour, spacing, radius and typography; Figma lists using variables for tokens as a core file-structure practice.
Prompt: Call get_variable_defs on <link to your tokens frame> and list every variable name and value, grouped by collection and mode.
Ask Claude to write them into your global CSS as an @theme block, for example --color-brand-500, --spacing-section and --radius-card, keeping Figma names in kebab-case.
Add a rule to CLAUDE.md: never use arbitrary Tailwind values for colour, spacing or radius; if a value has no token, stop and ask.
Re-run get_variable_defs when the library changes and diff the result against your @theme block.

Can Claude Code push designs back into Figma?

Yes, in two different ways, and they are easy to confuse. generate_figma_design (code to canvas) captures live UI from a browser, whether localhost, staging or production, and turns it into editable Figma layers in a new file, an existing file or your clipboard. Figma's FAQ calls the result flat layers with no library connection. use_figma (write to canvas) is structured generation: it runs Plugin API JavaScript inside a Figma file so the agent can build frames, components, variants, variables and auto layout using your existing library. Figma opened the canvas to agents in March 2026, and in that announcement Cat Wu, head of product for Claude Code, said skills teach Claude Code how to work directly in the design canvas. Figma recommends the figma-use skill before any use_figma call and testing on a duplicate library during the beta.

  • •Round trip: Start a local server for my app and capture the UI in <Figma file URL>. Designers then annotate and rearrange; you bring decisions back with a frame link.
  • •Structured build: Using this Figma file <URL>, create a new page and build a settings screen with auto layout using our existing components.
  • •Token clean-up: Using this selection <link>, convert these raw values to variables and update the surrounding components to use them.
  • •Current limits listed on the write-to-canvas page: a 20kb output response limit per call, and components must be manually published before Code Connect completes. Figma also says custom fonts and image support are being worked on, so check the docs for the current state.

Figma MCP vs shadcn MCP vs Storybook MCP: which source of truth should Claude read?

Figma MCP tells Claude what the design is. The shadcn MCP server lets Claude browse, search and install components from shadcn-compatible registries configured in components.json, including private company registries. Storybook's MCP server, currently in preview, exposes your documented components, writes stories and runs interaction and accessibility tests so the agent can fix what fails. For a marketing site with a Figma design and a shadcn-based codebase, Figma plus shadcn is a sensible pair; teams with a mature Storybook gain a verification step by adding its server.

QuestionFigma MCP (remote)shadcn MCPStorybook MCP
What Claude learnsFrames, layout, variables, styles, screenshots, Code Connect mappingsComponents, blocks and templates available in configured registriesYour documented components, props, stories and usage guidance
WritesYes: Figma files via use_figma and generate_figma_designInstalls registry components into your projectWrites stories and runs tests
Stops duplicate components byCode Connect mappings (Organization and Enterprise plans)Installing from a registry instead of re-creatingdocs-list and docs-show so the agent reuses what exists
Main constraintsSeat-based rate limits; write needs a Full seatOnly covers shadcn-compatible registriesPreview status; docs toolset needs a components manifest (React frameworks, angular-vite, vue3-vite)

What usually goes wrong with Figma MCP and Claude Code?

Most failures trace back to the Figma file or the brief, not the model.

⚠️Pasting a whole page link and asking for the entire site

Consequence: Slow or truncated tool output, partial context and a page Claude half-guessed

Solution: Call get_metadata for the outline, then implement one section or component per prompt.

⚠️Layers named Frame1268 and Group5, with no auto layout

Consequence: Absolute positioning, meaningless component names and brittle responsive behaviour

Solution: Rename layers by intent (CardContainer, CTA_Button) and use auto layout; Figma suggests resizing the frame to check it behaves before generating code.

⚠️Shipping the default React and Tailwind output as-is

Consequence: Arbitrary pixel values and duplicate primitives that bypass your design system

Solution: Add a rule that the output is a representation of the design, then map everything to tokens and existing components.

⚠️Letting use_figma loose on the production library

Consequence: Beta write operations land directly in files your whole team depends on

Solution: Duplicate the library or use a draft file, as Figma recommends, and review in Figma before merging changes back.

What should go in CLAUDE.md for Figma-driven projects?

Figma publishes a create_design_system_rules MCP prompt that generates a rules file for your stack. Its recommended flow is: get_design_context first, get_metadata if the response is too large, get_screenshot for a visual reference, download assets only after both, translate into the project's conventions, then validate against Figma for one-to-one look and behaviour. At Tech Arion we keep a short version of that flow in the CLAUDE.md of website repos that have a Figma source. An example: Figma MCP rules. Always call get_design_context and get_screenshot before writing code. Reuse components from components/ui; never create a new Button, Input or Card. Use theme tokens from styles/globals.css; never hard-code colours, spacing or radius. If the Figma MCP server returns a localhost source for an image or SVG, use it directly and do not add icon packages or placeholders. Validate the result against the screenshot at mobile and desktop widths before marking the task done. For the visual QA step, see our post on the screenshot and Playwright feedback loop in this series.

Frequently asked questions

Short answers to the questions developers and designers ask most about using the Figma MCP server with Claude Code.

Frequently Asked Questions

Want your Figma design system to drive the code, not a template?

Tech Arion builds websites with Claude Code on top of real design systems: Figma MCP wired into the repo, tokens mapped into Tailwind, component reuse rules in CLAUDE.md, and a visual check against the design before anything ships. If your AI-built pages drift from your brand, we can set up the pipeline with your team or build the site for you.

Sources & References

Sources fetched on 1 October 2026:

  1. 1.

    Figma. Set up the remote server - Figma MCP Server developer docs. Claude Code plugin install command, claude mcp add syntax with --scope user, /mcp authentication flow, remote endpoint mcp.figma.com/mcp.

    View Source
  2. 2.

    Figma. Set up the desktop server - Figma MCP Server developer docs. Enabling the desktop server in Dev Mode, local address 127.0.0.1:3845/mcp, claude mcp add command for figma-desktop.

    View Source
  3. 3.

    Figma. Tools and prompts - Figma MCP Server developer docs. Read and write tool list, React plus Tailwind default output, selection-based prompting desktop-only, clientFrameworks, generate_figma_design rate-limit exemption, create_design_system_rules prompt.

    View Source
  4. 4.

    Figma. Rate limits & access - Figma MCP Server developer docs. Tool-call limits by plan and seat, exempt tools, whoami for checking seats.

    View Source
  5. 5.

    Figma. Write to canvas - Figma MCP Server developer docs. use_figma via the Plugin API, Full seat requirement, Dev seats read-only, supported clients, current limitations.

    View Source
  6. 6.

    Figma. Code Connect integration - Figma MCP Server developer docs. CodeConnectSnippet wrappers, CLI vs UI mappings, Add instructions for MCP, best practices.

    View Source
  7. 7.

    Figma. code-connect repository README (GitHub). Organization and Enterprise plan requirement, template files as the maintained approach, framework parsers no longer updated.

    View Source
  8. 8.

    Figma. (24 March 2026). Agents, meet the Figma canvas - Figma blog. use_figma launch, skills including figma-use, free during beta then usage-based, quote from Cat Wu of Claude Code.

    View Source
  9. 9.

    Anthropic. Connect Claude Code to tools via MCP - Claude Code docs. Local, project and user scopes, .mcp.json approval, 10,000-token warning and 25,000-token default MCP output limit.

    View Source
  10. 10.

    shadcn/ui. MCP Server - shadcn/ui docs. Registry browsing and installation, components.json registries, Claude Code setup command and .mcp.json entry.

    View Source
  11. 11.

    Storybook. MCP server - Storybook docs. Preview status, development, docs and testing toolsets, components manifest framework support.

    View Source
  12. 12.

    Tailwind Labs. Theme variables - Tailwind CSS docs. @theme directive creating utility classes, :root for variables without utilities.

    View Source
  13. 13.

    Bobes, A. (2026). Figma MCP Server: Setup, Code Connect and Design-to-Code - a CTO guide. Observation that default output includes arbitrary values agents copy verbatim; comparison with Framelink.

    View Source
  14. 14.

    Wooldridge, G. (2026). Figma MCP + Claude Code Setup for Designers. Plugin-based setup walkthrough, Copy link to selection prompting, the six tools that do most of the work.

    View Source
Share:
Get in touch

Want this for your brand?

Read something here you would like running in your business? Tell us the goal and we will send a plan and a price.