figma-mcp-go

figma-mcp-go

Figma MCP server with full read/write access via plugin bridge — no API token, no rate limits. 58 tools for design automation: styles, variables, components, prototypes, and content.

Category
Visit Server

README

figma-mcp-go

Figma MCP — Free, No Rate Limits

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 — 58 tools total
  • Full design automation — styles, variables, components, prototypes, and content
  • Design strategies included — read_design_strategy, design_strategy, and more prompts built in

https://github.com/user-attachments/assets/17bda971-0e83-4f18-8758-8ac2b8dcba62


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. Watch the setup video or follow the steps below.

Watch the video

1. Configure your AI tool

Claude Code CLI

claude mcp add -s project figma-mcp-go -- npx -y @vkhanhqui/figma-mcp-go@latest

.mcp.json (Claude and other MCP-compatible tools)

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

.vscode/mcp.json (Cursor / VS Code / GitHub Copilot)

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

2. Install the Figma plugin

  1. In Figma Desktop: Plugins → Development → Import plugin from manifest
  2. Select manifest.json from the plugin.zip
  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

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
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

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
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 local variable to a node property
delete_variable Delete a variable or an entire collection

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_overrides_instances Transfer overrides between component instances
reaction_to_connector_strategy Map prototype reactions into interaction flow diagrams

Related Projects


Contributing

Issues and PRs are welcome.

Star History

<a href="https://www.star-history.com/?repos=vkhanhqui%2Ffigma-mcp-go&type=date&legend=top-left"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=vkhanhqui/figma-mcp-go&type=date&theme=dark&legend=top-left" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=vkhanhqui/figma-mcp-go&type=date&legend=top-left" /> <img alt="Star History Chart" src="https://api.star-history.com/chart?repos=vkhanhqui/figma-mcp-go&type=date&legend=top-left" /> </picture> </a>

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured