Figma MCP Server: Tools, Seats, and Rate Limits
Yes — Figma builds and maintains its own MCP server, and it’s the one you want. There are two versions: a remote server at https://mcp.figma.com/mcp that Figma hosts and recommends for most people, and a desktop server that runs locally at http://127.0.0.1:3845/mcp alongside the Figma desktop app, kept around for specific organization and enterprise needs. Both let an AI coding agent read your design files and generate code from them. The remote one also writes back to the canvas.
If you’ve seen it called the “Dev Mode MCP server,” that was the original name when Figma launched it. The docs now just say Figma MCP server, and the remote version has grown well past a Dev Mode feature — it creates files, uploads assets, searches your design system, and turns live web UI into editable layers.
Figma is one of many — the complete list of MCP servers covers every app that ships one, grouped by category.
What the Figma MCP server exposes
MCP (Model Context Protocol) is the open standard that lets an AI client talk to an outside app through a shared interface. Figma’s server exposes roughly 25 tools. The ones that matter in practice:
Reading designs, which is what most people came for:
get_design_context— the workhorse. Point it at a frame and it extracts the design as code, defaulting to React and Tailwind.get_variable_defs— pulls the variables and styles in a selection, so generated code uses your tokens instead of hardcoded hex values.get_metadata— a sparse XML map of layer properties, useful for orienting an agent in a big file before it burns context on details.get_screenshot— a visual render of the selection, so the model can check its own output against the design.get_code_connect_map/add_code_connect_map— maps Figma node IDs to real components in your codebase.
Writing, which is newer and partly in beta:
use_figma(beta) — the general-purpose write tool: create, edit, delete, or inspect objects in a file.create_new_file— blank Design, FigJam, or Slides files.generate_figma_design(beta) — sends live UI from your browser, including localhost, back into Figma as design layers.generate_diagram(beta) — FigJam diagrams from Mermaid syntax.upload_assets/download_assets— PNG, JPG, GIF, and WebP in and out.search_design_system/get_libraries— finds components, variables, and styles across your subscribed libraries.
The write-to-canvas capability is the significant recent addition. Figma’s docs are explicit that it’s provisional: “This will eventually be a usage-based paid feature, but is currently available for free during the beta period.” Plan for it to start costing money.
Remote or desktop — pick the remote one
Figma’s own guidance is unambiguous: the remote server is “the version most users need and has the broadest set of features.” It needs no desktop app, and the asset, search, and write tools are remote-only.
The two also work differently in daily use. The desktop server is selection-based — it reads whatever you currently have selected in the Figma desktop app, so you’re switching windows constantly. The remote server is link-based — you right-click a layer, choose Copy link to selection, and paste that URL into your agent. That sounds like a small difference and isn’t: link-based means you can queue up several frames in one prompt, and it works from a machine that doesn’t have Figma open at all.
Reach for the desktop server only if your org blocks remote MCP endpoints.
The seat requirement and the rate limits
This is the part that trips people up, and it’s worth checking before you plan a sprint around it. Access is gated by seat type first, plan second.
Figma’s setup docs list the requirement as “a full or dev seat (other seats may have usage limits with the MCP server).” That parenthetical is doing a lot of work. Per Figma’s rate limits page:
- View and Collab seats get up to 6 tool calls per month — on every plan, Enterprise included. Six calls a month is a demo, not a workflow. If you’re a PM or a stakeholder hoping to generate code from designs, this is the wall you’ll hit.
- Dev and Full seats get hundreds of calls per day, scaling with the plan: a couple hundred per day on the lower tiers with a per-minute cap, up to 600/day on Organization, with Enterprise the most permissive.
A few tools are exempt from rate limiting entirely, including whoami, add_code_connect_map, and generate_figma_design. Also note the file-level requirement: you need edit or view permission on the file in question, so the server can’t reach designs you couldn’t open yourself.
Setting it up
Only clients listed in Figma’s MCP Catalog can connect — Figma gates this deliberately, and new clients join a waitlist. Currently covered: Claude Code, Codex, Cursor, VS Code, Gemini CLI, and Xcode.
For Claude Code, Figma now recommends the plugin over a raw MCP entry, because it bundles prebuilt Agent Skills alongside the server config:
claude plugin install figma@claude-plugins-official
Then restart Claude Code, run /plugin, arrow over to the Installed tab, select figma, and press Enter to start authentication. An external page opens; click Allow access; return to the terminal. The server should show as connected.
If you’d rather wire it up directly, the plain MCP form works too:
claude mcp add --transport http figma https://mcp.figma.com/mcp
Codex, Cursor, VS Code, Gemini CLI, and Xcode each have their own setup article in Figma’s help center — the endpoint is the same, only the config syntax differs. If you’re running it in Codex specifically, our Codex MCP guide covers how the config file is structured there.
Getting code you’d actually merge
The complaint you’ll see most in practice is that the output is close but generic — the layout is right, the components aren’t yours. Three things move the needle:
- Set up Code Connect. Without it, the agent invents component names. With it,
get_code_connect_maptells the model that this frame is your existing<Button variant="primary">, not a fresh div. This is the single biggest quality lever. - Use variables, not raw values.
get_variable_defsonly returns tokens if the design uses them. A file styled with loose hex codes produces code with loose hex codes. - Select the right scope. Pointing at an entire page floods the context window and the output degrades. One frame or component at a time, using
get_metadatafirst if the agent needs to orient itself.
Where the Figma MCP stops
None of this is a knock on the protocol — it’s the shape of MCP itself.
MCP servers wait to be asked. The protocol has no scheduler and no event mechanism — its maintainers acknowledge that change detection today means polling — so an MCP connection can answer a question but cannot notice something on its own.
That matters more for design workflows than it first appears. A design system is a thing that changes, and the changes are the events you care about: a component gets deprecated, a color token is renamed, a spec is marked ready for dev. None of those can start anything. Your agent finds out the token changed the next time you happen to ask it, which in practice is after someone shipped against the old value.
The same holds for the assistants themselves.
Scheduled work is no longer the dividing line — ChatGPT and Claude both run tasks on a timer without anyone watching. The line that still holds is event triggers. Nothing kicks off because something happened in one of your apps; it kicks off because the clock said so, which means anything time-sensitive waits for the next run.
So: the Figma MCP is an excellent way to pull design context into a coding session and, increasingly, to push structured work back onto the canvas. It is not a way to make anything happen because something in Figma changed.
Design work that runs without a chat open
That event-driven gap is where a workflow tool belongs instead. Carly connects to Figma natively alongside ~260 other apps, and its workflows are triggered and scheduled rather than asked — so a comment left on a frame can post to the right Slack channel with the file link, a design marked ready for dev can open a Linear ticket with the spec attached, and a weekly digest of every file touched in a project can land in your team channel on Monday morning without anyone prompting it.
The non-AI steps — the routing, matching, and moving between apps — are free and unlimited. The AI steps, like summarizing what actually changed in a file or drafting the ticket description, start at $35/month.
That’s a different job from what the MCP server does, and the two sit fine next to each other: MCP for the design-to-code loop inside your editor, a workflow for the things that need to happen when you’re not there.
FAQ
Does Figma have an official MCP server?
Yes. Figma builds and maintains it. There’s a remote server at https://mcp.figma.com/mcp that Figma recommends for most users, and a local desktop server at http://127.0.0.1:3845/mcp that runs with the Figma desktop app and is aimed at organization and enterprise cases with stricter requirements.
Is the Figma MCP server free? Access comes with your Figma plan, but it’s metered by seat type. View and Collab seats get up to 6 tool calls per month regardless of plan; Dev and Full seats get hundreds per day, scaling with the plan tier. Separately, Figma has said the write-to-canvas capability will eventually be a usage-based paid feature and is only free during the current beta.
Do I need Dev Mode or a paid seat for the Figma MCP server? Practically, yes. Figma lists a full or dev seat as the requirement, and other seat types are capped low enough that they aren’t usable for real work. Both the remote and desktop servers assume that seat.
Can I use the Figma MCP server with ChatGPT or Claude’s desktop app? Only clients in Figma’s MCP Catalog can connect, and that list is currently editor- and CLI-oriented: Claude Code, Codex, Cursor, VS Code, Gemini CLI, and Xcode. General chat clients aren’t on it. If you’re looking at MCP from the ChatGPT side, which MCP servers ChatGPT can actually use covers what connects there today.
Can the Figma MCP server react when a design changes? No. MCP has no triggers and no scheduler — a server answers when an agent asks it something, and nothing fires because a component was updated or a frame was marked ready for dev. For event-driven work across Figma and the tools around it, you need a workflow tool rather than an MCP server.
Ready to automate your busywork?
Carly schedules, researches, and briefs you—so you can focus on what matters.
See what people say
"Before Carly, I relied on a Calendly link, but the whole process felt impersonal and not very professional. Carly changed that by handling all the back-and-forth, so I'm no longer stuck in endless email threads trying to line up schedules.
Now Carly reaches out to candidates, shares my real-time availability, lets them pick a slot, then sends a Zoom link and drops it straight into my calendar. She sends reminders to both of us before each call, which has significantly reduced no-shows and last-minute confusion.
On top of scheduling, Carly acts like a full executive assistant, sending me my schedule the night before so I can prepare for each call. It reminds me of the old x.ai assistant, but Carly is noticeably smarter, faster, and better suited to my healthcare recruitment business."


