
Figma Mcp Rust
Connects Claude (or any MCP client) to Figma via a local plugin bridge instead of the REST API, so you skip token auth and rate limits entirely. Exposes 73 tools across creating nodes (frames, text, shapes, components), modifying properties (fills, strokes, auto-layout, constraints), managing styles and variables, prototype reactions, and full page operations. Rust rewrite of vkhanhqui's Go original with structured logging and declarative tooling. Runs via npx with stdio transport. You install the plugin from the repo's manifest, run it in your Figma file, then the MCP server talks to the plugin over a bridge. Useful if you're on Figma's free tier or want to automate design workflows without hitting API quotas.
- GitHub stars
- 79
- tools
- 73
- transport
- STDIO
- last updated
- Nov 10, 2026
Tools
73 toolsPublic tool metadata for what this MCP can expose to an agent.
create_frameCreate a frame with optional auto-layout, fill, and parent
Create a frame with optional auto-layout, fill, and parent
No parameter schema in public metadata yet.
create_rectangleCreate a rectangle with optional fill and corner radius
Create a rectangle with optional fill and corner radius
No parameter schema in public metadata yet.
create_ellipseCreate an ellipse or circle
Create an ellipse or circle
No parameter schema in public metadata yet.
create_textCreate a text node (font loaded automatically)
Create a text node (font loaded automatically)
No parameter schema in public metadata yet.
import_imageDecode base64 image and place it as a rectangle fill
Decode base64 image and place it as a rectangle fill
No parameter schema in public metadata yet.
create_componentConvert an existing FRAME node into a reusable component
Convert an existing FRAME node into a reusable component
No parameter schema in public metadata yet.
create_sectionCreate a Figma Section node to organise frames on a page
Create a Figma Section node to organise frames on a page
No parameter schema in public metadata yet.
set_textUpdate text content of an existing TEXT node
Update text content of an existing TEXT node
No parameter schema in public metadata yet.
set_fillsSet solid fill color (hex) on a node
Set solid fill color (hex) on a node
No parameter schema in public metadata yet.
set_strokesSet solid stroke color and weight on a node
Set solid stroke color and weight on a node
No parameter schema in public metadata yet.
set_opacitySet opacity of one or more nodes (0 = transparent, 1 = opaque)
Set opacity of one or more nodes (0 = transparent, 1 = opaque)
No parameter schema in public metadata yet.
set_corner_radiusSet corner radius, uniform or per-corner
Set corner radius, uniform or per-corner
No parameter schema in public metadata yet.
set_auto_layoutSet or update auto-layout (flex) properties on a frame
Set or update auto-layout (flex) properties on a frame
No parameter schema in public metadata yet.
set_visibleShow or hide one or more nodes
Show or hide one or more nodes
No parameter schema in public metadata yet.
lock_nodesLock one or more nodes to prevent accidental edits
Lock one or more nodes to prevent accidental edits
No parameter schema in public metadata yet.
unlock_nodesUnlock one or more nodes
Unlock one or more nodes
No parameter schema in public metadata yet.
rotate_nodesSet absolute rotation in degrees on one or more nodes
Set absolute rotation in degrees on one or more nodes
No parameter schema in public metadata yet.
reorder_nodesChange z-order: bringToFront, sendToBack, bringForward, sendBackward
Change z-order: bringToFront, sendToBack, bringForward, sendBackward
No parameter schema in public metadata yet.
set_blend_modeSet blend mode (MULTIPLY, SCREEN, OVERLAY, and more) on one or more nodes
Set blend mode (MULTIPLY, SCREEN, OVERLAY, and more) on one or more nodes
No parameter schema in public metadata yet.
set_constraintsSet responsive constraints { horizontal, vertical } on one or more nodes
Set responsive constraints { horizontal, vertical } on one or more nodes
No parameter schema in public metadata yet.
move_nodesMove nodes to an absolute x/y position
Move nodes to an absolute x/y position
No parameter schema in public metadata yet.
resize_nodesResize nodes by width and/or height
Resize nodes by width and/or height
No parameter schema in public metadata yet.
rename_nodeRename a node
Rename a node
No parameter schema in public metadata yet.
clone_nodeClone a node, optionally repositioning or reparenting
Clone a node, optionally repositioning or reparenting
No parameter schema in public metadata yet.
reparent_nodesMove nodes to a different parent frame, group, or section
Move nodes to a different parent frame, group, or section
No parameter schema in public metadata yet.
batch_rename_nodesBulk rename nodes via find/replace, regex, or prefix/suffix
Bulk rename nodes via find/replace, regex, or prefix/suffix
No parameter schema in public metadata yet.
find_replace_textFind and replace text across all TEXT nodes in a subtree or page; supports regex
Find and replace text across all TEXT nodes in a subtree or page; supports regex
No parameter schema in public metadata yet.
delete_nodesDelete one or more nodes permanently
Delete one or more nodes permanently
No parameter schema in public metadata yet.
set_reactionsSet prototype reactions (triggers + actions) on a node; mode replace or append
Set prototype reactions (triggers + actions) on a node; mode replace or append
No parameter schema in public metadata yet.
remove_reactionsRemove all or specific reactions by zero-based index from a node
Remove all or specific reactions by zero-based index from a node
No parameter schema in public metadata yet.
set_effectsApply drop shadow / blur effects directly on a node (no style required)
Apply drop shadow / blur effects directly on a node (no style required)
No parameter schema in public metadata yet.
create_paint_styleCreate a named paint style with a solid color
Create a named paint style with a solid color
No parameter schema in public metadata yet.
create_text_styleCreate a named text style with font, size, and spacing
Create a named text style with font, size, and spacing
No parameter schema in public metadata yet.
create_effect_styleCreate a named effect style (drop shadow, inner shadow, blur)
Create a named effect style (drop shadow, inner shadow, blur)
No parameter schema in public metadata yet.
create_grid_styleCreate a named layout grid style (columns, rows, or grid)
Create a named layout grid style (columns, rows, or grid)
No parameter schema in public metadata yet.
update_paint_styleRename or recolor an existing paint style
Rename or recolor an existing paint style
No parameter schema in public metadata yet.
apply_style_to_nodeApply an existing local style to a node, linking it to that style
Apply an existing local style to a node, linking it to that style
No parameter schema in public metadata yet.
delete_styleDelete any style (paint, text, effect, or grid) by ID
Delete any style (paint, text, effect, or grid) by ID
No parameter schema in public metadata yet.
create_variable_collectionCreate a new local variable collection with an optional initial mode
Create a new local variable collection with an optional initial mode
No parameter schema in public metadata yet.
add_variable_modeAdd a new mode to an existing collection (e.g. Light/Dark)
Add a new mode to an existing collection (e.g. Light/Dark)
No parameter schema in public metadata yet.
create_variableCreate a variable (COLOR/FLOAT/STRING/BOOLEAN) in a collection
Create a variable (COLOR/FLOAT/STRING/BOOLEAN) in a collection
No parameter schema in public metadata yet.
set_variable_valueSet a variable's value for a specific mode
Set a variable's value for a specific mode
No parameter schema in public metadata yet.
bind_variable_to_nodeBind a variable to a node property; supports fillColor, strokeColor, visible, opacity, rotation, width, height, corner radii, spacing, and more
Bind a variable to a node property; supports fillColor, strokeColor, visible, opacity, rotation, width, height, corner radii, spacing, and more
No parameter schema in public metadata yet.
delete_variableDelete a variable or an entire collection
Delete a variable or an entire collection
No parameter schema in public metadata yet.
add_pageAdd a new page to the document (optional name and index)
Add a new page to the document (optional name and index)
No parameter schema in public metadata yet.
delete_pageDelete a page by ID or name (cannot delete the only page)
Delete a page by ID or name (cannot delete the only page)
No parameter schema in public metadata yet.
rename_pageRename a page by ID or current name
Rename a page by ID or current name
No parameter schema in public metadata yet.
navigate_to_pageSwitch the active Figma page by ID or name
Switch the active Figma page by ID or name
No parameter schema in public metadata yet.
group_nodesGroup two or more nodes into a GROUP
Group two or more nodes into a GROUP
No parameter schema in public metadata yet.
ungroup_nodesUngroup GROUP nodes, moving children to the parent
Ungroup GROUP nodes, moving children to the parent
No parameter schema in public metadata yet.
swap_componentSwap the main component of an INSTANCE node
Swap the main component of an INSTANCE node
No parameter schema in public metadata yet.
detach_instanceDetach component instances, converting them to plain frames
Detach component instances, converting them to plain frames
No parameter schema in public metadata yet.
get_documentFull current page tree
Full current page tree
No parameter schema in public metadata yet.
get_metadataFile name, pages, current page
File name, pages, current page
No parameter schema in public metadata yet.
get_pagesAll pages (IDs + names), lightweight, no tree loading
All pages (IDs + names), lightweight, no tree loading
No parameter schema in public metadata yet.
get_selectionCurrently selected nodes
Currently selected nodes
No parameter schema in public metadata yet.
get_nodeSingle node by ID
Single node by ID
No parameter schema in public metadata yet.
get_nodes_infoMultiple nodes by ID
Multiple nodes by ID
No parameter schema in public metadata yet.
get_design_contextDepth-limited tree with detail level (minimal/compact/full)
Depth-limited tree with detail level (minimal/compact/full)
No parameter schema in public metadata yet.
search_nodesFind nodes by name substring and/or type within a subtree
Find nodes by name substring and/or type within a subtree
No parameter schema in public metadata yet.
scan_text_nodesAll text nodes in a subtree
All text nodes in a subtree
No parameter schema in public metadata yet.
scan_nodes_by_typesNodes matching given type list
Nodes matching given type list
No parameter schema in public metadata yet.
get_viewportCurrent viewport center, zoom, and visible bounds
Current viewport center, zoom, and visible bounds
No parameter schema in public metadata yet.
get_stylesPaint, text, effect, and grid styles
Paint, text, effect, and grid styles
No parameter schema in public metadata yet.
get_variable_defsVariable collections and values
Variable collections and values
No parameter schema in public metadata yet.
get_local_componentsAll components + component sets with variant properties
All components + component sets with variant properties
No parameter schema in public metadata yet.
get_annotationsDev-mode annotations
Dev-mode annotations
No parameter schema in public metadata yet.
get_fontsAll fonts used on the current page, sorted by frequency
All fonts used on the current page, sorted by frequency
No parameter schema in public metadata yet.
get_reactionsPrototype/interaction reactions on a node
Prototype/interaction reactions on a node
No parameter schema in public metadata yet.
get_screenshotBase64 image export of any node
Base64 image export of any node
No parameter schema in public metadata yet.
save_screenshotsExport images to disk (server-side, no API call)
Export images to disk (server-side, no API call)
No parameter schema in public metadata yet.
export_frames_to_pdfExport multiple frames as a single multi-page PDF file saved to disk
Export multiple frames as a single multi-page PDF file saved to disk
No parameter schema in public metadata yet.
export_tokensExport design tokens (variables + paint styles) as JSON or CSS
Export design tokens (variables + paint styles) as JSON or CSS
No parameter schema in public metadata yet.
Sponsors
Readme
figma-mcp-rust
A high-performance Rust port of vkhanhqui/figma-mcp-go. All credit for the original design, the Figma plugin bridge, and the tool catalogue goes to @vkhanhqui. This repo migrates that same MCP server to Rust with structured logging, race-free request correlation, and a declarative tool table; see "What changed in the Rust rewrite" below.
Figma MCP: Free, No Rate Limits
Details
- Repository
- github.com/alvinindra/figma-mcp-rust
- Category
- Design & Creative
- Package
@alvinindra/figma-mcp-rust- Transport
- STDIO
- Registry
- MCP registry, active