A free, two-way Figma MCP server for coding agents.
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Pairs with a Figma plugin, not a Dev Mode seat.
About · Setup · Skills · Tools · Plugin · FAQ · Contributing
About
Figwright connects an **MCP server** to a **Figma plugin** over a local WebSocket relay, so an AI agent (Claude Code, Cursor, Codex, or any other MCP client) can work _with_ Figma instead of just looking at it.
It works in both directions:
**Read**: turn a Figma selection into framework-aware code, grounded on faithful, de-duplicated design context (layout, typography, variables, components).
**Write**: author and edit the canvas directly, from frames and text to auto-layout, styles, variables, components, whole screens.
Everything runs on your machine: the server, the relay, and the plugin. Your designs are never sent anywhere.
Why Figwright
- **Not gated**: the official Dev Mode MCP is behind a paid Dev Mode seat. Figwright runs on the free tier.
- **Bidirectional**: not read-only. **121 tools** span reading _and_ writing the canvas, so an agent can both implement designs and build them.
- **Provider-first codegen**: Figwright detects your real stack (framework + styling system) and reuses your existing components, tokens, and icons, instead of emitting generic markup you have to rewrite.
- **One agent per file**: several agents can work at once, each claiming its own open Figma file. Switching tabs no longer sends one agent's edits into another's design — see working across files.
- **Open & extensible**: the read/write workflows ship as installable skills you can adopt or fork.
Setup
You need an **MCP client** (Claude Code, Cursor, …), **Node.js 20.19+ or 22.12+**, and **Figma**. The free Figma tier is enough, though the desktop app is needed to import the plugin. The server runs via npx as its own process, so its Node version is independent of the one your project builds with; Node 18/21 and 22.0–22.11 are not supported.
1. Add the server to your MCP client
For Claude Code, add this to your .mcp.json (other clients use the same shape):
npx fetches and runs the published server, so no global install is needed.
2. Install the Figma plugin
The plugin isn't on the Figma Community marketplace yet, so install it from the latest release:
1. Download the plugin zip from the **latest GitHub Release** and unzip it.
2. In the Figma **desktop app**: **Menu → Plugins → Development → Import plugin from manifest…** and pick the unzipped manifest.json.
3. Connect
Open the Figwright plugin in Figma (**Plugins → Development → Figwright**). It connects to the local server automatically and shows **Connected**. Ask your agent to run ping to confirm the link.
4. (Optional) Install the skills
The skills make agents reach for Figwright at the right moment and follow the grounded workflows:
5. Try it
With a frame selected in Figma, prompt your agent:
> _Code this Figma selection as a React component._
or, the other direction:
> _Build a pricing section in Figma from this spec._
Skills
Agent skills orchestrate Figwright's tools. They are model-invoked: your agent loads one automatically when the task matches its description.
| Skill | What it does |
| :------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |
| figma‑codegen | Turn a Figma selection into framework-aware code, grounded on your stack and existing components. |
| figma‑build | Build a Figma design from code or a description, reusing the file's existing components and styles. |
Install across any supported agent with the skills CLI:
> [!NOTE]
> Skills need the @figwright/mcp server connected. On their own they have no tools to drive.
Tools
Figwright exposes **121 MCP tools** in three groups:
- **Read**: selection, document and node inspection, styles, variables, components, fonts, prototype reactions and flows, motion (animation) state, screenshots, original image-fill assets, PDF export, and video export of animated frames (MP4 / GIF / WebM); plus list_files / use_file for working across more than one open Figma file at once.