Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
add_variable_modeA

Add a new mode to an existing variable collection (e.g. Light/Dark, Desktop/Mobile).

apply_style_to_nodeA

Apply an existing local style (paint, text, effect, or grid) to a node, linking the node to that style.

bind_variable_to_nodeA

Bind a local variable to a node property, so the property is driven by the variable's value. Use 'fillColor' to bind a COLOR variable to the node's fill color. Use other fields (opacity, width, height, cornerRadius, itemSpacing, paddingTop, paddingRight, paddingBottom, paddingLeft) for FLOAT variables.

clone_nodeB

Clone an existing node, optionally repositioning it or placing it in a new parent.

create_componentA

Convert an existing FRAME node into a reusable COMPONENT. The frame is replaced in place by the new component.

create_effect_styleA

Create a new local effect style (drop shadow, inner shadow, or blur).

create_ellipseB

Create a new ellipse (circle/oval) on the current page or inside a parent node.

create_frameB

Create a new frame on the current page or inside a parent node.

create_grid_styleB

Create a new local layout grid style.

create_paint_styleB

Create a new local paint style with a solid fill color.

create_rectangleA

Create a new rectangle on the current page or inside a parent node.

create_textC

Create a new text node on the current page or inside a parent node.

create_text_styleC

Create a new local text style.

create_variableC

Create a new variable in a collection.

create_variable_collectionB

Create a new local variable collection.

delete_nodesA

Delete one or more nodes. This cannot be undone via MCP — use with care.

delete_styleA

Delete a style (paint, text, effect, or grid) by its ID.

delete_variableA

Delete a variable or an entire variable collection. Provide either variableId or collectionId.

detach_instanceA

Detach one or more component instances, converting them to plain frames. The link to the main component is broken; all visual properties are preserved.

export_frames_to_pdfA

Export multiple frames as a single multi-page PDF file. Each frame becomes one page in order. Ideal for pitch decks, proposals, and slide exports.

export_tokensA

Export all design tokens (variables and paint styles) as JSON or CSS custom properties. Ideal for bridging Figma variables into your codebase.

get_annotationsC

Get all dev-mode annotations in the current document or on a specific node.

get_design_contextB

Get a depth-limited tree of the current selection or page. More token-efficient than get_document for large files.

get_documentC

Get the current Figma page document tree

get_fontsB

List all fonts used in the current page, sorted by usage frequency. Useful for understanding typography without scanning all text nodes.

get_local_componentsB

Get all components defined in the current Figma file.

get_metadataB

Get metadata about the current Figma document: file name, pages, current page

get_nodeB

Get a specific Figma node by ID. Must use colon format e.g. '4029:12345', never hyphens.

get_nodes_infoB

Get detailed information about multiple Figma nodes by ID in a single call.

get_pagesA

List all pages in the document with their IDs and names. Lightweight alternative to get_document.

get_reactionsC

Get prototype/interaction reactions on a node. Useful for understanding interactive prototypes.

get_screenshotB

Export a screenshot of selected or specific nodes. Returns base64-encoded image data.

get_selectionC

Get the currently selected nodes in Figma

get_stylesC

Get all local styles in the document: paint, text, effect, and grid styles

get_variable_defsB

Get all local variable definitions: collections, modes, and values. Variables are Figma's design token system.

get_viewportB

Get the current Figma viewport: scroll center, zoom level, and visible bounds.

group_nodesA

Group two or more nodes into a GROUP. All nodes must share the same parent.

import_imageA

Import a base64-encoded image into Figma as a rectangle with an image fill. Use get_screenshot to capture images or provide your own base64 PNG/JPG.

move_nodesA

Move one or more nodes to an absolute position on the canvas.

navigate_to_pageA

Switch the active Figma page. Provide either pageId or pageName.

remove_reactionsA

Remove prototype reactions from a node. Omit indices to remove all reactions. Provide a zero-based indices array to remove specific reactions (use get_reactions first to see current indices).

rename_nodeC

Rename a node.

resize_nodesA

Resize one or more nodes. Provide width, height, or both.

save_screenshotsA

Export screenshots for multiple nodes and save them to the local filesystem. Returns metadata only (no base64).

scan_nodes_by_typesC

Find all nodes matching specific types (e.g. FRAME, COMPONENT, INSTANCE) within a subtree.

scan_text_nodesB

Scan all TEXT nodes in a subtree. Useful for extracting all copy from a component or frame.

search_nodesA

Search for nodes by name substring and/or type within a subtree. Avoids dumping the entire document tree.

set_auto_layoutA

Set or update auto-layout (flex) properties on an existing frame.

set_corner_radiusA

Set corner radius on one or more nodes. Provide a uniform cornerRadius or individual per-corner values.

set_fillsC

Set the fill color of a node.

set_opacityA

Set the opacity of one or more nodes (0 = fully transparent, 1 = fully opaque).

set_reactionsA

Set prototype reactions on a node. Use mode "replace" (default) to overwrite all reactions, or "append" to add to existing ones.

Supported triggers: ON_CLICK, ON_HOVER, ON_PRESS, ON_DRAG, AFTER_TIMEOUT, MOUSE_ENTER, MOUSE_LEAVE, MOUSE_UP, MOUSE_DOWN Supported action types: NODE (navigation), BACK, CLOSE, URL NODE navigation values: NAVIGATE, OVERLAY, SCROLL_TO, SWAP, CHANGE_TO Transition types: DISSOLVE, SMART_ANIMATE, MOVE_IN, MOVE_OUT, PUSH, SLIDE_IN, SLIDE_OUT DISSOLVE / SMART_ANIMATE: {"type":"DISSOLVE","duration":0.3,"easing":{"type":"EASE_OUT"}} Directional (PUSH, MOVE_IN, MOVE_OUT, SLIDE_IN, SLIDE_OUT): also require "direction" (LEFT|RIGHT|TOP|BOTTOM) and "matchLayers" (bool): {"type":"PUSH","direction":"LEFT","matchLayers":false,"duration":0.3,"easing":{"type":"EASE_OUT"}}

Each reaction has a "trigger" and an "actions" array (plural). Each action in the array is an Action object.

Example — on-click navigate with dissolve: {"nodeId":"1:2","reactions":[{"trigger":{"type":"ON_CLICK"},"actions":[{"type":"NODE","destinationId":"1:3","navigation":"NAVIGATE","transition":{"type":"DISSOLVE","duration":0.3,"easing":{"type":"EASE_OUT"}},"preserveScrollPosition":false}]}]}

Example — on-click navigate with push (directional transition): {"nodeId":"1:2","reactions":[{"trigger":{"type":"ON_CLICK"},"actions":[{"type":"NODE","destinationId":"1:3","navigation":"NAVIGATE","transition":{"type":"PUSH","direction":"LEFT","matchLayers":false,"duration":0.3,"easing":{"type":"EASE_OUT"}},"preserveScrollPosition":false}]}]}

Example — open URL on hover: {"nodeId":"1:2","reactions":[{"trigger":{"type":"ON_HOVER"},"actions":[{"type":"URL","url":"https://example.com"}]}]}

Example — auto-advance after 3 seconds: {"nodeId":"1:2","reactions":[{"trigger":{"type":"AFTER_TIMEOUT","timeout":3000},"actions":[{"type":"NODE","destinationId":"1:4","navigation":"NAVIGATE","transition":{"type":"DISSOLVE","duration":0.3,"easing":{"type":"EASE_OUT"}},"preserveScrollPosition":false}]}]}

Example — go back on click: {"nodeId":"1:2","reactions":[{"trigger":{"type":"ON_CLICK"},"actions":[{"type":"BACK"}]}]}

set_strokesC

Set the stroke color and weight of a node.

set_textB

Update the text content of an existing TEXT node.

set_variable_valueB

Set a variable's value for a specific mode.

swap_componentA

Swap the main component of an existing INSTANCE node, replacing it with a different component while keeping position and size.

ungroup_nodesA

Ungroup one or more GROUP nodes, moving their children to the parent and removing the group.

update_paint_styleA

Update the name, color, or description of an existing paint style.

Prompts

Interactive templates invoked by user choice

NameDescription
annotation_conversion_strategyStrategy for converting manual annotations to Figma's native annotations
bulk_rename_strategyRename nodes across a design following a naming convention
design_strategyBest practices for working with Figma designs
design_token_generation_strategyExtract raw values from an existing design and build a structured variable + style token system
generate_color_paletteGenerate a complete semantic color palette (primitive scale + semantic aliases) from one or more brand colors
generate_component_variantsGenerate design variants of an existing component or frame (size, color, state, theme)
generate_type_scaleGenerate a complete typography scale (text styles) from a base font and size
reaction_to_connector_strategyStrategy for analyzing Figma prototype reactions and mapping interaction flows
read_design_strategyBest practices for reading Figma designs with figma-mcp-go
style_audit_strategyAudit a design for nodes using raw values instead of linked styles or variables
swap_overrides_instancesStrategy for transferring overrides between component instances in Figma
text_replacement_strategySystematic approach for replacing text in Figma designs

Resources

Contextual data attached and managed by the client

NameDescription

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/vkhanhqui/figma-mcp-go'

If you have feedback or need assistance with the MCP directory API, please join our Discord server