FigmaExporterMcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FIGMA_EXPORTER_EXPORT_DIR | No | Local image export directory | |
| FIGMA_EXPORTER_RELAY_PORT | No | WebSocket/HTTP relay port | 3066 |
| FIGMA_EXPORTER_SESSION_ID | No | Optional stable session id for active-file routing |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| completions | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_document_infoA | Get detailed information about the current Figma document |
| get_selectionA | Get information about the current selection in Figma |
| read_my_designC | Get detailed information about the current selection in Figma, including all node details |
| get_node_infoC | Get detailed information about a specific node in Figma |
| get_nodes_infoC | Get detailed information about multiple nodes in Figma |
| create_rectangleC | Create a new rectangle in Figma |
| create_frameC | Create a new frame in Figma |
| create_textB | Create a new text element in Figma |
| set_fill_colorC | Set the fill color of a node in Figma can be TextNode or FrameNode |
| set_stroke_colorB | Set the stroke color of a node in Figma |
| move_nodeC | Move a node to a new position in Figma |
| clone_nodeC | Clone an existing node in Figma |
| resize_nodeB | Resize a node in Figma |
| delete_nodeB | Delete a node from Figma |
| delete_multiple_nodesB | Delete multiple nodes from Figma at once |
| export_node_as_imageB | Export a node as an image from Figma |
| set_text_contentB | Set the text content of an existing text node in Figma |
| get_stylesA | Get all styles from the current Figma document |
| get_local_componentsA | Get all local components from the Figma document |
| get_annotationsA | Get all annotations in the current document or specific node |
| set_annotationC | Create or update an annotation |
| set_multiple_annotationsB | Set multiple annotations parallelly in a node |
| create_component_instanceA | Create an instance of a component in Figma. Use componentId for fast local component instantiation, or componentKey for library imports. |
| 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. |
| set_corner_radiusB | Set the corner radius of a node in Figma |
| scan_text_nodesB | Scan all text nodes in the selected Figma node |
| scan_nodes_by_typesB | Scan for child nodes with specific types in the selected Figma node |
| set_multiple_text_contentsC | Set multiple text contents parallelly in a node |
| set_layout_modeB | Set the layout mode and wrap behavior of a frame in Figma |
| set_paddingB | Set padding values for an auto-layout frame in Figma |
| set_axis_alignB | Set primary and counter axis alignment for an auto-layout frame in Figma |
| set_layout_sizingB | Set horizontal and vertical sizing modes for an auto-layout frame in Figma |
| set_item_spacingB | Set distance between children in an auto-layout frame |
| 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. |
| set_default_connectorC | Set a copied connector node as the default connector |
| create_connectionsB | Create connections between nodes using the default connector style |
| set_focusA | Set focus on a specific node in Figma by selecting it and scrolling viewport to it |
| set_selectionsA | Set selection to multiple nodes in Figma and scroll viewport to show them |
| create_componentB | Create a new Component (not an instance) in Figma. This is the foundation for building a component library. |
| create_component_setA | Combine multiple Component variants into a ComponentSet. Each component must have variant-style naming like 'Property=Value'. |
| insert_svgB | Insert an SVG string into Figma. Use this to create icons from SVG markup. The SVG will be converted to Figma vector nodes. |
| set_component_propertyA | Add a Component Property (Boolean, Text, Instance Swap, or Variant) to a Component or ComponentSet. For INSTANCE_SWAP: defaultValue must be the component KEY (not node ID), and targetChildId should be the child Instance node whose mainComponent will be linked. |
| set_component_property_referencesA | Set componentPropertyReferences on a sublayer within a Component. Links a child node's property to an existing component property. Keys: 'visible'|'characters'|'mainComponent'. |
| create_variable_collectionA | Create a new Variable Collection with modes. Use this to set up the theming system (Colors, Spacing, Radius, Typography, Font collections). |
| create_variableB | Create a new Variable in an existing Variable Collection. |
| set_variable_valueA | Set the value of a Variable for a specific mode. For COLOR type, pass hex string like '#FF0000'. |
| set_variable_mode_nameB | Rename a mode in a Variable Collection. |
| bind_variableB | Bind a Variable to a node property. This connects component properties to the theming system. |
| set_opacityA | Set the opacity of a node (0 to 1). |
| set_visibilityB | Show or hide a node. |
| set_text_styleA | Set text style properties: font family, size, weight, line height, letter spacing, alignment, decoration, case. |
| set_effectsB | Set effects on a node: drop shadow, inner shadow, layer blur, background blur. |
| create_ellipseA | Create an ellipse/circle in Figma. Useful for avatars, radio buttons, status indicators. |
| create_lineC | Create a line in Figma. Useful for dividers. |
| flatten_nodeB | Flatten a node (or group) into a single vector. Useful for cleaning up imported SVG icons. |
| create_boolean_operationA | Create a boolean operation (union, subtract, intersect, exclude) from multiple nodes. Useful for complex icon shapes. |
| batch_createA | Execute multiple Figma commands in a single batch call. Dramatically improves performance for bulk operations like creating many icons or setting up variables. |
| get_local_variablesA | Get all local Variable Collections and their variables with values. Useful for inspecting the current variable/theming setup. |
| set_node_nameB | Rename a node in Figma. |
| group_nodesC | Group multiple nodes together. |
| convert_to_componentA | Convert an existing Frame or Group into a Component. Preserves all children and properties. |
| create_icon_componentA | Create an icon component from SVG content. Inserts SVG, flattens vectors, resizes to standard size, sets fill color, and converts to a Component. Returns component ID and key. |
| get_connected_filesA | List all Figma design files currently connected via the FigmaExporter plugin. Shows which file is active (receives commands). |
| set_active_fileB | Switch which Figma file receives commands. Pass a file name or channel keyword to match. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| design_strategy | Best practices for working with Figma designs |
| read_design_strategy | Best practices for reading Figma designs |
| text_replacement_strategy | Systematic approach for replacing text in Figma designs |
| annotation_conversion_strategy | Strategy for converting manual annotations to Figma's native annotations |
| swap_overrides_instances | Guide to swap instance overrides between instances |
| 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
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ChenLongbetterapp/FigmaExporterMcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server