Server Configuration
Describes the environment variables required to run the server.
Name | Required | Description | Default |
---|---|---|---|
No arguments |
Schema
Prompts
Interactive templates invoked by user choice
Name | Description |
---|---|
No prompts |
Resources
Contextual data attached and managed by the client
Name | Description |
---|---|
No resources |
Tools
Functions exposed to the LLM to take actions
Name | Description |
---|---|
join | Join a specific channel to communicate with Figma. Returns:
|
get_components | Get components from the current document, a team library, or remote team libraries. Returns:
|
set_variant | Create, add, rename, delete, organize, or batch create variants/properties in a component set (single or batch). Returns: Array of result objects for each operation. |
get_variant | Get info about variants/properties for one or more component sets. Returns: For single: { componentSetId, variants: [...] }, for batch: Array<{ componentSetId, variants: [...] }>. |
create_component_instance | Creates one or more component instances in Figma. Accepts either a single entry (via 'entry') or an array of entries (via 'entries'). Returns:
|
create_components_from_node | Converts one or more existing nodes into components in Figma. Returns:
|
set_selection | - |
get_selection | Get information about the current selection in Figma. Returns:
|
duplicate_page | Duplicate a Figma page and all its children as a new page. Returns:
|
get_document_info | Get detailed information about the current Figma document. Returns:
|
get_doc_pages | Get information about all pages in the current Figma document. Returns:
|
export_node_as_image | Exports a node as an image from Figma in the specified format and scale. Returns:
|
get_html | Generates HTML structure from Figma nodes. Returns:
|
get_css_async | Get CSS properties from a node. Returns:
|
set_image | Sets or inserts one or more images into Figma. Each image can be specified by a remote URL, a local file path, or a base64 data URI. Accepts either a single image config (via 'image') or an array of configs (via 'images'). You can customize size, name, and parent node. Returns:
|
get_image | - |
set_corner_radius | Sets the corner radius of a node in Figma. Returns:
|
move_node | Moves one or more nodes to a new position in Figma. Accepts either a single move config (via 'move') or an array of configs (via 'moves'). Returns:
|
resize_node | Resize a node in Figma. Returns:
|
rotate_node | Rotate a node in Figma. Returns:
|
set_auto_layout_resizing | Sets hug or fill sizing mode on an auto layout frame or child node in Figma. Returns:
|
detach_instances | Detaches one or more Figma component instances from their masters. Returns:
|
set_node_prop | Sets node properties (locked, visible, etc.) for one or more nodes. |
set_auto_layout | Set, update, or delete one or more layout grids on Figma nodes (FRAME, COMPONENT, INSTANCE). Returns: Array of result objects for each operation. |
set_constraint | Set constraints (left/right/top/bottom/center/scale/stretch) for one or more Figma nodes. Returns: Array of result objects for each operation. |
get_constraint | Get constraints for one or more Figma nodes (optionally including children). Returns: Array of constraint info for each node, including children if requested. |
subscribe_event | Subscribe or unsubscribe to a Figma event (e.g., selection_change, document_change). Returns: { subscriptionId } for subscribe, { success: true } for unsubscribe |
create_button | Creates a complete button with background and text in Figma at the specified coordinates. You can customize size, text, colors, font, corner radius, name, and parent node. Returns:
|
set_variable | Creates, updates, or deletes one or more Figma Variables (design tokens). Returns:
|
get_annotation | Get annotation(s) for one or more Figma nodes. Returns:
|
set_annotation | Set, update, or delete annotation(s) for one or more Figma nodes. Returns:
|
boolean | Perform boolean operations (union, subtract, intersect, exclude) on Figma nodes. Returns:
|
group_node | Groups or ungroups nodes in Figma, depending on the 'group' flag. Returns:
|
delete_node | Deletes one or more nodes in Figma. Returns:
|
set_node | Sets or inserts one or more child nodes into parent nodes at optional index positions in Figma. Returns:
|
flatten_node | Flatten one or more nodes in Figma, or the current selection, merging all child vector layers and shapes into a single vector layer. Returns:
|
duplicate_node | Clones one or more nodes in Figma. Accepts either a single node config (via 'node') or an array of configs (via 'nodes'). Optionally, you can specify positions, offsets, and parent. Returns:
|
rename_layer | Renames one or more nodes in Figma. Accepts either a single rename config (via 'rename') or an array of configs (via 'renames'). Returns:
|
reorder_node | Reorders one or more nodes in their parents' children arrays. Accepts either a single reorder config (via 'reorder') or an array of configs (via 'reorders'). Optionally, you can provide options such as skip_errors. Returns:
|
get_node_info | Get detailed information about one or more nodes in Figma. Returns:
|
set_matrix_transform | Set a transformation matrix on one or more Figma nodes (single or batch). Parameters:
Returns:
|
set_grid | Create, update, or delete one or more layout grids on Figma nodes (FRAME, COMPONENT, INSTANCE). Returns: Array of result objects for each operation. |
get_grid | Get all layout grids for one or more Figma nodes (FRAME, COMPONENT, INSTANCE). Returns: For single: { nodeId, grids: [...] }, for batch: Array<{ nodeId, grids: [...] }>. |
set_guide | Add or delete one or more guides on the current Figma page. Returns: Array of result objects for each operation. |
get_guide | Get all guides on the current Figma page. Returns: Array of guides, each with { axis, offset } |
set_page | Create, delete, rename, or set current page (single or batch). Returns: Array of result objects for each operation. |
get_page | Get info for one, many, or all pages. Returns: For single: { pageId, name, isActive }, for batch: Array<{ pageId, name, isActive }>. |
create_rectangle | Creates one or more rectangle shape nodes in the specified Figma document. Accepts either a single rectangle config (via 'rectangle') or an array of configs (via 'rectangles'). Optionally, you can provide a name, a parent node ID to attach the rectangle(s) to, and a corner radius for rounded corners. Returns:
|
create_frame | Creates one or more frame nodes in the specified Figma document. Accepts either a single frame config (via 'frame') or an array of configs (via 'frames'). Optionally, you can provide a name, a parent node ID, fill color, stroke color, stroke weight, and corner radius. Corner radius can be:
Returns:
|
create_line | Creates one or more line nodes in the specified Figma document. Accepts either a single line config (via 'line') or an array of configs (via 'lines'). Optionally, you can provide a parent node ID, stroke color, and stroke weight. Returns:
|
create_ellipse | Creates one or more ellipse nodes in the specified Figma document. Accepts either a single ellipse config (via 'ellipse') or an array of configs (via 'ellipses'). Optionally, you can provide a name, a parent node ID, fill color, stroke color, and stroke weight. Returns:
|
create_polygon | Creates one or more polygons in Figma. Accepts either a single polygon config (via 'polygon') or an array of configs (via 'polygons'). Optionally, you can provide a name, a parent node ID, fill color, stroke color, and stroke weight. Returns:
|
set_mask | Applies a mask in Figma. Supports single or batch:
|
set_fill_and_stroke | Sets fill and/or stroke color(s) and/or stroke weight for one or more nodes. |
get_fill_and_stroke | Gets fill and/or stroke color(s) and stroke weight for one or more nodes. |
create_gradient_style | Creates one or more gradient style variables in Figma. Returns:
|
set_gradient | Set a gradient on one or more nodes in Figma, either directly or by style variable. Returns:
|
set_effect | Set effect(s) directly or by style variable on one or more nodes in Figma. Returns:
|
apply_effect_style | Applies an effect style to a node in Figma. Returns:
|
get_doc_style | Get all styles from the current Figma document. Returns:
|
get_node_style | Get all style properties (fills, strokes, effects, text styles, style IDs, etc.) for one or more nodes. Returns:
|
get_text_style | - |
load_font_async | Load a font asynchronously in Figma. Returns:
|
get_svg_vector | Get SVG markup for one or more vector nodes. Returns:
|
set_svg_vector | Sets or inserts one or more SVG vectors in Figma. Accepts either a single SVG config (via 'svg') or an array of configs (via 'svgs'). Returns:
|
get_styled_text_segments | Get text segments with specific styling in a text node. Returns:
|
scan_text_nodes | Scan all text nodes in the selected Figma node. Returns:
|
set_text_content | Sets the text content of one or more text nodes in Figma. Returns:
|
set_text_style | Sets one or more text style properties (font, size, weight, spacing, case, decoration, etc.) on one or more nodes in Figma. Returns:
|
set_text | Creates one or more text elements in Figma. Accepts either a single text config (via 'text') or an array of configs (via 'texts'). If 'width' and 'height' are provided, creates a bounded text box; otherwise, creates a regular text node. Returns:
|
create_vector | Creates one or more vector nodes in Figma. Use 'vector' for single or 'vectors' for batch. |
get_vector | Retrieves one or more vector nodes by ID(s). Accepts 'nodeId' or 'nodeIds'. |