Read, create, and modify Figma designs programmatically via MCP, empowering AI to execute Figma changes safer, cleaner, and faster.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
claude mcp add figma-edit-mcp -- npx -y --package{
"mcpServers": {
"figma-edit-mcp": {
"command": "npx",
"args": ["-y", "--package"],
"env": {
"FIGMA_EDIT_MCP_SOCKET_HOST": "<figma_edit_mcp_socket_host>"
}
}
}
}FIGMA_EDIT_MCP_SOCKET_HOSTResumen de MCP Servers
# Figma Edit MCP
[](https://www.npmjs.com/package/figma-edit-mcp)
[](https://www.npmjs.com/package/figma-edit-mcp)
[](https://github.com/neozhehan/figma-edit-mcp/actions/workflows/ci.yml)
[](https://edges.ideo.com/emerging-wave-sessions/figma-edit-mcp)
[](https://glama.ai/mcp/servers/neozhehan/figma-edit-mcp)
Connect AI assistants to Figma via Model Context Protocol to read designs, create and modify elements, and manage design systems programmatically.
This plugin empowers your AI assistant to become a Figma assistant, executing design updates **Safer**, **Cleaner**, and **Faster** than a human ever could.
This plugin allows you as a Designer to focus purely on creative decision-making, leaving the error-prone & repetitive manual changes to the automated systems.
🏆 **Featured by IDEO:** [Letting AI edit live Figma files without trusting it to behave](https://edges.ideo.com/emerging-wave-sessions/figma-edit-mcp)
📖 **Documentation:** [neozhehan.github.io/figma-edit-mcp](https://neozhehan.github.io/figma-edit-mcp/)
## What This Does for You
The project has three goals: **Safer**, **Cleaner**, and **Faster**.
- 🛡️ **Safer:** The plugin checks every action the AI requests before that action runs. If an action would damage the file, the plugin refuses it and tells the AI why. For example, the plugin will not delete a color variable while layers still use it. Figma itself does not warn you when you delete a variable that is in use — the deletion leaves broken references that are very hard to find afterwards.
- ✨ **Cleaner:** Because damaging actions are refused, the file does not accumulate broken references or leftover values. Bulk updates cover every layer that matches your request, not just the layers a person remembers to check.
- ⚡ **Faster:** The AI applies one change across hundreds of layers in seconds. For example, it can replace a product name in every text layer on a page, or copy the overrides from one component instance to fifty others.
These goals support each other: when the plugin refuses mistakes, the file stays consistent, and a consistent file is easier for both you and the AI to work with.
[Read the full reasoning behind these goals →](DESIGN_PHILOSOPHY.md)
## What the AI Cannot Do to Your File
AI assistants sometimes invent things. An AI can name a layer that does not exist, or misremember which layer it was editing. This plugin does not depend on the AI being right. The plugin checks every edit itself, inside Figma, and refuses any edit that fails a check. The AI cannot skip these checks.
What the plugin enforces:
1. **The AI can only edit the area you chose.** When you connect, you choose one page or one frame for the session. The plugin refuses any edit outside that area. If you choose no area, the AI can read the file but cannot edit any layers.
2. **Every edit must name its exact target layer.** The plugin compares the layer name the AI supplies with the real layer's name. If the names do not match, the plugin refuses the edit. This stops the AI from editing a layer it invented or misremembered.
3. **A bulk edit with one bad item changes nothing.** The plugin validates every item in a bulk edit before it changes the first one. If any item fails validation, the plugin rejects the entire bulk edit.
4. **Protected layers stay protected.** The plugin refuses edits to locked layers and to assets from shared libraries. It also refuses to add, delete, or move layers inside a component instance.
5. **The AI cannot delete its own working area.** The plugin refuses any action that would delete or replace the page or frame you assigned for the session.
6. **Variables and styles require separate permission.** Editing your variables or styles requires its own checkbox in the plugin, and both checkboxes are off by default. You grant that permission; the AI cannot grant it to itself.
One honest limit: the plugin checks *where* an edit happens and *which layer* it touches. It cannot check whether the edit is the one you wanted. A wrong edit that follows all the rules will go through. So you review the AI's work the same way you would review a colleague's work.
The exact rules, and the conditions under which each one holds, are written down in **[SAFETY.md](SAFETY.md)**. That document is for developers. *(Your AI assistant loads the same rules at runtime via the `figma-edit` skill or the `figma-edit://guide/*` resources.)*
## How the Work Is Divided
You do not need to know every Figma feature to direct this system. The work splits three ways:
- **You** decide what the design should be. You describe the change in plain language, and you judge the result. You do not need to know which Figma menu or panel performs the change.
- **The AI assistant** turns your request into specific Figma operations and carries out the repetitive work across many layers.
- **The plugin** runs inside Figma, checks each operation, and refuses the unsafe ones.
The AI contributes scale. The plugin contributes protection. You contribute the design judgment.
## Supported AI Integrations
- Cursor
- GitHub Copilot (VS Code)
- Google Antigravity
- Claude Code (VS Code & CLI)
- Claude Desktop (Chat, Cowork & Code)
- LM Studio
## Quick Start
The quickest way to run Figma Edit MCP is directly from the NPM registry. You do **not** need to clone this repository.
### 1. Configure your AI assistant
Add the server to your AI assistant's MCP configuration:
```json
{
"mcpServers": {
"FigmaEdit": {
"command": "npx",
"args": ["-y", "figma-edit-mcp"]
}
}
}
```
The config file location depends on your host — see [Integration-Specific Setup](#integration-specific-setup) below. Bun users can substitute `bunx` for `npx`; both resolve the same package.
### 2. Start the WebSocket bridge
In a terminal, start the bridge that connects the MCP server to the Figma plugin. Keep this terminal running:
```bash
npx -y --package figma-edit-mcp figma-edit-mcp-socket
```
### 3. Install the Figma plugin
The Figma plugin ships inside the NPM package. Install the package once to materialize the plugin files on disk:
```bash
# In any directory of your choosing (e.g., ~/figma-edit-mcp/)
npm install figma-edit-mcp
```
Then in the Figma desktop app:
1. Open **Plugins → Development → Import plugin from manifest…**
2. Select `node_modules/figma-edit-mcp/figma_plugin/manifest.json` from the directory above.
The plugin is now available under Plugins → Development in any Figma file.
### 4. (Optional) Install the agent skill
The package also ships a cross-tool **skill** that teaches your agent the server's safety constraints, error recovery, and tool selection — loaded on demand, so it costs almost nothing until needed. Agents that support the open `SKILL.md` standard (Claude Code, GitHub Copilot, OpenAI Codex, Cursor, Gemini CLI, Google Antigravity) discover it once it's in their skills directory:
```bash
# copy the skill into your agent's skills directory (path varies by host)
cp -R node_modules/figma-edit-mcp/skills/figma-edit ~/.claude/skills/
```
Clients that don't support skills can still reach the same guidance over the MCP connection as resources under `figma-edit://guide/*` — no install required.
---
*Running from a local clone? See [CONTRIBUTING.md](./CONTRIBUTING.md) for the contributor-only `--local` development workflow.*
---
## Integration-Specific Setup
Paste the JSON snippet from the Quick Start into your host's MCP config file:
| Integration | Config File Location | Notes |
|---|---|---|
| Cursor | `~/.cursor/mcp.json` | Restart Cursor after editing |
| VS Code / GitHub Copilot | `~/Library/Application Support/Code/User/mcp.json` | Requires VS Code 1.102+ with Copilot; enable Agent Mode |
| Google Antigravity | `~/.gemini/antigravity/mcp_config.json` | Restart Antigravity to load |
| Claude Desktop | `~/Library/Application Support/Claude/claude_desktop_config.json` | — |
| Claude Code (CLI / VS Code) | run `claude mcp add FigmaEdit npx figma-edit-mcp` | No file edit needed |
| LM Studio | edit `mcp.json` via the Developer tab | Or use a deeplink, if provided |
---
## Manual Configuration
If you prefer to edit your host's MCP config directly, paste this snippet into the appropriate config file:
```json
{
"mcpServers": {
"FigmaEdit": {
"command": "npx",
"args": ["-y", "figma-edit-mcp"]
}
}
}
```
| Integration | Config File Location |
|---|---|
| Cursor | `~/.cursor/mcp.json` |
| VS Code / Copilot | `~/Library/Application Support/Code/User/mcp.json` |
| Antigravity | `~/.gemini/antigravity/mcp_config.json` |
| Claude Desktop | `~/Library/Application Support/Claude/claude_desktop_config.json` |
| LM Studio | Use the in-app editor (via Developer tab) or edit `mcp.json` |
Running from a local clone? See [CONTRIBUTING.md](./CONTRIBUTING.md) for the `--local` workflow.
---
## Contributing
For local development — building from source, running the bridge from a clone, and the `--local` integrate workflow — see [CONTRIBUTING.md](./CONTRIBUTING.md).
---
## Windows + WSL Guide
To allow Figma (running on Windows) to connect to the bridge (running inside WSL), the bridge needs to listen on `0.0.0.0` instead of `localhost`:
```bash
npx -y --package figma-edit-mcp figma-edit-mcp-socket --host 0.0.0.0
# or via environment variable:
FIGMA_EDIT_MCP_SOCKET_HOST=0.0.0.0 npx -y --package figma-edit-mcp figma-edit-mcp-socket
```
Then point the Figma plugin's WebSocket address at your WSL instance's IP.
---
## Usage
1. Start the WebSocket bridge: `npx -y --package figma-edit-mcp figma-ediLo que la gente pregunta sobre figma-edit-mcp
¿Qué es neozhehan/figma-edit-mcp?
+
neozhehan/figma-edit-mcp es mcp servers para el ecosistema de Claude AI. Read, create, and modify Figma designs programmatically via MCP, empowering AI to execute Figma changes safer, cleaner, and faster. Tiene 9 estrellas en GitHub y se actualizó por última vez today.
¿Cómo se instala figma-edit-mcp?
+
Puedes instalar figma-edit-mcp clonando el repositorio (https://github.com/neozhehan/figma-edit-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar neozhehan/figma-edit-mcp?
+
Nuestro agente de seguridad ha analizado neozhehan/figma-edit-mcp y le ha asignado un Trust Score de 87/100 (tier: Trusted). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene neozhehan/figma-edit-mcp?
+
neozhehan/figma-edit-mcp es mantenido por neozhehan. La última actividad registrada en GitHub es de today, con 1 issues abiertos.
¿Hay alternativas a figma-edit-mcp?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega figma-edit-mcp en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/neozhehan-figma-edit-mcp)<a href="https://claudewave.com/repo/neozhehan-figma-edit-mcp"><img src="https://claudewave.com/api/badge/neozhehan-figma-edit-mcp" alt="Featured on ClaudeWave: neozhehan/figma-edit-mcp" width="320" height="64" /></a>Más MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!