A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
Figma MCP server — 46 tools for design system analysis, token extraction, accessibility auditing, and read/write ops via
AI-powered Figma integration for Claude. 46 tools for design system analysis, token extraction, accessibility auditing, and full read/write operations — all through natural language.
Quick Start · Features · Tools · Troubleshooting · Architecture
| 🔍 Read & Analyze | Pull file trees, components, variables, styles, comments, and version history straight into Claude. |
| ✍️ Write Operations | Create and edit nodes, text, fills, variables, modes, and components via the Desktop Bridge plugin. |
| 🎯 Design Systems | Full design-system kits, 3-tier token architecture, and auto-generated component docs. |
| ♿ Accessibility | WCAG 2.2 AA audit and design-vs-code token parity checks. |
| 🖼️ Asset Export | Render any node to PNG / SVG / PDF / JPG. |
| 🔗 Multi-host | Drive the same Figma file from Claude Desktop and Cowork at the same time. |
git clone https://github.com/plugin87/figma-remote-server.git
cd figma-remote-server
npm install
npm run build
design-lazyyyfigd_...)cp .env.example .env
Open .env and paste your token:
FIGMA_ACCESS_TOKEN=figd_your_token_here
Edit the config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"design-lazyyy-figma": {
"command": "node",
"args": ["/full/path/to/figma-remote-server/dist/local.js"],
"env": {
"FIGMA_ACCESS_TOKEN": "figd_your_token_here"
}
}
}
}
💡 Tip: Run
pwdin the project folder to get the full path.
⚠️ Node version issue? Use the full path to Node 18+:
hljs language-json"command": "/Users/yourname/.nvm/versions/node/v20.x.x/bin/node"Find your node path with
which node.
Quit completely (Cmd+Q) → reopen.
Type in Claude Desktop:
Check Figma status
You should see:
| Result | Meaning |
|---|---|
status: "connected" | ✅ API works |
bridge.status: "connected" | ✅ Write operations ready |
bridge.status: "disconnected" | ⚠️ Open the Desktop Bridge plugin (Step 7) |
Write tools (create nodes, edit text, manage variables) need the Figma Desktop plugin:
figma-remote-server/design-lazyyy-remote-server/manifest.jsonDone! You can now create/edit nodes, variables, and more via Claude. 🎉
| Tool | Description |
|---|---|
figma_get_status | Check API + Bridge connection |
figma_get_file_data | Get file document tree |
figma_get_file_metadata | Get file metadata |
figma_get_file_versions | Get version history |
figma_navigate | Generate deep link to node |
figma_get_variables | Extract variables + multi-format export |
figma_get_styles | Extract styles + code export |
figma_get_component | Get component spec |
figma_get_component_image | Render nodes as PNG/SVG/PDF/JPG |
figma_get_comments | Get all comments |
figma_post_comment | Post a comment |
figma_delete_comment | Delete a comment |
figma_get_design_system_kit | Full design system analysis |
figma_lint_design | WCAG 2.2 AA accessibility audit |
figma_check_design_parity | Design vs code token comparison |
figma_generate_component_doc | Auto-generate component docs |
| Tool | Description |
|---|---|
figma_execute | Run arbitrary Plugin API code |
figma_create_variable | Create a variable |
figma_update_variable | Update variable values |
figma_delete_variable | Delete a variable |
figma_rename_variable | Rename a variable |
figma_create_variable_collection | Create a collection |
figma_delete_variable_collection | Delete a collection |
figma_add_mode | Add a mode (e.g. Dark) |
figma_rename_mode | Rename a mode |
figma_batch_create_variables | Batch create (max 100) |
figma_batch_update_variables | Batch update (max 100) |
figma_setup_design_tokens | Setup 3-tier token architecture |
figma_resize_node | Resize a node |
figma_move_node | Move a node |
figma_set_fills | Set fill colors |
figma_set_strokes | Set strokes/borders |
figma_set_text | Set text content + font |
figma_set_image_fill | Set image fill |
figma_clone_node | Duplicate a node |
figma_delete_node | Delete a node |
figma_rename_node | Rename a node |
figma_create_child | Create child node |
figma_create_slot | Create a slot (content placeholder) on a component |
figma_add_component_property | Add property (BOOLEAN/TEXT/SLOT/INSTANCE_SWAP/VARIANT) |
figma_instantiate_component | Create component instance |
figma_set_description | Set component description |
figma_arrange_component_set | Auto-arrange variants grid |
| Tool | Description |
|---|---|
figma_get_console_logs | Get plugin console logs |
figma_clear_console | Clear console logs |
figma_watch_console | Watch bridge status + logs |
http://localhost:9223/diagnostics
Check Figma status ดู bridge.statusdisconnected:
unavailable:
lsof -i :9223 เพื่อเช็คlsof -i :9223-9232 เพื่อเช็ค process ที่ใช้ portset_text ต้องมี font ที่ใช้ติดตั้งอยู่ในเครื่องfigma_execute error: "expecting ;"figma_execute ถูกรันด้วย parser แบบ ES5 เท่านั้นvar (ไม่ใช่ const/let), function(){} (ไม่ใช่ =>), '+' (ไม่ใช่ template literal), .then() (ไม่ใช่ async/await)Claude Desktop / Cowork / Cursor / VS Code
│
│ MCP (stdio)
▼
┌─────────────────────────────┐
│ Design Lazyyy MCP Server │
│ ┌───────────────────────┐ │
│ │ 46 Tools │ │
│ │ Figma REST API │ │
│ │ LRU Cache │ │
│ └───────────────────────┘ │
│ │ │
│ HTTP Bridge :9223–9232 │
└─────────────────────────────┘
│
│ HTTP Polling (multi-host)
▼
┌─────────────────────────────┐
│ Figma Desktop Plugin │
│ ┌───────────────────────┐ │
│ │ Plugin API Access │ │
│ │ Variable CRUD │ │
│ │ Node Manipulation │ │
│ └───────────────────────┘ │
└─────────────────────────────┘
npm install # Install dependencies
npm run build # Build TypeScript
npm run dev # Watch mode
npm run lint # Lint with Biome
npm run format # Format with Biome
figma_execute ES5 guidance — the tool description now spells out that code is evaluated by an ES5-only parser, so the model emits ES5-compatible JavaScript (no arrow functions, template literals, const/let, or async/await) and avoids expecting ';' parse errors on complex commands.MIT © Design Lazyyy
Built with ❤️ by Design Lazyyy
mcp-language-server gives MCP enabled clients access semantic tools like get definition, references, rename, and diagnos
MCP server integration for DaVinci Resolve Studio
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots