Figma MCP for Free Plan

Connect Claude to Figma with zero friction.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeCan modify data

What it can do

  • Get Document Info: Get detailed information about the current Figma document
  • Get Selection: Get information about the current selection in Figma
  • Get Node Info: Get detailed information about a specific node in Figma

What data it sees

Do you need an account

No: the server works without sign-in

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 — a Figma limitation: a plugin can only touch the file it runs in).
  2. Ask Claude by file name, e.g. "add a button to the Order file, a header to the Billing file" Claude routes each command to the right file — still no channel IDs.

───────────────────────────── 🛠️ Troubleshooting

• Plugin shows "Disconnected" → make sure Step 3 (relay) is running. • "Port 3055 already in use" → free it: lsof -ti:3055 | xargs kill • "command not found: npx" → install Node.js first (nodejs.org). • Updated to a new version? → re-run npx figma-free-mcp@latest setup then re-import the plugin in Figma. • Multiple files, wrong target? → ask Claude to "list active channels" to see each file by name.

───────────────────────────── 📖 Full docs → github.com/haju-xp/figma-free-mcp

───────────────────────────── ⚠️ License & Usage

✅ Personal & commercial use allowed ✅ Modification allowed ❌ Claiming as your own work prohibited ❌ Removing author credit prohibited

© 2026 haju, All rights reserved for branding.

How to connect

How to connect Figma MCP for Free Plan to Claude

The server address to paste into Claude settings:

https://figma-free-mcp--haju-xp.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect Figma MCP for Free Plan to ChatGPT

The server address to paste into ChatGPT settings:

https://figma-free-mcp--haju-xp.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect Figma MCP for Free Plan to Cursor

The server address to paste into Cursor settings:

https://figma-free-mcp--haju-xp.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (60)

Raw names from tools/list. Only developers need these.

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.
rename_nodeRename a node (frame, component, group, etc.) in Figma
set_text_contentSet the text content of an existing text node in Figma
set_multiple_text_contentsSet multiple text contents parallelly in a node
set_font_nameSet the font name and style of a text node in Figma
set_font_sizeSet the font size of a text node in Figma
set_font_weightSet the font weight of a text node in Figma
set_letter_spacingSet the letter spacing of a text node in Figma
set_line_heightSet the line height of a text node in Figma
set_paragraph_spacingSet the paragraph spacing of a text node in Figma
set_text_caseSet the text case of a text node in Figma