TalkToFigma
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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_designB | Get detailed information about the current selection in Figma, including all node details |
| get_node_infoA | Get detailed information about a specific node in Figma |
| get_nodes_infoB | Get detailed information about multiple nodes in Figma |
| create_rectangleB | Create a new rectangle in Figma |
| create_frameC | Create a new frame in Figma |
| create_textC | Create a new text element in Figma |
| set_fill_colorB | Set the fill color of a node in Figma can be TextNode or FrameNode |
| set_stroke_colorA | Set the stroke color of a node in Figma |
| move_nodeC | Move a node to a new position in Figma |
| clone_nodeB | Clone an existing node in Figma |
| resize_nodeC | Resize a node in Figma |
| delete_nodeB | Delete a node from Figma |
| delete_multiple_nodesA | Delete multiple nodes from Figma at once |
| export_node_as_imageB | Export a node as an image from Figma |
| set_text_contentA | 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_annotationsB | 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. For LOCAL components (from get_local_components), use componentId with the id field. For published LIBRARY components, use componentKey with the publishedKey field. |
| 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_nodesC | 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_alignA | Set primary and counter axis alignment for an auto-layout frame in Figma |
| set_layout_sizingA | Set horizontal and vertical sizing modes for an auto-layout frame in Figma |
| set_item_spacingA | 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_connectorB | Set a copied connector node as the default connector |
| create_connectionsA | 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 |
| set_parentA | Move a node so it becomes a child of another node (reparent). Uses appendChild, or insertChild when an index is given. Works with Auto Layout parents. Set keepPosition to preserve the node's absolute position (ignored for auto-layout parents). |
| reorder_childrenA | Change the order of a child node within its parent's children array by moving it to a new index |
| set_text_styleA | Set detailed typography on a TEXT node in one call. Only the provided fields are applied. Font is loaded automatically before changes. lineHeight/letterSpacing accept an object with value+unit ({unit:'AUTO'} for lineHeight auto). |
| set_effectA | Replace all effects on a node with the provided list (assigns node.effects). Pass effects:[] to clear every effect. SHADOW effects use color/offset/radius/spread; BLUR effects use only radius. Fails clearly if the node does not support effects. |
| get_variablesA | List local variable collections (with their modes) and variables (id, name, resolvedType, valuesByMode). Optionally filter to a single collection. |
| create_variable_collectionA | Create a local variable collection. Optionally provide mode names; the first renames the default mode and the rest are added. |
| create_variableA | Create a variable inside a collection, optionally seeding per-mode values. COLOR values are { r, g, b, a } (0-1). Get modeIds from get_variables or create_variable_collection. |
| bind_variableA | Bind a variable to a node property. property 'fills' or 'strokes' binds the first solid paint's color (setBoundVariableForPaint). Other properties (width, height, cornerRadius, top/bottom/left/right radius, padding*, itemSpacing, counterAxisSpacing, strokeWeight, opacity, min/maxWidth, min/maxHeight, and text fields fontSize/fontWeight/lineHeight/letterSpacing/paragraphSpacing/paragraphIndent) use node.setBoundVariable. Variable type must match the property. |
| create_component_from_nodeA | Convert an existing node into a component (figma.createComponentFromNode). The node cannot already be a component, component set, or instance, nor be nested inside one. Returns the new component's ID. |
| create_componentA | Create a new empty component. Supports the same Auto Layout parameters as create_frame. Returns the component's ID for use as a parentId or with create_component_instance. |
| join_channelC | Join a specific channel to communicate with Figma |
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 |
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- 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/Takeaki0817/figma-local-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server