Figma MCP Claude Code Setup: Remote, Desktop or Framelink
Figma MCP Claude Code setup: connect the official remote or desktop server, or community Framelink, sign in, verify with /mcp and pick the right option.
The Short Answer
To connect Figma MCP to Claude Code, run claude mcp add --transport http figma https://mcp.figma.com/mcp, start a new Claude Code session, type /mcp, select figma, choose Authenticate and click Allow access in the browser. That is Figma's official remote server, and it is what Figma recommends for most people.
There are two other options: Figma's desktop server, which runs inside the Figma desktop app, and the community Framelink server, which uses a personal access token. This guide sets up each one, then helps you choose.
Three Ways to Connect Figma to Claude Code
| Remote server (official) | Desktop server (official) | Framelink (community) | |
|---|---|---|---|
| URL or command | https://mcp.figma.com/mcp | http://127.0.0.1:3845/mcp | npx -y figma-developer-mcp --stdio |
| Auth | OAuth in the browser | Your signed-in desktop app | Figma personal access token |
| Needs desktop app | No | Yes | No |
| Seat and plan | Any; rate limits vary by seat | Dev or Full seat on a paid plan | Any account that can make a token |
| Write to canvas | Yes | No | No |
| Input | Figma links | Your selection in the desktop app | Figma links |
| Tools | Full set (read, write, Code Connect) | Smaller set (no remote-only tools) | Two |
The official server details come from Figma's developer docs. Framelink's come from its README and quickstart.
Option 1: Figma's Remote MCP Server (Recommended)
Install as a plugin
Figma's docs list the plugin as the recommended path, because it also installs Figma's agent skills:
claude plugin install figma@claude-plugins-official
Restart Claude Code if it was running, type /plugin, press the right arrow to open the Installed tab, select figma, press Enter, and press Enter again to sign in. Click Allow access in the browser. If the install command fails, your organization may have blocked plugins; use the manual command instead.
Or add the server manually
claude mcp add --transport http figma https://mcp.figma.com/mcp
That adds it to the current project only (Claude Code's default local scope). For every project:
claude mcp add --scope user --transport http figma https://mcp.figma.com/mcp
To share it with your team, use --scope project. That writes this to .mcp.json, with no secrets in it, because each teammate signs in with their own Figma account:
{
"mcpServers": {
"figma": {
"type": "http",
"url": "https://mcp.figma.com/mcp"
}
}
}
Sign in
- Start a new Claude Code session.
- Type
/mcpand select figma. - Select Authenticate, then click Allow access in the browser.
- You should see "Authentication successful. Connected to figma".
- Type
/mcpagain to confirm.
Claude Code stores the token and refreshes it for you. If you want the protocol details, see MCP authentication and OAuth.
Note that Figma only allows clients listed in its MCP catalog to connect to the remote server. Claude Code is one of them.
Option 2: Figma's Desktop MCP Server
Use this when you want Claude to work from whatever you have selected in Figma, without copying links.
Requirements: the Figma desktop app, and a Dev or Full seat on a Professional, Education, Organization, Government or Enterprise plan.
- Open the Figma desktop app and update it.
- Open a Figma Design file.
- With nothing selected, turn on Dev Mode with the toolbar toggle or
Shift + D. - In the right sidebar, find the MCP server section and click Enable desktop MCP server. A confirmation appears at the bottom of the screen.
Then add it to Claude Code:
claude mcp add --transport http figma-desktop http://127.0.0.1:3845/mcp
Restart Claude Code and check /mcp. There is no separate sign-in: the desktop app is the auth. The desktop server cannot write to the canvas, and Figma itself recommends the remote server unless you specifically want selection-based work.
Option 3: Framelink (Community Server)
Framelink MCP for Figma predates Figma's official server and is still popular. It calls the Figma REST API with your token and simplifies the response down to layout and styling data before passing it to the model, which keeps context small. It exposes two tools: get_figma_data and download_figma_images.
Create a token
In Figma, click your profile icon, open Settings → Security, scroll to Personal access tokens and click Generate new token. Framelink's quickstart warns that tokens with default scopes will not work. Tick at least file_content:read, file_metadata:read, current_user:read and the other scopes it lists, then copy the token once.
Add it to Claude Code
The command from Framelink's docs:
claude mcp add Framelink_Figma_MCP -- npx -y figma-developer-mcp \
--figma-api-key=YOUR-KEY --stdio
To keep the token out of the command arguments, pass it as FIGMA_API_KEY instead, which the server also reads:
claude mcp add framelink --env FIGMA_API_KEY=YOUR-KEY -- npx -y figma-developer-mcp --stdio
For a shared .mcp.json, use Claude Code's environment variable expansion so each person supplies their own token:
{
"mcpServers": {
"framelink": {
"command": "npx",
"args": ["-y", "figma-developer-mcp", "--stdio"],
"env": { "FIGMA_API_KEY": "${FIGMA_API_KEY}" }
}
}
}
Never commit a real token. Node.js must be installed for npx to work.
Which One Should You Choose?
- Choose the remote server if you want the full feature set: design context, screenshots, variables, Code Connect, and writing back to Figma (new files, diagrams, sending live UI to the canvas). It works without the desktop app and is Figma's recommended option.
- Choose the desktop server if you live in the desktop app and want Claude to act on your current selection. You need a paid plan with a Dev or Full seat.
- Choose Framelink if your seat hits the official server's limits, you want a token-based setup that works in scripts, or you prefer a small, lean tool output. You give up canvas writes and Code Connect.
You can install more than one. Give them different names (figma, figma-desktop, framelink) and tell Claude which to use in the prompt.
Rate Limits on the Official Server
From Figma's rate limits page, for tools that read data:
| Seat | Limit |
|---|---|
| View or Collab (any plan) | Up to 20 per month |
| Full or Dev, Professional | Up to 200 per day, 10 per minute |
| Full or Dev, Organization | Up to 200 per day, 15 per minute |
| Full or Dev, Enterprise | Up to 600 per day, 20 per minute |
Some write tools, such as create_new_file and generate_figma_design, are exempt. Figma says these limits can change at any time. Writing to the canvas needs a Full seat outside your drafts, and is free during the beta.
Verify and Try Your First Prompts
Run claude mcp list in your terminal or /mcp in a session. Every server you added should show as connected. Then copy a frame link in Figma (right-click → Copy link to selection) and try:
- "Implement this Figma frame as a React component with Tailwind: (paste link)."
- "What color and spacing variables are used in this Figma selection? Map them to our CSS variables."
- "Get a screenshot of this frame and compare it with the page at localhost:3000."
- "Export the icons in this frame as SVGs into public/icons."
- "Generate a FigJam diagram of our database schema from the models in this repo."
The official server works best when your codebase already has components to reuse. Its create_design_system_rules prompt generates a rules file so Claude writes code that matches your conventions.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
! Needs authentication on figma | OAuth not done yet | /mcp → figma → Authenticate |
figma-desktop fails to connect | Desktop server not enabled, or app closed | Open the app, enable desktop MCP server in Dev Mode, then restart Claude Code |
| No MCP server section in Dev Mode | Seat or plan does not qualify, or app is outdated | Update the app; check you have a Dev or Full seat on a paid plan |
| Rate limit errors | View or Collab seat, or heavy use | Fewer, more targeted calls, or a Dev/Full seat, or Framelink |
| Framelink permission (403) errors | Token missing required scopes or expired | Generate a new token with the scopes from the quickstart |
Framelink spawn npx ENOENT | Node.js not installed or not on PATH | Install Node.js and run the npx command once in a terminal |
| Huge responses on big files | Whole page requested | Link a single frame; let Claude use get_metadata first |
To inspect exactly what each tool returns, connect the server to the MCP Inspector.
Next Steps
Figma MCP gets better when Claude can check its output. Add Playwright MCP so Claude can open the page it built and compare it with the design, and the GitHub MCP server to open the PR. Find more design and frontend servers in the MCP server directory, and see the full Claude Code MCP guide for managing everything you add.
Frequently asked questions
How do I add the Figma MCP server to Claude Code?
- Run 'claude mcp add --transport http figma https://mcp.figma.com/mcp', start a new session, type /mcp, select figma and choose Authenticate. Click Allow access in the browser and the server shows as connected.
Is the Figma MCP server free?
- The remote server works with any Figma seat, but View and Collab seats are limited to about 20 read tool calls per month, while Dev and Full seats on paid plans get daily and per-minute limits. The desktop server needs a Dev or Full seat on a paid plan.
What is the difference between the official Figma MCP and Framelink?
- The official server from Figma uses OAuth, offers many tools and can write to the canvas. Framelink is a community server that uses a personal access token and two lean tools for reading design data and downloading images.
Do I need the Figma desktop app to use Figma MCP with Claude Code?
- No. The remote server at mcp.figma.com works without it. You only need the desktop app for the desktop server at 127.0.0.1:3845, which lets Claude work from your current selection.