alvinindra avatar

Figma Mcp Rust

alvinindra/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 tools

Public 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

npm version MCP Registry License: MIT GitHub stars


View the full README on GitHub

Details

Repository
github.com/alvinindra/figma-mcp-rust
Category
Design & Creative
Package
@alvinindra/figma-mcp-rust
Transport
STDIO
Registry
MCP registry, active

Related Design & Creative MCP servers

View all
1acedatacloud avatarMidjourneyacedatacloud/midjourneymcpMCP server for Midjourney AI image generation and editing18stars
2vapagentmedia avatarVap Evapagentmedia/vap-showcaseAI image, video & music generation. Flux, Veo 3.1, Suno V5. Free tier included.0stars
3vola-trebla avatarReact Render Profile Mcpvola-trebla/react-render-profile-mcpDecodes React DevTools Profiler exports into render summaries and memoization advice for AI agents.2stars
4pipeworx-io avatarFigmapipeworx-io/mcp-figmaFigma MCP Pack0stars
5sterion66 avatarGodotsterion66/godot-mcp-serverThe most complete Godot 4 MCP: secure sandbox, 40+ tools (projects–runtime), major MCP clients.0stars
6yanislav-igonin avatarRandom Designyanislav-igonin/random-design-mcpGenerate randomized English Markdown frontend design directions from curated catalogs.0stars