figma-mcp-go
Figma MCP for free users — no rate limits, full read/write, text to designs, designs to code
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
- Supports multiple AI tools simultaneously
- Written in Go, distributed via npm
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.
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
- In Figma Desktop: Plugins → Development → Import plugin from manifest
- Select
manifest.jsonfrom the plugin.zip - 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 |
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 |
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 |
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 |
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) |
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.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found
