Prototype · This site is a prototype showing 100 real servers from the official registry, not all of them yet.
PopNx MCPMCP servers for people who use AI · explained in plain words

Figma UI MCP

by TranHoaiHungversion 2.5.30i★ 265iRuns on your computer
Registry nameio.github.TranHoaiHung/figma-ui-mcp

Overview

Description from the maker (original English)

Bidirectional Figma MCP — AI draws UI on Figma canvas, reads designs back

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Design, images & audio

Install

Pick the AI app you use, then copy the settings.

You need

  • npmNode.js installed (for the npx command)

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "figma-ui": {
      "command": "npx",
      "args": [
        "-y",
        "figma-ui-mcp"
      ]
    }
  }
}

Run this in your terminal

claude mcp add figma-ui -- npx -y figma-ui-mcp

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "figma-ui": {
      "command": "npx",
      "args": [
        "-y",
        "figma-ui-mcp"
      ]
    }
  }
}

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "figma-ui": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "figma-ui-mcp"
      ]
    }
  }
}

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 5, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account TranHoaiHung, which owns the repo

  • ✓ Pass

    Still maintained

    Code last changed 10 days ago

  • ✓ Pass

    Has a licence

    Uses MIT

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Needs the server’s tool list first; this check starts in the next step

Compared with others in Design, images & audioi

  • More stars than 36% of the other 14 servers in this category
  • Published to the registry more recently than 86% of the other 14 servers in this category
  • Basic checks equal to or better than 100% of the other 14 servers in this category

Compared only with servers in this prototype, not the whole registry.

Common questions

Is Figma UI MCP safe?

It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed 10 days ago, and the latest version (2.5.30) reached the registry 10 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: Figma Context MCP, Claude Real Video, Figma MCP Server

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.

Runs on your computer★ 16,165MITUpdated 5 months ago

Claude Real Video

by HUANGCHIHHUNGLeo

Let any LLM watch a video locally — and search everything it has ever watched.

Runs on your computer★ 2,284MITUpdated 2 months ago

Figma’s official server gives AI your design data so it can turn designs into code or describe them accurately. Connects to Figma’s cloud.

Runs in the cloud★ 2,152Updated 13 months ago

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

figma-ui-mcp

Claude Code to Figma · Antigravity to Figma · Cursor to Figma · Any MCP IDE to Figma

✅ Tested: Claude Code, Antigravity | 🔧 Compatible: Cursor, VS Code, Windsurf, Zed (any MCP stdio client)

Bidirectional Figma MCP bridge — let AI assistants (Claude Code, Cursor, Windsurf, Antigravity, VS Code Copilot, or any MCP-compatible IDE) draw UI directly on Figma canvas and read existing designs back as structured data, screenshots, or code-ready tokens. No Figma API key needed — works entirely over localhost.

Requires Figma Desktop — the plugin communicates with the MCP server over localhost HTTP polling. Figma's web app does not allow localhost network access, so Figma Desktop is required.

Claude ──figma_write──▶ MCP Server ──HTTP (localhost:38451)──▶ Figma Plugin ──▶ Figma Document

Claude ◀─figma_read──── MCP Server ◀──HTTP (localhost:38451)── Figma Plugin ◀── Figma Document

How the localhost bridge works

The MCP server starts a small HTTP server bound to localhost:38451. The Figma plugin (running inside Figma Desktop) uses long polling — the server holds requests up to 8s until work arrives, flushing immediately when new ops are queued (near-realtime latency <100ms). All traffic stays on your machine — nothing is sent to any external server.

Multi-instance support (v2.3.0+): Multiple Figma files/tabs can connect simultaneously. Each plugin instance sends a sessionId, and the bridge routes operations to the correct session. Use the optional sessionId param in figma_write/figma_read to target a specific file.


Features

DirectionToolWhat it does
Writefigma_writeDraw frames, shapes, text, prototypes via JS code
Readfigma_readExtract node trees, colors, typography, screenshots
Infofigma_statusCheck plugin connection + active sessions
Docsfigma_docsGet full API reference + examples
Rulesfigma_rulesGenerate design system rule sheet — tokens, typography, components
What's new in v2.5
FeatureDescription
`get_design_context`AI-optimized payload for a node — flex layout, token-resolved colors (var(--name)), typography with style names, component instances with variant properties. Best single call for design→React/Vue/Swift code.
`get_component_map`List every component instance in a frame with componentSetName, variantLabel, properties, and suggestedImport path. Scaffold import statements in one call.
`get_unmapped_components`Find component instances that have no description in Figma (no code mapping yet). Prompts AI to ask user for correct import paths.
`figma_rules` toolNew top-level MCP tool — aggregates color tokens, typography styles, variables (all modes), and component catalog into a single markdown rule sheet. Equivalent to official Figma MCP's create_design_system_rules. Call once at session start.
`get_css` operationfigma_read get_css { nodeId } → ready-to-use CSS string (flex, typography, fill, border, shadow, opacity, transform). One call, paste into code.
Resolved variablesget_node_detail now resolves boundVariables IDs → { name, resolvedType, value }. No more manual ID lookup.
Resolved style refsfillStyleId / textStyleId now include fillStyle: { name, hex } and textStyle: { name, fontSize, fontFamily }.
Instance overrides detailoverrides: [{ id, overriddenFields: ["fills","characters",...] }] — full diff vs mainComponent, not just count.
`componentSetName` + `variantLabel`INSTANCE nodes now expose set name ("Button") and variant label ("State=Primary, Size=Large") separately.
`insertIndex` for createfigma.create({ ..., insertIndex: 2 }) — insert node at exact position in parent, not always at end.
Typography tokenssetupDesignTokens({ fontSizes, fonts, textStyles }) — 1 call bootstrap full typography system with variable-bound text styles. Multi-mode (Compact/Comfortable/Large) supported.
`applyTextStyle`Apply a local text style to a TEXT node by name in 1 call — auto-loads font.
STRING variables for fontsapplyVariable now binds fontFamily, fontStyle, characters (swap Inter → SF Pro via 1 variable).
Effects`effects: [{ type: "DROP_SHADOW" \"INNER_SHADOW" \"LAYER_BLUR" \"BACKGROUND_BLUR", ... }]` on any node.
Gradient fills`fill: { type: "LINEAR_GRADIENT" \"RADIAL_GRADIENT", angle, stops }` in create/modify.
Individual corner radiitopLeftRadius, topRightRadius, bottomLeftRadius, bottomRightRadius on FRAME/RECT.
8-digit hex + rgba alphafill: "#FFFFFF80" or "rgba(255,255,255,0.5)" — alpha auto-applied to paint opacity.
SVG arc (A) + commasVECTOR d paths accept A arc command (auto-converted to cubic Bézier) and commas.
Icon libraries7 free open-source libraries, iOS-filled first: Ionicons → Fluent → Bootstrap → Phosphor → Tabler Filled → Tabler Outline → Lucide.
Instance overridesfigma.instantiate({ overrides: { "LayerName": { text, fill, fontSize } } }) — override props per-layer.
Batch deletefigma.delete({ ids: [...] }) — delete multiple nodes in 1 round-trip.
PrototypingsetReactions — click/hover/press → navigate/overlay/swap with Smart Animate.
Scroll behaviorsetScrollBehavior — HORIZONTAL / VERTICAL / BOTH overflow.
Variants & instance swapsetComponentProperties / swapComponent — variants + instance swap.
Component property definitions *(v2.5.24)*addComponentProperty + bindComponentProperty — create TEXT / BOOLEAN / INSTANCE_SWAP properties on master components. Instance text overrides now actually re-measure auto-layout (button grows to fit longer label).
Multi-instanceMultiple Figma tabs connect simultaneously via sessions.

Full version history: see CHANGELOG.md.


Quick Start

Step 1 — Add the MCP server to your AI client

Choose your platform:

Claude Code (CLI)

# Project scope (default)

claude mcp add figma-ui-mcp -- npx figma-ui-mcp

Global scope (all projects)

claude mcp add --scope user figma-ui-mcp -- npx figma-ui-mcp

</details>

Claude Desktop

Edit config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{

"mcpServers": { "figma": { "command": "npx", "args": ["-y", "figma-ui-mcp"] } } }

</details>

Cursor

Edit .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):

{

"mcpServers": { "figma": { "command": "npx", "args": ["-y", "figma-ui-mcp"] } } }

</details>

VS Code / GitHub Copilot

Edit .vscode/mcp.json (project) or add to settings.json (global):

{

"mcp": { "servers": { "figma": { "command": "npx", "args": ["-y", "figma-ui-mcp"] } } } }

</details>

Windsurf

Edit ~/.codeium/windsurf/mcp_config.json:

{

"mcpServers": { "figma": { "command": "npx", "args": ["-y", "figma-ui-mcp"] } } }

</details>

Antigravity (Google)

  1. Open "..." dropdown at the top of the agent panel
  2. Click "Manage MCP Servers" → "View raw config"
  3. Add to mcp_config.json:
{

"mcpServers": { "figma": { "command": "npx", "args": ["-y", "figma-ui-mcp"] } } }

</details>

From source (any client)

git clone https://github.com/TranHoaiHung/figma-ui-mcp

cd figma-ui-mcp npm install

Then point your MCP client to: node /path/to/figma-ui-mcp/server/index.js

</details>

⚠️ IMPORTANT: After adding the MCP server, you MUST restart your IDE / AI client (quit and reopen). The MCP server only loads on startup — simply saving the config file is not enough. This applies to Claude Code, Cursor, VS Code, Windsurf, and Antigravity.

Step 2 — Install the Figma plugin

[⬇ Download plugin.zip](https://github.com/TranHoaiHung/figma-ui-mcp/raw/main/plugin.zip) — no git clone needed

  1. Download and unzip plugin.zip anywhere on your machine
  2. Open Figma Desktop (required — web app cannot access localhost)
  3. Go to Plugins → Development → Import plugin from manifest...
  4. Select manifest.json from the unzipped folder
  5. Run Plugins → Development → Figma UI MCP Bridge

The plugin UI shows a green dot when the MCP server is connected.

Updating to a newer version
# Step 1 — get the new version + plugin path

npx figma-ui-mcp@latest --version

figma-ui-mcp v2.5.12 — plugin: /.../.npm/_npx/.../figma-ui-mcp/plugin

Step 2 — restart Claude / your IDE so the MCP server reloads

Step 3 — re-link the Figma plugin (manual, one-time per update)

Figma Desktop → Plugins → Development → Manage plugins in development

Remove old "Figma UI MCP Bridge" → "+" → Import plugin from manifest...

Select manifest.json from the plugin path printed in Step 1

Step 4 — verify

Ask your AI: "figma_status"

pluginVersion in the response should match the npm version above

The Figma plugin does not auto-update — re-linking (Step 3) is required whenever the plugin changes.

Step 3 — Connect AI to Figma

Tell your AI assistant to connect:

"Connect to figma-ui-mcp"

The AI will call figma_status and confirm:

✅ Connected — File: "My Project", Page: "Page 1", Plugin v2.5.5

If you see "Plugin not connected", make sure the Figma plugin is running (Step 2).

Step 4 — Start designing with prompts

Once connected, just describe what you want in natural language:

"Use figma-ui-mcp to draw a login screen for mobile"

The AI will automatically:

  1. Call figma_docs to load the API reference and design rules
  2. Call figma_read get_page_nodes to understand the current canvas
  3. Call figma_write to create the design on your Figma canvas
  4. Call figma_read screenshot to verify the result
Prompt examples
PromptWhat happens
"Draw a mobile login screen with social login buttons"Creates a 390×844 frame with email/password inputs, Apple/Google buttons
"Read the selected frame and describe the design"Extracts colors, typography, spacing from your selection

| "Take a screenshot of the current frame" | Return

Only the beginning is shown; read the rest in the repo

Ask PopNx