Figma Copilot
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_document_infoA | Get detailed information about the current Figma document |
| get_selectionA | [DEPRECATED] Get information about the current selection in Figma. Use 'get_current_context' instead. |
| get_current_contextA | Get comprehensive context about the current state including selection, focused slide (if in Slides mode), and optionally document info |
| read_my_designB | Get detailed information about the current selection in Figma, including all node details |
| get_node_infoA | [DEPRECATED] Get detailed information about a specific node in Figma. Use 'get_nodes' instead. |
| get_nodesB | Get detailed information about one or more nodes in Figma. Accepts either a single node ID or array of IDs. |
| get_nodes_infoA | [DEPRECATED] Get detailed information about multiple nodes in Figma. Use 'get_nodes' instead. |
| create_rectangleB | 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_nodeB | 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_nodeC | Delete a node from Figma |
| delete_multiple_nodesB | Delete multiple nodes from Figma at once |
| export_node_as_imageC | 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_annotationsC | Set multiple annotations parallelly in a node |
| create_component_instanceC | 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. |
| set_corner_radiusB | Set the corner radius of a node in Figma |
| scan_text_nodesA | [DEPRECATED] Scan all text nodes in the selected Figma node - Use scan_nodes_with_options instead |
| scan_nodes_by_typesB | Scan for child nodes with specific types in the selected Figma node |
| set_multiple_text_contentsB | 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_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_connectorC | Set a copied connector node as the default connector |
| create_connectionsA | Create connections between nodes using the default connector style |
| create_slideC | Create a new slide in Figma Slides |
| create_slide_rowC | Create a new slide row in Figma Slides |
| set_slide_gridC | Rearrange slides into a grid layout in Figma Slides |
| get_focused_slideA | [DEPRECATED] Get the currently focused slide in Figma Slides. Use 'get_current_context' instead. |
| get_slide_transitionB | Get the transition settings for a slide in Figma Slides |
| set_slide_transitionB | Set the transition for a slide in Figma Slides |
| get_slides_modeA | [DEPRECATED] Get the current viewport mode in Figma Slides. Use 'get_current_context' instead. |
| set_slides_modeB | Set the viewport mode in Figma Slides |
| get_slide_gridB | Get the current slide grid arrangement in Figma Slides |
| extract_slide_contentB | Extract all content from a Figma slide including text, tables, and optionally images |
| get_presentation_summaryA | Generate an overview of a Figma presentation including slide count, slide titles, and optionally an outline summarizing key points |
| get_table_dataB | Extract data from a Figma table node in various formats (array, object, or CSV) |
| create_shape_with_textB | Create a shape with text (available in Figma Slides and FigJam) |
| create_tableC | Create a table (available in Figma Design and Slides) |
| create_gifC | Create a GIF (available in Figma Slides and FigJam) |
| set_text_style_rangeB | Apply text styling (bold, italic, underline, strikethrough) to a specific range of text in a text node |
| get_text_style_rangeB | Get the text styling (bold, italic, underline, strikethrough) for a specific range of text |
| set_text_decoration_rangeB | Set advanced text decoration properties (style, color, thickness, offset) for a text range |
| get_text_decoration_rangeB | Get the text decoration properties for a specific text range |
| set_range_fontB | Set the font family and style for a specific text range |
| set_range_font_sizeC | Set the font size for a specific text range |
| set_range_fillsC | Set the text color for a specific text range |
| get_styled_text_segmentsC | Get detailed text segments with all their styling properties |
| set_component_descriptionB | Set the description of a component with Markdown formatting support |
| get_component_descriptionA | Get the description of a component in Markdown format |
| normalize_markdownB | Normalize Markdown text to match Figma's supported subset |
| update_text_preserve_formattingA | Update text content while preserving existing character formatting. Choose a strategy for handling formatting when text length changes. |
| smart_text_replaceA | Replace specific text in a node while preserving the formatting of unchanged portions. Only replaced text gets default formatting. |
| set_multiple_text_contents_with_stylesA | Update multiple text nodes with content and optional styling in a single operation. More efficient than separate text and style updates. |
| clone_multiple_nodesA | Clone a node to multiple positions in one operation. Significantly faster than multiple individual clone operations. |
| get_multiple_nodes_infoA | [DEPRECATED] Get information for multiple nodes in a single request. Use 'get_nodes' instead. |
| set_multiple_nodes_propertyA | Set the same property value on multiple nodes at once. Useful for bulk updates like visibility, opacity, or position. |
| scan_nodes_with_optionsA | Scan for nodes with advanced options including depth limit, timeout control, and partial results. Use this when scan_text_nodes times out. |
| get_connection_statusA | Get the current connection status and statistics for the Figma plugin connection |
| execute_batchC | Execute multiple commands in sequence with a single round-trip. Ideal for complex operations that require multiple steps. |
| 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' |
| batch_operations_guide | Best practices for efficient bulk operations in Figma |
| error_recovery_guide | How to handle common errors and timeouts in Figma operations |
| text_formatting_guide | Best practices for updating text while preserving formatting |
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/xlzuvekas/figma-copilot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server