# figma-mcp-rust

An MCP server that reads and edits a live Figma file through a plugin bridge. No REST API token, no call limits.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 72
- Author: alvinindra
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/alvinindra/figma-mcp-rust
- Updated: 2026-10-12
- HTML: https://affpapa.org/en/nevibecode/mcp/figma-mcp-rust

## What it does

The server talks to Figma through a plugin instead of the REST API. You import `manifest.json` into Figma Desktop, run the plugin inside a file, and the agent works with that open document. The catalogue holds 73 tools: frames, text, components, fills and strokes, auto-layout, styles, variables, prototypes, renaming, and find-and-replace across text layers.

This is a Rust port of figma-mcp-go. What the rewrite adds is structured logging, request correlation that avoids races, and a tool table declared in one place. Install runs through `npx`, so there is no build step. The plugin ships with 13 skills covering design reading, token generation, and bridge troubleshooting.

The bridge only works while the plugin is running in an open Figma file — otherwise the server sees nothing. You install the plugin by hand from the release archive; there is no automatic path.

## Requirements
- Needs: Node.js (commands run via npx)
- Works with: Figma

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add figma-mcp-rust -- npx -y @alvinindra/figma-mcp-rust
```

### Codex

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

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "figma-mcp-rust": {
            "command": "npx",
            "args": [
                "-y",
                "@alvinindra/figma-mcp-rust"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "figma-mcp-rust": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@alvinindra/figma-mcp-rust"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add figma-mcp-rust npx -y @alvinindra/figma-mcp-rust
```

## When to use it
- create a frame with auto-layout and a fill from the chat
- bulk rename layers with a regex
- move colors and typography into variables and styles
- wire prototype reactions onto buttons
- find and replace text across every text layer on a page

## Example prompts
- Create a 1440×900 frame with auto-layout and fill it with #F5F5F5
- Rename every layer prefixed `old_` to `new_` using `batch_rename_nodes`
- Create color variables and add a Dark mode

## Similar
- [Next AI Draw.io](https://affpapa.org/en/nevibecode/mcp/next-ai-drawio.md) — MCP server · ★ 36398
- [tldraw](https://affpapa.org/en/nevibecode/mcp/tldraw.md) — MCP server · ★ 51091
- [Figma-Context-MCP](https://affpapa.org/en/nevibecode/mcp/figma-context-mcp.md) — MCP server · ★ 16062
- [Agent-Native Assets](https://affpapa.org/en/nevibecode/mcp/agent-native-assets.md) — MCP server · ★ 7506
- [Remove AI Watermarks](https://affpapa.org/en/nevibecode/mcp/remove-ai-watermarks.md) — MCP server · ★ 6114
- [Dembrandt](https://affpapa.org/en/nevibecode/mcp/dembrandt.md) — MCP server · ★ 3821

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
