/ Directory / Playground / claude-talk-to-figma-mcp
● Community arinspunk ⚡ Instant

claude-talk-to-figma-mcp

by arinspunk · arinspunk/claude-talk-to-figma-mcp

Claude reads, analyzes, and modifies Figma designs via a free plugin — no Dev Mode required, works with free Figma accounts.

claude-talk-to-figma-mcp (arinspunk) combines an MCP server with a Figma plugin. Together they let Claude inspect document structure, audit styles, scan components, and create/modify shapes, text, and frames. Bypasses the usual Dev Mode paywall for design-aware AI workflows.

Why use it

Key features

Live Demo

What it looks like in practice

claude-talk-to-figma.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "claude-talk-to-figma": {
      "command": "npx",
      "args": [
        "-y",
        "claude-talk-to-figma-mcp"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "claude-talk-to-figma": {
      "command": "npx",
      "args": [
        "-y",
        "claude-talk-to-figma-mcp"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "claude-talk-to-figma": {
      "command": "npx",
      "args": [
        "-y",
        "claude-talk-to-figma-mcp"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "claude-talk-to-figma": {
      "command": "npx",
      "args": [
        "-y",
        "claude-talk-to-figma-mcp"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "claude-talk-to-figma",
      "command": "npx",
      "args": [
        "-y",
        "claude-talk-to-figma-mcp"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "claude-talk-to-figma": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "claude-talk-to-figma-mcp"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add claude-talk-to-figma -- npx -y claude-talk-to-figma-mcp

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use claude-talk-to-figma-mcp

Audit a Figma file for off-system colors and styles

👤 Design system maintainers ⏱ ~20 min intermediate

When to use: The team's file has drifted from the design tokens and you want to find the strays.

Prerequisites
  • Figma plugin imported via manifest — Figma → Plugins → Development → Import from manifest
  • Running bun run socket — From the repo; opens the WebSocket
Flow
  1. Connect
    Connect to Figma, channel abc123 (copy from the plugin UI).✓ Copied
    → Connected; document name shown
  2. Scan for off-system fills
    Scan all nodes for fill colors that aren't in our 12 brand tokens. List node paths.✓ Copied
    → List of drift instances
  3. Report
    Group by nearest frame and summarize. Suggest which token each stray should be.✓ Copied
    → Actionable cleanup list

Outcome: A file you can hand to a designer with concrete fixes.

Pitfalls
  • Channel ID rotates if you restart the plugin — Always copy fresh from the plugin panel; stale IDs silently time out

Turn a written spec into a rough Figma frame

👤 PMs, non-designers ⏱ ~15 min beginner

When to use: You want a quick wireframe without opening Figma yourself.

Flow
  1. Describe the layout
    Create a new frame 1440x900 in the current file. Add a header, a 3-column feature grid, and a footer. Use our brand colors.✓ Copied
    → Frame appears in Figma with the structure
  2. Iterate
    Make the feature cards use our 'Card' component. Swap the header to variant 'primary'.✓ Copied
    → Frame updated in real time

Outcome: A rough wireframe without touching the Figma UI.

Run an accessibility color-contrast check on a Figma file

👤 Designers, accessibility advocates ⏱ ~25 min intermediate

When to use: Before handoff, you want to flag contrast failures.

Flow
  1. Walk text nodes with their backgrounds
    For every text node, compute WCAG contrast against the nearest background fill. Flag anything below 4.5:1 for body or 3:1 for large.✓ Copied
    → List of failing pairs with ratios
  2. Suggest adjustments
    For each failure, suggest the minimum token swap to pass.✓ Copied
    → Fix suggestions

Outcome: An accessibility report before QA catches it later.

Combinations

Pair with other MCPs for X10 leverage

claude-talk-to-figma + meigen-ai-design

Generate an image, drop it into a Figma frame as a placeholder

Generate a hero image with MeiGen, then place it as a fill in the selected Figma frame.✓ Copied
claude-talk-to-figma + unreal

Figma HUD → Unreal UMG widget scaffold

Export the selected Figma HUD frame structure, then create a matching UMG Widget Blueprint in Unreal.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
get_document_info First step; confirm the right file 0
get_selection Operate on what the user selected 0
scan_styles Drift detection 0
create_shape type, x, y, w, h, fill? Build layouts 0
create_text content, x, y, style? Add labels/headings 0
set_fill node_id, color Fix strays 0
set_auto_layout node_id, direction, padding, gap Convert to responsive 0

Cost & Limits

What this costs to run

API quota
None — everything is local WebSocket
Tokens per call
Document scans can be 5-30k tokens on big files
Monetary
Free
Tip
Operate on get_selection whenever possible; full-doc scans burn tokens

Security

Permissions, secrets, blast radius

Credential storage: No API keys; the plugin uses your current Figma session
Data egress: Local WebSocket only; Figma data only leaves if you share results

Troubleshooting

Common errors and fixes

Connection timeout / channel not found

Channel IDs rotate — copy fresh from the plugin panel and reconnect

Plugin missing from Figma menu

Re-import via Plugins → Development → Import from manifest; dev plugins don't persist across Figma restarts on some setups

Writes fail silently

Figma restricts plugin writes on some file types (libraries, community duplicates). Check for the lock icon

Alternatives

claude-talk-to-figma-mcp vs others

AlternativeWhen to use it insteadTradeoff
Framelink / Figma-Context MCPYou want read-only via Figma's API with a personal tokenNo write; needs API access
Figma Dev Mode MCP (official)Your org pays for Dev ModePaid seats required

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills