MCP Directory

figma-mcp-go

Free, no-rate-limit Figma MCP server with full read/write via a plugin bridge — no REST API token needed.

Unverified
stdio (local)
No auth
Go

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
npx -y @vkhanhqui/figma-mcp-go

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "figma-mcp-go": {
      "command": "npx",
      "args": [
        "-y",
        "@vkhanhqui/figma-mcp-go"
      ]
    }
  }
}

Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf

Before you start

  • Node.js (to run the server via npx)
  • Figma Desktop app
  • The companion Figma plugin installed via Plugins → Development → Import plugin from manifest, using manifest.json from the released plugin.zip

About figma-mcp-go

figma-mcp-go is an open-source MCP server that connects AI assistants to Figma with full read and write access. Unlike most Figma MCP servers that rely on the rate-limited Figma REST API, it talks to Figma through a companion plugin bridge, so it requires no API token and is not subject to Figma's per-plan tool-call limits — making it usable on free Figma plans. It exposes 73 tools (create/modify/delete nodes, prototypes, styles, variables, pages, components, navigation, reads, and exports) plus built-in MCP prompts for design strategies, enabling text-to-design and design-to-code workflows.

Tools & capabilities (73)

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

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, …) 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

delete_nodes

Delete one or more nodes permanently

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

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

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

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

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

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

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

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

What this server can do

figma-mcp-go provides tools for these capabilities — tap one to see every MCP server that does the same:

When to use it

  • Generate full Figma designs from text prompts (text-to-design) on a free Figma plan without hitting REST API rate limits
  • Turn existing Figma designs into code by reading the design context, styles, variables, and components
  • Automate design systems — create and manage paint/text/effect/grid styles, variables, and modes (e.g. Light/Dark)
  • Bulk content edits like find-and-replace text across a page or subtree
  • Export assets and documentation — node screenshots, multi-page PDFs, and design tokens as JSON or CSS

Security notes

No Figma API token required. Access to Figma is granted by installing and running the companion Figma plugin (imported from manifest.json in the released plugin.zip) inside a Figma file; the MCP server communicates with Figma over the local plugin bridge. The server can read and write live Figma data and write files to disk (screenshots, PDFs, exported tokens).

figma-mcp-go FAQ

Do I need a Figma API token?

No. The server communicates with Figma through a companion plugin bridge rather than the Figma REST API, so no API token is required.

Are there rate limits?

No. Because it does not use the Figma REST API, it is not subject to Figma's per-plan tool-call limits and works on free Figma plans.

How do I connect it to Figma?

Install the companion Figma plugin in Figma Desktop via Plugins → Development → Import plugin from manifest, selecting manifest.json from the released plugin.zip, then run the plugin inside any Figma file.

Which AI tools are supported?

Cursor, Claude (Claude Code CLI and .mcp.json), VS Code / GitHub Copilot, Codex CLI, and any MCP-compatible AI tool.

Alternatives to figma-mcp-go

Compare all alternatives →

Popular community server that feeds Figma layout data to coding agents via a Figma API token.

Verified
stdio (local)
API key
TypeScript
2 tools
Updated 23 days agoRepo

Generate beautiful, modern UI components from natural-language descriptions inside your IDE.

Unverified
stdio (local)
API key
TypeScript
4 tools
Updated 4 months agoRepo

Give AI assistants full access to shadcn/ui v4 components, blocks, demos, and metadata across React, Svelte, Vue, and React Native.

Unverified
stdio (local)
API key
TypeScript
7 tools
Updated 1 month agoRepo