grab avatar

Talk to Figma

grab/cursor-talk-to-figma-mcp

The Cursor Talk To Figma MCP server enables AI agents (Cursor, Claude Code) to read and programmatically modify Figma designs through the Model Context Protocol. It provides tools for design automation tasks such as bulk text replacement and instance override propagation, operating through a WebSocket server that bridges communication between the MCP server, Cursor IDE, and a Figma plugin. This integration solves the problem of automating repetitive design work by allowing AI agents to directly interact with and manipulate Figma files.

GitHub stars
6.8K
tools
44
last updated
Mar 9, 2026

Tools

44 tools

Public tool metadata for what this MCP can expose to an agent.

get_document_infoGet information about the current Figma document

Get information about the current Figma document

No parameter schema in public metadata yet.

get_selectionGet information about the current selection

Get information about the current selection

No parameter schema in public metadata yet.

read_my_designGet detailed node information about the current selection without parameters

Get detailed node information about the current selection without parameters

No parameter schema in public metadata yet.

get_node_infoGet detailed information about a specific node

Get detailed information about a specific node

No parameter schema in public metadata yet.

get_nodes_infoGet detailed information about multiple nodes by providing an array of node IDs

Get detailed information about multiple nodes by providing an array of node IDs

No parameter schema in public metadata yet.

set_focusSet focus on a specific node by selecting it and scrolling viewport to it

Set focus on a specific node by selecting it and scrolling viewport to it

No parameter schema in public metadata yet.

set_selectionsSet selection to multiple nodes and scroll viewport to show them

Set selection to multiple nodes and scroll viewport to show them

No parameter schema in public metadata yet.

get_annotationsGet all annotations in the current document or specific node

Get all annotations in the current document or specific node

No parameter schema in public metadata yet.

set_annotationCreate or update an annotation with markdown support

Create or update an annotation with markdown support

No parameter schema in public metadata yet.

set_multiple_annotationsBatch create/update multiple annotations efficiently

Batch create/update multiple annotations efficiently

No parameter schema in public metadata yet.

scan_nodes_by_typesScan for nodes with specific types (useful for finding annotation targets)

Scan for nodes with specific types (useful for finding annotation targets)

No parameter schema in public metadata yet.

get_reactionsGet all prototype reactions from nodes with visual highlight animation

Get all prototype reactions from nodes with visual highlight animation

No parameter schema in public metadata yet.

set_default_connectorSet a copied FigJam connector as the default connector style for creating connections (must be set before creating connections)

Set a copied FigJam connector as the default connector style for creating connections (must be set before creating connections)

No parameter schema in public metadata yet.

create_connectionsCreate FigJam connector lines between nodes, based on prototype flows or custom mapping

Create FigJam connector lines between nodes, based on prototype flows or custom mapping

No parameter schema in public metadata yet.

create_rectangleCreate a new rectangle with position, size, and optional name

Create a new rectangle with position, size, and optional name

No parameter schema in public metadata yet.

create_frameCreate a new frame with position, size, and optional name

Create a new frame with position, size, and optional name

No parameter schema in public metadata yet.

create_sectionCreate a section to group related content on the canvas

Create a section to group related content on the canvas

No parameter schema in public metadata yet.

create_textCreate a new text node with customizable font properties

Create a new text node with customizable font properties

No parameter schema in public metadata yet.

scan_text_nodesScan text nodes with intelligent chunking for large designs

Scan text nodes with intelligent chunking for large designs

No parameter schema in public metadata yet.

set_text_contentSet the text content of a single text node

Set the text content of a single text node

No parameter schema in public metadata yet.

set_multiple_text_contentsBatch update multiple text nodes efficiently

Batch update multiple text nodes efficiently

No parameter schema in public metadata yet.

set_layout_modeSet the layout mode and wrap behavior of a frame (NONE, HORIZONTAL, VERTICAL)

Set the layout mode and wrap behavior of a frame (NONE, HORIZONTAL, VERTICAL)

No parameter schema in public metadata yet.

set_paddingSet padding values for an auto-layout frame (top, right, bottom, left)

Set padding values for an auto-layout frame (top, right, bottom, left)

No parameter schema in public metadata yet.

set_axis_alignSet primary and counter axis alignment for auto-layout frames

Set primary and counter axis alignment for auto-layout frames

No parameter schema in public metadata yet.

set_layout_sizingSet horizontal and vertical sizing modes for auto-layout frames (FIXED, HUG, FILL)

Set horizontal and vertical sizing modes for auto-layout frames (FIXED, HUG, FILL)

No parameter schema in public metadata yet.

set_item_spacingSet distance between children in an auto-layout frame

Set distance between children in an auto-layout frame

No parameter schema in public metadata yet.

set_fill_colorSet the fill color of a node (RGBA)

Set the fill color of a node (RGBA)

No parameter schema in public metadata yet.

set_stroke_colorSet the stroke color and weight of a node

Set the stroke color and weight of a node

No parameter schema in public metadata yet.

set_corner_radiusSet the corner radius of a node with optional per-corner control

Set the corner radius of a node with optional per-corner control

No parameter schema in public metadata yet.

set_image_fillFill a node with an image from a local file path, URL, or base64 data (FILL, FIT, CROP, or TILE)

Fill a node with an image from a local file path, URL, or base64 data (FILL, FIT, CROP, or TILE)

No parameter schema in public metadata yet.

move_nodeMove a node to a new position

Move a node to a new position

No parameter schema in public metadata yet.

resize_nodeResize a node with new dimensions

Resize a node with new dimensions

No parameter schema in public metadata yet.

delete_nodeDelete a node

Delete a node

No parameter schema in public metadata yet.

delete_multiple_nodesDelete multiple nodes at once efficiently

Delete multiple nodes at once efficiently

No parameter schema in public metadata yet.

clone_nodeCreate a copy of an existing node with optional position offset

Create a copy of an existing node with optional position offset

No parameter schema in public metadata yet.

rename_nodeRename a node

Rename a node

No parameter schema in public metadata yet.

set_parentMove a node into a new parent (section, frame or group), preserving its absolute position by default

Move a node into a new parent (section, frame or group), preserving its absolute position by default

No parameter schema in public metadata yet.

get_stylesGet information about local styles

Get information about local styles

No parameter schema in public metadata yet.

get_local_componentsGet information about local components

Get information about local components

No parameter schema in public metadata yet.

create_component_instanceCreate an instance of a component

Create an instance of a component

No parameter schema in public metadata yet.

get_instance_overridesExtract override properties from a selected component instance

Extract override properties from a selected component instance

No parameter schema in public metadata yet.

set_instance_overridesApply extracted overrides to target instances

Apply extracted overrides to target instances

No parameter schema in public metadata yet.

export_node_as_imageExport a node as an image (PNG, JPG, SVG, or PDF) - limited support on image currently returning base64 as text

Export a node as an image (PNG, JPG, SVG, or PDF) - limited support on image currently returning base64 as text

No parameter schema in public metadata yet.

join_channelJoin a specific channel to communicate with Figma

Join a specific channel to communicate with Figma

No parameter schema in public metadata yet.

Sponsors

Readme

Talk to Figma MCP

This project implements a Model Context Protocol (MCP) integration between AI agent (Cursor, Claude Code) and Figma, allowing AI agent to communicate with Figma for reading designs and modifying them programmatically.

https://github.com/user-attachments/assets/129a14d2-ed73-470f-9a4c-2240b2a4885c

Project Structure

  • src/talk_to_figma_mcp/ - TypeScript MCP server for Figma integration
  • src/cursor_mcp_plugin/ - Figma plugin for communicating with Cursor
  • src/socket.ts - WebSocket server that facilitates communication between the MCP server and Figma plugin

How to use

  1. Install Bun if you haven't already:
curl -fsSL https://bun.sh/install | bash
  1. Run setup, this will also install MCP in your Cursor's active project
bun setup
  1. Start the Websocket server
bun socket
  1. NEW Install Figma plugin from Figma community page or install locally

Quick Video Tutorial


View the full README on GitHub

Details

Repository
github.com/grab/cursor-talk-to-figma-mcp
Categories
AI & LLM Tools, Design & Creative

Related AI & LLM Tools MCP servers

View all
1llmsresearch avatarPaperBananallmsresearch/paperbananaGenerate academic diagrams and statistical plots from text using multi-agent AI.2Kstars
2riponcm avatarProjectmemriponcm/projectmemCoding agent memory — one local MCP server for every project. Warns before repeating failed fixes.877stars
3ark0n avatarCodemanark0n/codemanStart, prompt and read AI coding agent sessions (Claude Code, Codex, Gemini CLI and more) in Codeman838stars
4greatscottymac avatarContext Portalgreatscottymac/context-portalContext Portal (ConPort): A memory bank MCP server building a project-specific knowledge graph to supercharge AI assistants. Enables powerful Retrieval Augmente762stars
5maxfreedompollard avatarCompartmentmaxfreedompollard/compartmentDurable agentic memory, encrypted at rest. Fully offline: no network, no API key, no cloud.569stars
6k-dense-ai avatarClaude Skillsk-dense-ai/claude-skills-mcpMCP server for searching and retrieving Claude Agent Skills using vector search384stars