Figma MCP Server

Feed real design data to your coding assistant — layout, tokens and components straight from Figma files.

Local serverstdiosseTypeScriptMIT 11.0k

What is the Figma MCP server?

Screenshot-driven design-to-code has a low ceiling: the model squints at pixels and guesses paddings. The Figma MCP server raises it by handing your assistant the design's actual structure — frames, auto-layout rules, spacing values, fills, typography and component hierarchy — pulled from the Figma API and simplified into something a model can act on precisely.

The Framelink server (the most widely used community implementation) works link-first: paste a Figma file or frame URL into your coding assistant, and it fetches that node's layout tree and styles, translating "this looks like a card" into 16px padding, 8px gap, 12px radius, #0F172A at 600 weight. The gap between generated UI and the design shrinks dramatically because the numbers are no longer guesses — they're read off the file.

It's read-focused by design: layout extraction plus image/icon export for the assets your build needs. That's the right scope for design-to-code; you're not asking the assistant to edit designs, just to implement them faithfully. (Figma has since shipped its own official Dev Mode MCP server inside the desktop app — worth a look if you're on a paid Dev seat; Framelink remains the simplest API-token route that works everywhere.)

Two practical tips. First, link to the specific frame you're implementing rather than a whole file — smaller payloads, better results. Second, well-named layers and components in Figma translate directly into better generated code; the model reads your layer names, so "Button/Primary" beats "Rectangle 47" every time.

Prep work that pays off

  • Use "Copy link to selection" so the URL carries a node-id. Without it the server fetches the entire page and the response balloons past anything useful.
  • Scoped personal access tokens need file content read permission. A token minted with only dev-resource scopes authenticates happily and then returns nothing you can build from.
  • The variables endpoint is gated to Enterprise plans, so on lower tiers expect raw hex values rather than token names — plan to map them onto your own theme after generation.
  • Image export writes assets to a local directory you specify in the request, so tell the assistant where your public/icons folder lives before asking for SVGs.

What you can do with it

Design-to-code that matches

Generated components use the file's real spacing, colors and type — not pixel guesses.

Asset extraction

Pull the icons and images a build needs, at the right formats, without manual exporting.

Design-token audits

Compare what the design system says against what the Figma file actually uses.

Available tools

ToolWhat it does
get_figma_dataFetch simplified layout, styles and component info for a file or specific node
download_figma_imagesExport images and icon assets (SVG/PNG) referenced by a design

How to install the Figma MCP server

{
  "mcpServers": {
    "figma": {
      "command": "npx",
      "args": ["-y", "figma-developer-mcp", "--stdio"],
      "env": { "FIGMA_API_KEY": "your-figma-personal-access-token" }
    }
  }
}

Create the token in Figma → Settings → Security → Personal access tokens (read scopes suffice).

Configuration

A Figma account and personal access token with read scopes. Node.js 18+.

VariableDescriptionRequired
FIGMA_API_KEYFigma personal access token with file read accesse.g. figd_...Yes

Example prompts to try

  • Implement this Figma frame as a React component with Tailwind: [figma link]
  • Export the icons used in this design as SVGs and wire them into the component.
  • List the text styles and color values used on this screen — do they match our tokens?

Frequently asked questions

No — Framelink is the leading community implementation, using your personal access token against the Figma API. Figma also ships an official Dev Mode MCP server in its desktop app for paid Dev seats; Framelink works everywhere a token does.