Large Language ModelsGenerate imagesGenerate videos

Figma MCP Server: Claude Code Setup, Tools and Skills

Set up the Figma MCP server in Claude Code with the plugin or one manual command, authenticate in two clicks, and see which read and write tools it exposes. Includes the five skills, Code Connect, rate limits by seat and fixes for common failures.

Figma MCP Server: Claude Code Setup, Tools and Skills
Cristian Da Conceicao
Founder of Picasso IA

Paste a Figma link into Claude Code and it can read the frame's layout, spacing, colors and components before it writes a single line of code. That is the whole pitch of the Figma MCP server, and the setup takes two commands and one browser click. Everything after that is about picking the right tools, staying inside the rate limits, and giving the agent enough context to stop inventing its own buttons.

This article walks through the exact setup, the tools the server exposes, the skills Figma ships for write workflows, a frame-to-code routine you can copy, and the limits that trip people up. The details come from Figma's developer documentation as it stands in October 2026, so check those pages if a command looks different on your machine.

What the Figma MCP Server Does

The Figma MCP server is a bridge. On one side sits your Figma file: layers, variables, components, FigJam boards and Make resources. On the other side sits an MCP client, here Claude Code. In between, a set of tools lets the agent ask questions about a design and, with the right permissions, change it.

Figma's docs describe five jobs. The server can create and modify native Figma content on the canvas, turn selected frames into code, extract design context such as variables, components and layout data, retrieve resources from Make files, and keep code aligned with your design system through Code Connect.

Designer and developer reviewing a website layout on a large monitor in a bright studio

The real change is from screenshots to structure. A screenshot tells a model what a button looks like. Design context tells it the button is an instance of a component, uses a named spacing variable, and sits in an auto-layout row with a fixed gap. Code written from that structure lands much closer to something you can merge.

Remote or Desktop Server

Figma offers two versions of the server, and the choice matters because some tools exist only on one of them.

Remote serverDesktop server
ConnectionFigma's hosted endpoint, https://mcp.figma.com/mcpLocal, through the Figma desktop app
Desktop app requiredNoYes
Tool selectionBroadest set, including all remote-only toolsSmaller set
Best forMost peopleFigma for Government deployments, local-only setups

Figma calls the remote server the best choice for most users, and that is what the rest of this article uses.

Who Can Use It

You need a Figma Design, Make or FigJam file, view or edit permission on it, and ideally a Full or Dev seat. Other seat types still connect, but with a far smaller monthly allowance (the numbers are in the limits section below). Only MCP clients listed in Figma's MCP catalog can connect, and Claude Code has its own setup page there.

Connect It to Claude Code

There are two routes and they end in the same place. Pick the plugin if you also want Figma's skills, and the manual command if you like a minimal config.

The Plugin Route

claude plugin install figma@claude-plugins-official

Figma recommends this one. The plugin bundles the MCP server settings and the Agent Skills for common workflows, so a single install gives you the server and the instructions that make the write tools behave.

Developer typing a command into a terminal on a laptop beside printed wireframes

The Manual Route

claude mcp add --transport http figma https://mcp.figma.com/mcp

Without a scope flag the server is registered only for the project you are standing in. If you want it everywhere, add --scope user:

claude mcp add --scope user --transport http figma https://mcp.figma.com/mcp

User scope means you do not repeat the install for every repository.

Authenticate and Verify

The server uses a browser sign-in, so nothing gets pasted into a config file.

  1. Start Claude Code and type /mcp.
  2. Select figma.
  3. Select Authenticate.
  4. Your browser opens. Click Allow Access.
  5. Back in the terminal you should see Authentication successful. Connected to figma.

Run /mcp once more to confirm the server shows as connected. Then ask Claude to call the whoami tool. It returns the authenticated user and plans, which tells you straight away whether you are on a seat with a usable allowance.

💡 Tip: If tools go missing mid-session, /mcp is the first place to look. It shows connection status and lets you re-authenticate without editing files.

The Tools Claude Code Gets

Figma's tools reference lists dozens of tools. You will use a handful daily, so start with those and ignore the rest until a task calls for them.

Overhead view of two neat columns of index cards and sticky notes on a pale oak desk

Read Tools for Design Context

ToolWhat it doesRemote only
get_design_contextExtracts design context for a layer or selectionNo
get_metadataReturns a sparse XML outline of a selectionNo
get_screenshotCaptures a screenshot of a selectionNo
get_variable_defsRetrieves the variables and styles used in a selectionNo
get_code_connect_mapReturns node ID to code component mappingsNo
get_code_connect_suggestionsSuggests component-to-code mappingsNo
get_context_for_code_connectProvides component metadata for templatesYes
search_design_systemSearches libraries for components, variables and stylesYes
get_librariesLists subscribed and available design librariesYes
get_figjamConverts FigJam diagrams to XMLNo
get_motion_contextExtracts animation dataNo
download_assetsDownloads exports and original source imagesYes

Start with get_design_context. It is the workhorse behind "build this frame." Pair it with get_screenshot so the agent has a visual target, and get_variable_defs so colors and spacing come from your tokens instead of guessed hex values. When a frame is huge, get_metadata gives a sparse outline you can use to map the page before pulling detail layer by layer.

Write Tools for the Canvas

ToolWhat it doesRemote only
use_figmaGeneral-purpose tool to create, edit and inspectYes
generate_figma_designGenerates design layers from interfacesYes
generate_diagramBuilds a FigJam diagram from MermaidYes
create_new_fileCreates a blank Design, FigJam or Slides fileYes
generate_imageGenerates a downloadable raster imageYes
upload_assetsUploads images into a Figma fileYes
add_code_connect_mapMaps a Figma node ID to a code componentNo
send_code_connect_mappingsConfirms suggested component mappingsNo

The server also ships tools for shaders and generative plugins, plus six weave_* tools that run credit-based Weave workflows. Most front-end work never touches them. One prompt is worth knowing by name: create_design_system_rules, which generates a rules file so the agent's context matches your codebase.

Skills That Make It Reliable

Write tools are powerful and easy to misuse. Figma's docs list skills that the agent needs for the matching workflows, and the plugin install brings them along. If you went the manual route, install Figma's skills for your client separately.

Designer pinning color swatches and type specimens to a cork board in late afternoon light

The Five Skills

SkillUsed for
figma-useFigma Design workflows
figma-use-figjamFigJam operations
figma-use-slidesFigma Slides
figma-shadersCreating and updating shaders
figma-generative-pluginsCreating and updating generative plugins

If your work is mostly reading designs and writing code, you will barely notice them. They matter the moment you ask Claude Code to build or edit something inside Figma.

Write a Design System Rules File

Even with perfect tools, the agent does not know your conventions. Run the create_design_system_rules prompt and let it draft a rules file, then trim it to what your team actually enforces and keep it in CLAUDE.md. A short example:

Figma to code rules:
- Reuse components from src/components/ui before creating new ones.
- Map Figma variables to our CSS tokens. Never hardcode hex values.
- Use the project spacing scale, not the pixel values from the frame.
- Treat Figma output as a reference. Match our file structure and naming.

Four lines like these remove most of the "why did it write a new button again" complaints.

From Frame to Component Code

Developer comparing a printed mobile mockup with a finished page on a laptop screen

The Frame to Code Loop

  1. In Figma, right-click the frame and copy the link to the selection. The remote server works from links, so no desktop app has to be open.
  2. Give Claude Code the link plus a clear instruction.
  3. Claude calls get_design_context, and usually get_screenshot and get_variable_defs too.
  4. Review the diff, run your dev server, and compare the result against the screenshot.
  5. Fix small differences by naming the layer, not by describing it vaguely.

A prompt that works well:

Implement this frame using our existing components and tokens.
Do not add new dependencies. Figma link: <paste link here>

After the first pass, check four things in the diff before you run anything:

  • Components: did it import yours, or write new ones?
  • Tokens: are colors and spacing read from variables, or hardcoded?
  • Responsive behavior: a frame shows one width, so ask for the breakpoints you actually ship.
  • States: hover, focus and disabled states often live in separate variants, so name them if you need them.

💡 Tip: Work one section at a time. A full-page frame produces a mountain of context and a mountain of code, and your read-call allowance drains faster than you expect.

Code Connect Mappings

Hands fitting a wooden block into a matching cut-out on a wooden interface mockup board

Code Connect is how Figma finds out that its Button component is really src/components/ui/Button.tsx. Once that mapping exists, Claude imports the real component instead of writing fresh markup.

Four tools handle the loop. get_code_connect_map reads existing mappings. get_code_connect_suggestions proposes new ones, send_code_connect_mappings confirms the ones you accept, and add_code_connect_map writes a single mapping directly. The last one is exempt from rate limits, which is handy when you are mapping a whole library.

Limits, Seats and Common Fixes

Kitchen timer and a notebook full of tally marks beside a closed laptop

Rate Limits by Seat

These figures come from Figma's rate limits and access page at the time of writing. Figma can change them, so confirm on the page before you plan a team rollout.

Seat typeStarterProfessionalOrganizationEnterprise
View, CollabUp to 20 per monthUp to 20 per monthUp to 20 per monthUp to 20 per month
Dev, FullUp to 200 per day, 10 per minuteUp to 200 per day, 15 per minuteUp to 600 per day, 20 per minuteNot specified in the table

The limits apply to tools that read data from Figma. add_code_connect_map, create_new_file and whoami are exempt.

Seats decide the experience. A designer on a View seat can connect and look around, but the daily workflow belongs to developers on Full or Dev seats. If only two people on your team hold those seats, make them the ones who generate code, and have everyone else review the pull requests.

💡 Tip: If Claude calls three read tools per frame, 200 calls per day disappears fast. Ask for one section, and let get_metadata pick the right layer before you pull full context.

Three Fixes for Common Failures

The tools do not show up. Run /mcp. If figma is listed but not connected, choose it and authenticate again. If it is missing entirely, repeat the install command and restart Claude Code.

The output ignores your components. This is a context problem, not a tool problem. Add the rules file to CLAUDE.md, create Code Connect mappings for your top ten components, and tell the prompt to reuse existing components before writing new ones.

You hit the limit mid-task. Narrow the scope, check your seat with whoami, and move heavy work to a Full or Dev seat. A View or Collab seat gives you roughly 20 calls a month, which is a demo, not a workflow.

Fill Frames with AI Photos and Video

Creative director holding a printed mountain lake photo against a monitor showing a hero layout

Photos and Clips for Hero Sections

Most Figma frames ship with gray placeholder rectangles where photography should go, and generated code inherits the blandness. Fill them with real-looking imagery before the handoff and the build looks finished on the first run.

On PicassoIA, the text-to-image catalog includes Seedream 5 Pro, GPT Image 2, Flux 2 Pro, Nano Banana Pro and P Image. Generate a hero photo, then drop it into the frame by hand or ask Claude to push it in with upload_assets. Figma has its own generate_image tool, but a dedicated image model gives you more control over lens, light and composition.

For motion, turn the same still into a short clip with a video model such as Seedance 2.5 Lite, Wan 3, Veo 3.1 Lite, LTX 2.5 Fast or Kling v3 Video. Check each model page for its image input option. A five-second loop behind a headline is often all a landing page needs.

Use Claude Sonnet 5 on PicassoIA

The same platform can also do the thinking. Claude Sonnet 5 runs on PicassoIA as a text model that reads images, which makes it a quick way to draft the rules file from a screenshot of your design system.

  1. Open the Claude Sonnet 5 page.
  2. Attach a screenshot of your component library in the image field.
  3. Paste a prompt such as: "List the spacing, color and typography tokens in this screenshot and write them as a short list of rules for a CLAUDE.md file."
  4. Set effort. The default, low, disables thinking for the fastest and cheapest reply. Use medium or high when the output must reason across many components, and xhigh or max for tricky multi-file work.
  5. Leave max tokens at the 8,192 default, or lower it for short answers.
  6. Add a system prompt such as "You write concise engineering rules for a React codebase" so every reply follows the same role.

💡 Tip: Heavier reasoning is available from Claude Fable 5 and Claude Opus 4.7 on the same platform.

Try It on Picasso IA

Smiling creator working on a laptop at a wooden cafe table by a sunny window

You now have the full loop. Connect the server, add a rules file, build one section at a time, and map your components with Code Connect so the output keeps improving.

The part that is easy to skip is the imagery. A finished interface needs real photos and a bit of motion, and Picasso IA gives you the models for both in one place. Pick an image model, describe the hero shot you want, and see how it changes the frame you just built. Then try one of the video models on that same photo and compare the two versions side by side. Open PicassoIA and make your first hero image today.

Share this article