open-figma-mcp
Provides tools for reading and editing live Figma files through a local plugin, covering nodes, styles, variables, components, prototypes, exports, screenshots, design tokens, and screen generation.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
open-figma-mcp
Let any AI agent read and edit your live Figma file — no API token, no rate limits.
An MCP server that talks to Figma through a local plugin instead of the REST API. Works with Claude, Cursor, Codex, GitHub Copilot and any MCP client.
This is a fork of Hemil4/open-figma-mcp by Hemil Patel, maintained by RHK1335. It focuses on giving agents everything they need to turn a design into code.
Why
No token, no limits. REST-based servers stop at ~6 calls/month on free plans and 200/day on Dev seats. This one runs inside Figma Desktop, so the only limit is your machine.
Read and write. 85 tools covering nodes, styles, variables, components, prototypes and exports.
Stays local. The bridge listens on
127.0.0.1only. No OAuth, no hosted service.
Related MCP server: Figma Local MCP
What this fork adds
Area | What the agent now sees |
Strokes | Weight per side, inside/outside/center, dash pattern |
Sizing | Fixed / Hug / Fill, grow, stretch, absolute position, min/max, clipping |
Components | Main component (library or local), properties, variants, which property drives which layer |
Tokens | Names of bound variables and styles, with collection and library info |
Text | Weight, case, decoration, truncation, mixed-style ranges, pixel line height for |
Fills & effects | Hidden fills flagged, gradient stops, mask flag, per-corner radii, hex effect colors |
Search | Components on every page; |
Export | Multi-node SVG export runs in parallel (28 icons in ~30 ms) |
Empty or default fields are no longer written, so output is shorter and easier for agents to read.
How it works
AI agent ⇄ MCP server (Node.js) ⇄ ws://127.0.0.1:18765 ⇄ Figma plugin ⇄ your Figma fileYour AI tool starts the server. The plugin, running in Figma Desktop, connects to it, and every tool call makes the round trip. Several AI tools can share one plugin at the same time.
Quick start
1. Build
git clone https://github.com/RHK1335/open-figma-mcp.git
cd open-figma-mcp
npm install
npm run build2. Add it to your AI tool (use the full path to your clone)
claude mcp add -s user open-figma-mcp -- node /path/to/open-figma-mcp/server/dist/index.jsCodex CLI
codex mcp add open-figma-mcp -- node /path/to/open-figma-mcp/server/dist/index.js.mcp.json (Claude Desktop and most MCP clients)
{
"mcpServers": {
"open-figma-mcp": {
"command": "node",
"args": ["/path/to/open-figma-mcp/server/dist/index.js"]
}
}
}.vscode/mcp.json (Cursor, VS Code, GitHub Copilot)
{
"servers": {
"open-figma-mcp": {
"type": "stdio",
"command": "node",
"args": ["/path/to/open-figma-mcp/server/dist/index.js"]
}
}
}3. Install the Figma plugin
In Figma Desktop: Plugins → Development → Import plugin from manifest…
Pick
plugin/manifest.jsonfrom your clone.Open a file and run Plugins → Development → Open Figma MCP. It should say Connected.
If it says Disconnected, start a session in your AI tool first, then click Reconnect. After pulling new plugin code, just close and reopen the plugin window.
The
open-figma-mcppackage on npm is the original upstream release and does not include this fork's changes.
Tools
Group | Count | Examples |
Read | 19 |
|
Create & modify | 32 |
|
Styles & variables | 13 |
|
Pages, components, prototype | 11 |
|
Export & generation | 6 |
|
Screens & status | 4 |
|
Read — document & selection
Tool | Description |
| Serialized file tree (depth + detail level) |
| File name, pages, current page, selection count |
| List pages without loading trees |
| Currently selected nodes |
| Single node by ID |
| Multiple nodes by ID |
| Depth-limited tree for selection, page, node(s) or screen |
| Find nodes by name/type (page, whole document or subtree) |
| All text nodes under a scope |
| All nodes of given types under a scope |
| Viewport center and zoom |
Read — styles, variables, libraries
Tool | Description |
| Local paint, text, effect and grid styles |
| Variable collections and values |
| Components and sets with variants, across all pages |
| Plugin-data annotations |
| Fonts used, optionally available fonts |
| Prototype reactions on a node |
| Components, styles, variables, fonts, pages, file metadata |
| Search components, styles, variables, fonts, pages |
Create
Tool | Description |
| Frame with optional auto-layout, fill, parent |
| Rectangle with optional fill and radius |
| Ellipse or circle |
| Text node (font loaded automatically) |
| Base64 image as a rectangle fill |
| Turn a frame into a component |
| Section to organize frames |
Modify
Tool | Description |
| Update text content |
| Set or append solid fill / stroke |
| Opacity 0–1 |
| Uniform or per-corner radius |
| Direction, padding, spacing, alignment |
| Show or hide |
| Lock or unlock |
| Absolute rotation |
| Bring to front, send to back, … |
| Multiply, screen, overlay, … |
| Horizontal and vertical constraints |
| Move or resize |
| Rename one, or many by regex, prefix, suffix, numbering |
| Clone or move under a new parent |
| Find and replace across text (regex) |
| Shadows and blurs |
| Align and distribute nodes |
| Layout grid on a frame |
| Bounds, gaps, overlaps, alignment deltas |
| Delete nodes |
Styles & variables
Tool | Description |
| Create styles |
| Rename or recolor a paint style |
| Delete a local style |
| Link a style to a node |
| Bind a variable to a node property |
| New collection |
| Add a mode (e.g. Light/Dark) |
| Color, number, string or boolean variable |
| Value for a mode |
| Delete a variable |
Pages, components, prototype
Tool | Description |
| Manage pages |
| Group or ungroup |
| Combine components into a set |
| Swap an instance's main component |
| Detach an instance |
| Prototype reactions |
Export & generation
Tool | Description |
| PNG, JPG, SVG or PDF as base64 |
| Export straight to files |
| Multi-frame PDF |
| Styles and variables as design tokens |
| Diagram frame with boxes and connectors |
| App screen from a JSON element list |
Screens & status
Tool | Description |
| Bridge and plugin status |
| Sitemap → frames + screen registry |
| Read the registry |
| One screen by key, with live node details |
Screen registry
Turn a sitemap into frames once, then refer to screens by a stable key instead of node IDs:
// figma_create_screen_frames
{ "projectName": "CRM", "screens": [{ "key": "login", "title": "Login", "route": "/login" }] }
// any create/modify tool afterwards
{ "screenKey": "login", "text": "Welcome back", "fontSize": 32 }The registry is saved to .open-figma-mcp/screen-registry.json and keeps working when frames move or get renamed.
Configuration
Variable | Default | Purpose |
|
| Bridge port (all servers must use the same one) |
| current folder | Where exported files may be written |
| off |
|
|
| Screen registry location |
Security
The bridge has no authentication. Keep it on
127.0.0.1and never expose the port.The plugin manifest allows all network domains for easier development. Treat it as a development plugin, not a Community release.
Development
npm run build # server + plugin
npm test # 36 tests, Node's built-in runner
npm run typecheck # server types
npm run dev # run the server from sourceA new tool needs two matching edits: a ToolSpec in server/src/index.ts and a case in handleCommand in plugin/src/code.ts. Then run npm run build.
Credits & license
Original project by Hemil Patel. Fork changes by RHK1335. Released under the MIT License.
Related projects: figma-mcp-go · figma-mcp-bridge · cursor-talk-to-figma-mcp · gethopp/figma-mcp-bridge
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Give AI agents your deeepSpace design system: components, tokens, styles and code mappings.
1Give your AI agents a design superpower. Generate, edit, and publish publication-grade decks, reports, landing pages, resumes, and marketing visuals directly within your agent workflow. Delivering frontier-level design quality at 3× the speed and 53× lower cost -from conversational prompt to live link or vector PDF in minutes.
Build and manage your design system with AI: tokens, themes, components, icons, Figma and code.
Access and maintain design system docs, tokens, components, skills, and contexts across any project.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to inspect Figma selections, navigate pages, render previews, generate starter code, and submit user-approved canvas edits through a local bridge.3 npmMIT
- AlicenseAqualityBmaintenanceEnables an agent to read, edit, and build Figma designs from scratch — including style guides, variables, components, and screens — through a local plugin bridge to the open file's Plugin API, with no Figma token or REST API calls.2125 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to read, analyze, and modify Figma designs, including bulk style updates, accessibility audits, comment triage, and code generation from designs.679 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to read, create, edit, and organize Figma documents directly through a local plugin bridge, without needing a Figma AI subscription.3Apache 2.0