Skip to main content
ClaudeWave

Figma MCP build with Rust, server with full read/write access via plugin (no REST API, no rate limits, 73 tools)

MCP ServersRegistry oficial10 estrellas7 forksTypeScriptMITActualizado today
ClaudeWave Trust Score
87/100
Trusted
Passed
  • Open-source license (MIT)
  • Actively maintained (<30d)
  • Clear description
  • Topics declared
Last scanned: 6/11/2026
Install in Claude Code / Claude Desktop
Method: NPX · @alvinindra/figma-mcp-rust
Claude Code CLI
claude mcp add figma-mcp-rust -- npx -y @alvinindra/figma-mcp-rust
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "figma-mcp-rust": {
      "command": "npx",
      "args": ["-y", "@alvinindra/figma-mcp-rust"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Casos de uso

Resumen de MCP Servers

# figma-mcp-rust

> A high-performance Rust port of **[vkhanhqui/figma-mcp-go](https://github.com/vkhanhqui/figma-mcp-go)**.
> All credit for the original design, the Figma plugin bridge, and the tool catalogue goes to
> [@vkhanhqui](https://github.com/vkhanhqui). This repo migrates that same MCP server to Rust
> with structured logging, race-free request correlation, and a declarative tool table;
> see "What changed in the Rust rewrite" below.

Figma MCP: Free, No Rate Limits
<p>
  <a href="https://www.npmjs.com/package/@alvinindra/figma-mcp-rust"><img src="https://img.shields.io/npm/v/@alvinindra/figma-mcp-rust?color=blue" alt="npm version" /></a>
  <a href="https://registry.modelcontextprotocol.io/?q=figma-mcp-rust"><img src="https://img.shields.io/badge/MCP-Registry-purple" alt="MCP Registry" /></a>
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT" /></a>
  <a href="https://github.com/alvinindra/figma-mcp-rust/stargazers"><img src="https://img.shields.io/github/stars/alvinindra/figma-mcp-rust?style=social" alt="GitHub stars" /></a>
</p>

Open-source Figma MCP server with full read/write access via plugin. No REST API, no rate limits. Turn text into designs and designs into real code. Works with Cursor, Claude, GitHub Copilot, and any MCP-compatible AI tool.

**Highlights**
- No Figma API token required
- No rate limits, free plan friendly
- **Read and Write** live Figma data via plugin bridge, 73 tools in total
- Full design automation: styles, variables, components, prototypes, and content
- Design strategies built in as MCP prompts, plus matching Claude Code skills

---

## Why this exists

Most Figma MCP servers rely on the **Figma REST API**.

That sounds fine until you hit this:

| Plan | Limit |
|------|-------|
| Starter / View / Collab | **6 tool calls/month** |
| Pro / Org (Dev seat) | 200 tool calls/day |
| Enterprise | 600 tool calls/day |

If you're experimenting with AI tools, you'll burn through that in minutes.

I didn't have enough money to pay for higher limits.
So I built something that **doesn't use the API at all**.

---

## Installation & Setup

Install via `npx`, no build step required.

### 1. Configure your AI tool

**Claude Code CLI**
```bash
claude mcp add -s project figma-mcp-rust -- npx -y @alvinindra/figma-mcp-rust@latest
```

**Claude Code plugin marketplace**
```bash
/plugin marketplace add alvinindra/figma-mcp-rust
/plugin install figma-mcp-rust@figma-mcp-rust
```

Installing the plugin also adds 13 skills covering the workflows below, from reading designs to generating tokens and troubleshooting the bridge.

**Codex CLI**
```bash
codex mcp add figma-mcp-rust -- npx -y @alvinindra/figma-mcp-rust@latest
```

**.mcp.json** (Claude and other MCP-compatible tools)
```json
{
  "mcpServers": {
    "figma-mcp-rust": {
      "command": "npx",
      "args": ["-y", "@alvinindra/figma-mcp-rust"]
    }
  }
}
```

**.vscode/mcp.json** (Cursor / VS Code / GitHub Copilot)
```json
{
  "servers": {
    "figma-mcp-rust": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@alvinindra/figma-mcp-rust"
      ]
    }
  }
}
```

### 2. Install the Figma plugin

1. In Figma Desktop: **Plugins → Development → Import plugin from manifest**
2. Select `manifest.json` from the [plugin.zip](https://github.com/alvinindra/figma-mcp-rust/releases)
3. Run the plugin inside any Figma file

---

## Available Tools

### Write: Create

| Tool | Description |
|------|-------------|
| `create_frame` | Create a frame with optional auto-layout, fill, and parent |
| `create_rectangle` | Create a rectangle with optional fill and corner radius |
| `create_ellipse` | Create an ellipse or circle |
| `create_text` | Create a text node (font loaded automatically) |
| `import_image` | Decode base64 image and place it as a rectangle fill |
| `create_component` | Convert an existing FRAME node into a reusable component |
| `create_section` | Create a Figma Section node to organise frames on a page |

### Write: Modify

| Tool | Description |
|------|-------------|
| `set_text` | Update text content of an existing TEXT node |
| `set_fills` | Set solid fill color (hex) on a node |
| `set_strokes` | Set solid stroke color and weight on a node |
| `set_opacity` | Set opacity of one or more nodes (0 = transparent, 1 = opaque) |
| `set_corner_radius` | Set corner radius, uniform or per-corner |
| `set_auto_layout` | Set or update auto-layout (flex) properties on a frame |
| `set_visible` | Show or hide one or more nodes |
| `lock_nodes` | Lock one or more nodes to prevent accidental edits |
| `unlock_nodes` | Unlock one or more nodes |
| `rotate_nodes` | Set absolute rotation in degrees on one or more nodes |
| `reorder_nodes` | Change z-order: `bringToFront`, `sendToBack`, `bringForward`, `sendBackward` |
| `set_blend_mode` | Set blend mode (MULTIPLY, SCREEN, OVERLAY, and more) on one or more nodes |
| `set_constraints` | Set responsive constraints `{ horizontal, vertical }` on one or more nodes |
| `move_nodes` | Move nodes to an absolute x/y position |
| `resize_nodes` | Resize nodes by width and/or height |
| `rename_node` | Rename a node |
| `clone_node` | Clone a node, optionally repositioning or reparenting |
| `reparent_nodes` | Move nodes to a different parent frame, group, or section |
| `batch_rename_nodes` | Bulk rename nodes via find/replace, regex, or prefix/suffix |
| `find_replace_text` | Find and replace text across all TEXT nodes in a subtree or page; supports regex |

### Write: Delete

| Tool | Description |
|------|-------------|
| `delete_nodes` | Delete one or more nodes permanently |

### Write: Prototype

| Tool | Description |
|------|-------------|
| `set_reactions` | Set prototype reactions (triggers + actions) on a node; mode `replace` or `append` |
| `remove_reactions` | Remove all or specific reactions by zero-based index from a node |

### Write: Styles

| Tool | Description |
|------|-------------|
| `set_effects` | Apply drop shadow / blur effects directly on a node (no style required) |
| `create_paint_style` | Create a named paint style with a solid color |
| `create_text_style` | Create a named text style with font, size, and spacing |
| `create_effect_style` | Create a named effect style (drop shadow, inner shadow, blur) |
| `create_grid_style` | Create a named layout grid style (columns, rows, or grid) |
| `update_paint_style` | Rename or recolor an existing paint style |
| `apply_style_to_node` | Apply an existing local style to a node, linking it to that style |
| `delete_style` | Delete any style (paint, text, effect, or grid) by ID |

### Write: Variables

| Tool | Description |
|------|-------------|
| `create_variable_collection` | Create a new local variable collection with an optional initial mode |
| `add_variable_mode` | Add a new mode to an existing collection (e.g. Light/Dark) |
| `create_variable` | Create a variable (COLOR/FLOAT/STRING/BOOLEAN) in a collection |
| `set_variable_value` | Set a variable's value for a specific mode |
| `bind_variable_to_node` | Bind a variable to a node property; supports `fillColor`, `strokeColor`, `visible`, `opacity`, `rotation`, `width`, `height`, corner radii, spacing, and more |
| `delete_variable` | Delete a variable or an entire collection |

### Write: Pages

| Tool | Description |
|------|-------------|
| `add_page` | Add a new page to the document (optional name and index) |
| `delete_page` | Delete a page by ID or name (cannot delete the only page) |
| `rename_page` | Rename a page by ID or current name |

### Write: Components & Navigation

| Tool | Description |
|------|-------------|
| `navigate_to_page` | Switch the active Figma page by ID or name |
| `group_nodes` | Group two or more nodes into a GROUP |
| `ungroup_nodes` | Ungroup GROUP nodes, moving children to the parent |
| `swap_component` | Swap the main component of an INSTANCE node |
| `detach_instance` | Detach component instances, converting them to plain frames |

### Read: Document & Selection

| Tool | Description |
|------|-------------|
| `get_document` | Full current page tree |
| `get_metadata` | File name, pages, current page |
| `get_pages` | All pages (IDs + names), lightweight, no tree loading |
| `get_selection` | Currently selected nodes |
| `get_node` | Single node by ID |
| `get_nodes_info` | Multiple nodes by ID |
| `get_design_context` | Depth-limited tree with `detail` level (`minimal`/`compact`/`full`) |
| `search_nodes` | Find nodes by name substring and/or type within a subtree |
| `scan_text_nodes` | All text nodes in a subtree |
| `scan_nodes_by_types` | Nodes matching given type list |
| `get_viewport` | Current viewport center, zoom, and visible bounds |

### Read: Styles & Variables

| Tool | Description |
|------|-------------|
| `get_styles` | Paint, text, effect, and grid styles |
| `get_variable_defs` | Variable collections and values |
| `get_local_components` | All components + component sets with variant properties |
| `get_annotations` | Dev-mode annotations |
| `get_fonts` | All fonts used on the current page, sorted by frequency |
| `get_reactions` | Prototype/interaction reactions on a node |

### Export

| Tool | Description |
|------|-------------|
| `get_screenshot` | Base64 image export of any node |
| `save_screenshots` | Export images to disk (server-side, no API call) |
| `export_frames_to_pdf` | Export multiple frames as a single multi-page PDF file saved to disk |
| `export_tokens` | Export design tokens (variables + paint styles) as JSON or CSS |

### MCP Prompts

| Prompt | Description |
|--------|-------------|
| `read_design_strategy` | Best practices for reading Figma designs |
| `design_strategy` | Best practices for creating and modifying designs |
| `text_replacement_strategy` | Chunked approach for replacing text across a design |
| `annotation_conversion_strategy` | Convert manual annotations to native Figma annotations |
| `swap_
ai-toolsfigmamcpmodel-context-protocolrust

Lo que la gente pregunta sobre figma-mcp-rust

¿Qué es alvinindra/figma-mcp-rust?

+

alvinindra/figma-mcp-rust es mcp servers para el ecosistema de Claude AI. Figma MCP build with Rust, server with full read/write access via plugin (no REST API, no rate limits, 73 tools) Tiene 10 estrellas en GitHub y se actualizó por última vez today.

¿Cómo se instala figma-mcp-rust?

+

Puedes instalar figma-mcp-rust clonando el repositorio (https://github.com/alvinindra/figma-mcp-rust) 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 alvinindra/figma-mcp-rust?

+

Nuestro agente de seguridad ha analizado alvinindra/figma-mcp-rust 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 alvinindra/figma-mcp-rust?

+

alvinindra/figma-mcp-rust es mantenido por alvinindra. La última actividad registrada en GitHub es de today, con 0 issues abiertos.

¿Hay alternativas a figma-mcp-rust?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega figma-mcp-rust 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.

Featured on ClaudeWave: alvinindra/figma-mcp-rust
[![Featured on ClaudeWave](https://claudewave.com/api/badge/alvinindra-figma-mcp-rust)](https://claudewave.com/repo/alvinindra-figma-mcp-rust)
<a href="https://claudewave.com/repo/alvinindra-figma-mcp-rust"><img src="https://claudewave.com/api/badge/alvinindra-figma-mcp-rust" alt="Featured on ClaudeWave: alvinindra/figma-mcp-rust" width="320" height="64" /></a>

Más MCP Servers

Alternativas a figma-mcp-rust