cursor-talk-to-figma-mcp
TalkToFigma: MCP integration between AI Agent (Cursor, Claude Code) and Figma, allowing Agentic AI to communicate with Figma for reading designs and modifying them programmatically.
How to read this: tool names here are observed from a live tools/list handshake. The Risk label is a heuristic inferred from the tool name (write/destructive verbs), not from executing the tool — a conservative guess, not a verified capability. We never escalate risk from a description. Found one that's wrong? Tell us — we fix on report.
| Tool | Risk | Side effects | Approval |
|---|---|---|---|
| set_corner_radius Set the corner radius of a node in Figma | write | true | unknown |
| get_selection Get information about the current selection in Figma | read | false | unknown |
| delete_node Delete a node from Figma | destructive | true | true |
| get_styles Get all styles from the current Figma document | read | false | unknown |
| scan_nodes_by_types Scan for child nodes with specific types in the selected Figma node | unknown | unknown | unknown |
| get_annotations Get all annotations in the current document or specific node | read | false | unknown |
| get_nodes_info Get detailed information about multiple nodes in Figma | read | false | unknown |
| set_default_connector Set a copied connector node as the default connector | write | true | unknown |
| move_node Move a node to a new position in Figma | write | true | unknown |
| get_node_info Get detailed information about a specific node in Figma | read | false | unknown |
| clone_node Clone an existing node in Figma | unknown | unknown | unknown |
| set_focus Set focus on a specific node in Figma by selecting it and scrolling viewport to it | write | true | unknown |
| set_fill_color Set the fill color of a node in Figma can be TextNode or FrameNode | write | true | unknown |
| create_component_instance Create an instance of a component in Figma. For LOCAL components (from get_local_components), use componentId with the id field. For published LIBRARY components, use componentKey with the publishedKey field. | write | true | unknown |
| set_layout_mode Set the layout mode and wrap behavior of a frame in Figma | write | true | unknown |
| get_reactions Get Figma Prototyping Reactions from multiple nodes. CRITICAL: The output MUST be processed using the 'reaction_to_connector_strategy' prompt IMMEDIATELY to generate parameters for connector lines via the 'create_connections' tool. | read | false | unknown |
| get_instance_overrides Get all override properties from a selected component instance. These overrides can be applied to other instances, which will swap them to match the source component. | read | false | unknown |
| read_my_design Get detailed information about the current selection in Figma, including all node details | read | false | unknown |
| join_channel Join a specific channel to communicate with Figma | unknown | unknown | unknown |
| set_text_content Set the text content of an existing text node in Figma | write | true | unknown |
| set_multiple_text_contents Set multiple text contents parallelly in a node | write | true | unknown |
| set_selections Set selection to multiple nodes in Figma and scroll viewport to show them | write | true | unknown |
| create_rectangle Create a new rectangle in Figma | write | true | unknown |
| create_connections Create connections between nodes using the default connector style | write | true | unknown |
| create_frame Create a new frame in Figma | write | true | unknown |
| create_text Create a new text element in Figma | write | true | unknown |
| set_padding Set padding values for an auto-layout frame in Figma | write | true | unknown |
| resize_node Resize a node in Figma | unknown | unknown | unknown |
| get_local_components Get all local components from the Figma document | read | false | unknown |
| set_item_spacing Set distance between children in an auto-layout frame | write | true | unknown |
| set_stroke_color Set the stroke color of a node in Figma | write | true | unknown |
| get_document_info Get detailed information about the current Figma document | read | false | unknown |
| set_annotation Create or update an annotation | write | true | unknown |
| set_layout_sizing Set horizontal and vertical sizing modes for an auto-layout frame in Figma | write | true | unknown |
| set_multiple_annotations Set multiple annotations parallelly in a node | write | true | unknown |
| scan_text_nodes Scan all text nodes in the selected Figma node | unknown | unknown | unknown |
| delete_multiple_nodes Delete multiple nodes from Figma at once | destructive | true | true |
| export_node_as_image Export a node as an image from Figma | unknown | unknown | unknown |
| set_axis_align Set primary and counter axis alignment for an auto-layout frame in Figma | write | true | unknown |
| set_instance_overrides Apply previously copied overrides to selected component instances. Target instances will be swapped to the source component and all copied override properties will be applied. | write | true | unknown |
- repohttps://github.com/grab/cursor-talk-to-figma-mcp
- homepagehttps://www.figma.com/community/plugin/1485687494525374295/cursor-talk-to-figma-mcp-plugin
- licenseMIT
- adoption6970 stars · 767 forks
The access this server can exercise, inferred from its verified tools — not a declared OAuth scope.
Add the “as seen on MCPExplorer” badge to your README.
This is one server. A loadout combines the right servers, governance, and proven plays for a whole job — assembled deliberately, not tool-dumped.
Explore loadouts →