
Talk to Figma
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 toolsPublic 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 integrationsrc/cursor_mcp_plugin/- Figma plugin for communicating with Cursorsrc/socket.ts- WebSocket server that facilitates communication between the MCP server and Figma plugin
How to use
- Install Bun if you haven't already:
curl -fsSL https://bun.sh/install | bash
- Run setup, this will also install MCP in your Cursor's active project
bun setup
- Start the Websocket server
bun socket
- NEW Install Figma plugin from Figma community page or install locally
Quick Video Tutorial
Details
- Repository
- github.com/grab/cursor-talk-to-figma-mcp
- Categories
- AI & LLM Tools, Design & Creative