Figma Edit MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FIGMA_EDIT_MCP_SOCKET_HOST | No | The host for the WebSocket bridge (use 0.0.0.0 for WSL) | localhost |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_rectangleB | Create a new rectangle in Figma |
| create_frameC | Create a new frame in Figma |
| create_node_from_svgB | Creates a node from an SVG string. |
| create_ellipseB | Create a new ellipse (circle, arc, donut) in Figma |
| create_polygon_starC | Create a new polygon or star in Figma |
| move_nodeC | Move a node to a new position in Figma |
| resize_nodeC | Resize a node in Figma |
| set_node_nameC | Set the name of a node in Figma |
| delete_multiple_nodesC | Delete one or more nodes from Figma at once |
| clone_nodeC | Clone an existing node in Figma |
| set_selectionsB | Set selection to one or more nodes in Figma and focus them |
| group_nodesC | Group multiple nodes into a group |
| ungroup_nodesC | Ungroup a group node |
| flatten_nodeC | Flatten node to vector |
| insert_childC | Reparent a node to a new parent |
| set_fill_colorC | Set the fill color of a node in Figma can be TextNode or FrameNode |
| set_strokeC | Set the stroke color and weight of a node in Figma. Supports both uniform weight and individual side weights (top, bottom, left, right). |
| set_corner_radiusC | Set the corner radius of a node in Figma |
| set_effectsC | Applies shadow/effect arrays to nodes. |
| get_stylesA | Get all styles from the current Figma document |
| manage_styleA | Creates named styles (Text, Paint, Effect, Grid) or updates an existing style if styleId is provided. |
| apply_styleC | Applies a style to a node by ID. |
| create_textC | Create a new text element in Figma |
| set_multiple_text_contentsC | Set one or more text contents parallelly in a node |
| set_text_styleC | Set any combination of text styles on a node |
| set_auto_layoutB | Set auto-layout properties for a frame in Figma. This unified tool replaces individual layout tools. |
| get_componentsC | Get components from the Figma document with filtering options |
| create_componentB | Transforms a frame into a main component. |
| create_component_instanceB | Create an instance of a component in Figma |
| get_instance_overridesA | 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. |
| set_instance_overridesA | 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. |
| create_component_setB | Transforms components into a component set (variants). |
| set_component_instance_propertyB | Set a specific property value (boolean toggle, text override, instance swap, or variant selection) on an instance. |
| manage_component_propertyC | Perform CRUD operations on property definitions for main components or variant sets. |
| get_variablesA | Get all local variables/collections or detailed info for specific variable(s) by ID(s). When variableId is provided, optionally scan for consumer nodes, styles, and variable aliases via includeConsumers (Note: Consumer scanning is limited to the current document). |
| get_node_variablesB | Get bound variables and explicit variable modes for a specific node |
| set_bound_variableA | Bind a variable to a node's property or set explicit variable mode |
| manage_variablesC | Comprehensive tool to create collections, variables, and set values/aliases. |
| delete_variablesA | Delete specific variables by ID or an entire variable collection. Provide either variableIds OR collectionId (not both). Performs a full-document consumer check (nodes, styles, and variable aliases) first — if any variable is still in use, the entire operation is rejected. Note: Consumer scanning is limited to the current document. |
| get_annotationsB | Get all annotations in the current document or specific node |
| set_multiple_annotationsC | Set one or more annotations parallelly in a node |
| update_reactionsA | Update Figma Prototyping Reactions on a node by replacing its reactions array. Provide the full array of reactions. Use get_reactions first, modify the desired actions (e.g., to fix references to deleted variables), and pass the updated array here. |
| get_reactionsA | 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. |
| create_connectionsA | Create connections between nodes, or set/check the default connector template. Pass 'connectorId' to set a default. Pass 'connections' to create lines. Pass nothing to check current default. |
| get_pages_infoA | Get information about pages in the Figma document. No argument or empty array returns all pages without children. 1 or more pageIds returns the requested pageIds with top-level children for each requested page. Prefer batches of ≤25 pageIds per call; for larger requests, split across multiple calls for better responsiveness. |
| get_nodes_infoA | Get detailed information about one or more nodes. Supports recursive subtree traversal, property filtering, and streaming progress.
RESPONSE SHAPE:
PATH:
FILTER BEHAVIOR:
COST & LATENCY:
MISSING NODES:
RECOMMENDED PAIRINGS:
|
| join_channelC | Join a specific channel to communicate with Figma |
| export_node_as_imageB | Export a node as an image from Figma |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| text_replacement_strategy | Systematic approach for replacing text in Figma designs |
| swap_overrides_instances | Guide to swap instance overrides between instances |
| annotation_conversion_strategy | Strategy for converting manual annotations to Figma's native annotations |
| reaction_to_connector_strategy | Strategy for converting Figma prototype reactions to connector lines using the output of 'get_reactions' |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/neozhehan/figma-edit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server