Figma MCP Go
Provides tools for interacting with Figma via its Plugin API, enabling read/write access to documents, styles, variables, components, prototypes, and content.
figma-mcp-go
Figma MCP — Local Plugin Integration
Open-source Figma MCP server with full read/write access via plugin. Turn text into designs and designs into real code. Works with Cursor, Claude, GitHub Copilot, and any MCP-compatible AI tool.
Highlights
Operates locally via the Figma Plugin API (no REST API token required)
Real-time execution directly on your local machine
Read and Write live Figma data via plugin bridge — 79 tools total
Full design automation — styles, variables, components, prototypes, and content
Design strategies included — read_design_strategy, design_strategy, and more prompts built in
Styles, Variables, Components, Prototypes, and Content
https://github.com/user-attachments/assets/eae41471-fc72-4574-8261-4f42c38b8c99
Text to Design, Design to Code
https://github.com/user-attachments/assets/17bda971-0e83-4f18-8758-8ac2b8dcba62
Why this exists
Most Figma MCP servers rely on the cloud-based Figma REST API.
While the REST API is excellent for server-to-server integrations, experimenting with AI tools often involves making hundreds of rapid tool calls per session. A cloud-based approach can introduce network latency and overhead.
This project takes a different approach by running as a local Figma Plugin. By bridging directly to the Figma Plugin API on your desktop, it provides instant, real-time read/write access to your active documents without relying on external cloud APIs or requiring an API token.
Related MCP server: figma-mcp-go
Installation & Setup
Install via npx — no build step required. Watch the setup video or follow the steps below.

1. Configure your AI tool
Claude Code CLI
claude mcp add -s project figma-mcp-go -- npx -y @tunglt1810/figma-mcp-go@latestCodex CLI
codex mcp add figma-mcp-go -- npx -y @tunglt1810/figma-mcp-go@latest.mcp.json (Claude and other MCP-compatible tools)
{
"mcpServers": {
"figma-mcp-go": {
"command": "npx",
"args": ["-y", "@tunglt1810/figma-mcp-go"]
}
}
}.vscode/mcp.json (Cursor / VS Code / GitHub Copilot)
{
"servers": {
"figma-mcp-go": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@tunglt1810/figma-mcp-go"
]
}
}
}2. Install the Figma plugin
In Figma Desktop: Plugins → Development → Import plugin from manifest
Select
manifest.jsonfrom the plugin.zipRun the plugin inside any Figma file
Available Tools
Write — Create
Tool | Description |
| Create a frame with optional auto-layout, fill, and parent |
| Create a rectangle with optional fill and corner radius |
| Create an ellipse or circle |
| Create a text node (font loaded automatically) |
| Decode base64 image and place it as a rectangle fill |
| Convert an existing FRAME node into a reusable component |
| Create an instance of a component (local or library) |
| Create a Figma Section node to organise frames on a page |
| Create a Connector line between nodes (FigJam only) |
Write — Modify
Tool | Description |
| Update text content of an existing TEXT node |
| Set solid fill color (hex) on a node |
| Set linear or radial gradient fills on a node using geometry properties |
| Set solid stroke color and weight on a node |
| Set opacity of one or more nodes (0 = transparent, 1 = opaque) |
| Set corner radius — uniform or per-corner |
| Set or update auto-layout (flex) properties on a frame |
| Show or hide one or more nodes |
| Lock one or more nodes to prevent accidental edits |
| Unlock one or more nodes |
| Set absolute rotation in degrees on one or more nodes |
| Change z-order: |
| Set blend mode (MULTIPLY, SCREEN, OVERLAY, …) on one or more nodes |
| Set responsive constraints |
| Update Component Properties (variants, booleans, text) on a component instance |
| Set Dev Mode Annotations on a node (requires paid Dev Mode seat) |
| Move nodes to an absolute x/y position |
| Resize nodes by width and/or height |
| Rename a node |
| Clone a node, optionally repositioning or reparenting |
| Move nodes to a different parent frame, group, or section |
| Bulk rename nodes via find/replace, regex, or prefix/suffix |
| Find and replace text across all TEXT nodes in a subtree or page; supports regex |
Write — Delete
Tool | Description |
| Delete one or more nodes permanently |
| Clear all Dev Mode Annotations from one or more nodes |
Write — Prototype
Tool | Description |
| Set prototype reactions (triggers + actions) on a node; mode |
| Remove all or specific reactions by zero-based index from a node |
Write — Styles
Tool | Description |
| Apply drop shadow / blur effects directly on a node (no style required) |
| Create a named paint style with a solid color |
| Create a named text style with font, size, and spacing |
| Create a named effect style (drop shadow, inner shadow, blur) |
| Create a named layout grid style (columns, rows, or grid) |
| Rename or recolor an existing paint style |
| Apply an existing local style to a node, linking it to that style |
| Delete any style (paint, text, effect, or grid) by ID |
Write — Variables
Tool | Description |
| Create a new local variable collection with an optional initial mode |
| Add a new mode to an existing collection (e.g. Light/Dark) |
| Create a variable (COLOR/FLOAT/STRING/BOOLEAN) in a collection |
| Set a variable's value for a specific mode |
| Bind a variable to a node property — supports |
| Delete a variable or an entire collection |
Write — Pages
Tool | Description |
| Add a new page to the document (optional name and index) |
| Delete a page by ID or name (cannot delete the only page) |
| Rename a page by ID or current name |
Write — Components & Navigation
Tool | Description |
| Switch the active Figma page by ID or name |
| Group two or more nodes into a GROUP |
| Ungroup GROUP nodes, moving children to the parent |
| Swap the main component of an INSTANCE node |
| Detach component instances, converting them to plain frames |
Read — Document & Selection
Tool | Description |
| Full current page tree |
| File name, pages, current page |
| All pages (IDs + names) — lightweight, no tree loading |
| Currently selected nodes |
| Single node by ID |
| Multiple nodes by ID |
| Depth-limited tree with |
| Find nodes by name substring and/or type within a subtree |
| All text nodes in a subtree |
| Nodes matching given type list |
| Current viewport center, zoom, and visible bounds |
Read — Styles & Variables
Tool | Description |
| Paint, text, effect, and grid styles |
| Variable collections and values |
| All components + component sets with variant properties |
| Get component properties and current values of an instance |
| Dev-mode annotations |
| All fonts used on the current page, sorted by frequency |
| Prototype/interaction reactions on a node |
Export
Tool | Description |
| Base64 image export of any node |
| Export images to disk (server-side, no API call) |
| Export multiple frames as a single multi-page PDF file saved to disk |
| Export design tokens (variables + paint styles) as JSON or CSS |
MCP Prompts
Prompt | Description |
| Best practices for reading Figma designs |
| Best practices for creating and modifying designs |
| Chunked approach for replacing text across a design |
| Convert manual annotations to native Figma annotations |
| Transfer overrides between component instances |
| Map prototype reactions into interaction flow diagrams |
Contributing
Issues and PRs are welcome.
Star History
This server cannot be installed
Maintenance
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tunglt1810/figma-mcp-go'
If you have feedback or need assistance with the MCP directory API, please join our Discord server