Figma MCP for Free Plan
Connect Claude to Figma with zero friction. No paid plan. No channel ID copy-paste. Just works. ✦ 100+ tools for Figma automation ✦ Auto-connect — Claude detects your open file ✦ Multi-file editing — work on several files at once, by file name (no channel IDs) ✦ Design system sync, page manager, code→Figma ✦ Free Figma plan supported ───────────────────────────── 📋 Before you start (Prerequisites) • Node.js 18+ → check in terminal: node -v (install: nodejs.org) • Figma DESKTOP app → not the browser version (figma.com/downloads) • Claude Desktop → claude.ai/download No Python or other runtime needed — npx/npm come with Node.js. ───────────────────────────── ⚡ Quick Start ▶ Step 1 — Install the MCP + download the plugin Run in your terminal: npx figma-free-mcp@latest setup This auto-registers the MCP in Claude Desktop and downloads the Figma plugin to: ~/.figma-free-mcp/plugin/ (Tip: the terminal prints the exact path — copy it for Step 2.) ▶ Step 2 — Register the plugin in Figma (one time only) 1. Open the Figma DESKTOP app (not the browser) 2. Menu → Plugins → Development → Import plugin from manifest... 3. Select this file: ~/.figma-free-mcp/plugin/manifest.json • Can't see the folder? In the file dialog press ⌘⇧G (Mac) / Ctrl+L (Windows) and paste the path above. • You only do this once — Figma remembers it afterwards. ▶ Step 3 — Start the relay server (keep it running) The relay connects Claude ↔ Figma. Run in a terminal and LEAVE IT OPEN: figma-free-mcp socket ⚠️ Start this BEFORE opening the plugin in Step 4. ▶ Step 4 — Open the plugin in your Figma file In Figma: Plugins → Figma Free MCP It auto-connects to the relay — no channel ID needed. ✅ Done! Now just talk to Claude: "Figma에 버튼 컴포넌트 만들어줘" / "중복 페이지 정리해줘" ───────────────────────────── 🗂️ Editing multiple files at once 1. Open each file and run the plugin in it (one plugin instance per file —
https://figma-free-mcp--haju-xp.run.tools
How to connect
-
Smithery (hosted)
1. Open https://smithery.ai/servers/haju-xp/figma-free-mcp 2. Click Connect and complete OAuth in your MCP client (Claude, Cursor, VS Code, etc.) 3. MCP endpoint: https://figma-free-mcp--haju-xp.run.tools
Tools (50)
-
get_document_infoGet detailed information about the current Figma document
-
get_selectionGet information about the current selection in Figma
-
get_node_infoGet detailed information about a specific node in Figma
-
get_nodes_infoGet detailed information about multiple nodes in Figma
-
get_stylesGet all styles from the current Figma document
-
get_local_componentsGet all local components from the Figma document
-
get_remote_componentsGet available components from team libraries in Figma
-
scan_text_nodesScan all text nodes in the selected Figma node
-
join_channelJoin a specific channel to communicate with Figma
-
export_node_as_imageExport a node as an image from Figma
-
create_pageCreate a new page in the current Figma document
-
delete_pageDelete a page from the current Figma document
-
rename_pageRename an existing page in the Figma document
-
get_pagesGet all pages in the current Figma document
-
set_current_pageSwitch to a specific page in the Figma document
-
duplicate_pageDuplicate an existing page in the Figma document, creating a complete copy of all its contents
-
create_rectangleCreate a new rectangle in Figma
-
create_frameCreate a new frame in Figma
-
create_textCreate a new text element in Figma
-
create_ellipseCreate a new ellipse in Figma
-
create_polygonCreate a new polygon in Figma
-
create_starCreate a new star in Figma
-
group_nodesGroup nodes in Figma
-
ungroup_nodesUngroup nodes in Figma
-
clone_nodeClone an existing node in Figma
-
insert_childInsert a child node inside a parent node in Figma
-
flatten_nodeFlatten a node in Figma (e.g., for boolean operations or converting to path)
-
boolean_operationPerform a boolean operation (union, subtract, intersect, exclude) on two or more nodes. All nodes must share the same parent.
-
set_fill_colorSet the fill color of a node in Figma. Alpha component defaults to 1 (fully opaque) if not specified. Use alpha 0 for fully transparent.
-
set_stroke_colorSet the stroke color of a node in Figma (defaults: opacity 1, weight 1)
-
set_selection_colorsRecursively change all stroke and fill colors of a node and all its descendants. Works like Figma's 'Selection colors' feature - perfect for recoloring icon instances.
-
move_nodeMove a node to a new position in Figma
-
resize_nodeResize a node in Figma
-
delete_nodeDelete a node from Figma
-
set_corner_radiusSet the corner radius of a node in Figma
-
set_auto_layoutConfigure auto layout properties for a node in Figma
-
set_effectsSet the visual effects of a node in Figma
-
set_effect_style_idApply an effect style to a node in Figma
-
rotate_nodeRotate a node in Figma by a specified angle in degrees (clockwise). Use relative=true to add to the current rotation instead of setting an absolute value. Note: locked nodes can still be rotated — the Plugin API bypasses the UI lock by design.
-
set_node_propertiesSet visibility, lock state, and/or opacity of a node in Figma. Only provided properties are changed; omitted properties remain unchanged.
-
reorder_nodeChange the z-order (layer order) of a node within its parent. Distinct from insert_child which re-parents a node — reorder_node changes position within the same parent.
-
convert_to_frameConvert a group or shape node into a frame in Figma. Preserves position, size, visual properties, and children. Useful for converting groups into auto-layout-capable frames.
-
set_gradientSet a gradient fill on a node in Figma. Supports linear, radial, angular, and diamond gradients. Replaces all existing fills (same behavior as set_fill_color).
-
set_imageSet an image fill on a node from base64-encoded image data. Supports PNG, JPEG, GIF, WebP. Max ~5MB after decode.
-
set_gridApply layout grids to a frame node in Figma. Supports columns, rows, and grid patterns.
-
get_gridRead layout grids from a frame node in Figma
-
set_guideSet guides on a page in Figma. Replaces all existing guides on the page.
-
get_guideRead guides from a page in Figma
-
set_annotationAdd an annotation label to a node in Figma. Uses the proposed Annotations API — requires Figma Desktop with enableProposedApi.
-
get_annotationRead annotations from a node in Figma. Uses the proposed Annotations API.