Skip to main content
Glama
haju-xp

figma-free-mcp

by haju-xp

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
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_document_infoA

Get detailed information about the current Figma document

get_selectionB

Get information about the current selection in Figma

get_node_infoB

Get detailed information about a specific node in Figma

get_nodes_infoA

Get detailed information about multiple nodes in Figma

get_stylesA

Get all styles from the current Figma document

get_local_componentsB

Get all local components from the Figma document

get_remote_componentsA

Get available components from team libraries in Figma

scan_text_nodesC

Scan all text nodes in the selected Figma node

join_channelC

Join a specific channel to communicate with Figma

export_node_as_imageC

Export a node as an image from Figma

create_pageB

Create a new page in the current Figma document

delete_pageB

Delete a page from the current Figma document

rename_pageC

Rename an existing page in the Figma document

get_pagesA

Get all pages in the current Figma document

set_current_pageB

Switch to a specific page in the Figma document

duplicate_pageA

Duplicate an existing page in the Figma document, creating a complete copy of all its contents

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

create_ellipseB

Create a new ellipse in Figma

create_polygonB

Create a new polygon in Figma

create_starC

Create a new star in Figma

group_nodesC

Group nodes in Figma

ungroup_nodesC

Ungroup nodes in Figma

clone_nodeC

Clone an existing node in Figma

insert_childB

Insert a child node inside a parent node in Figma

flatten_nodeB

Flatten a node in Figma (e.g., for boolean operations or converting to path)

boolean_operationB

Perform a boolean operation (union, subtract, intersect, exclude) on two or more nodes. All nodes must share the same parent.

set_fill_colorA

Set the fill color of a node in Figma. Alpha component defaults to 1 (fully opaque) if not specified. Use alpha 0 for fully transparent.

set_stroke_colorB

Set the stroke color of a node in Figma (defaults: opacity 1, weight 1)

set_selection_colorsA

Recursively change all stroke and fill colors of a node and all its descendants. Works like Figma's 'Selection colors' feature - perfect for recoloring icon instances.

move_nodeB

Move a node to a new position in Figma

resize_nodeB

Resize a node in Figma

delete_nodeC

Delete a node from Figma

set_corner_radiusC

Set the corner radius of a node in Figma

set_auto_layoutC

Configure auto layout properties for a node in Figma

set_effectsC

Set the visual effects of a node in Figma

set_effect_style_idC

Apply an effect style to a node in Figma

rotate_nodeA

Rotate a node in Figma by a specified angle in degrees (clockwise). Use relative=true to add to the current rotation instead of setting an absolute value. Note: locked nodes can still be rotated — the Plugin API bypasses the UI lock by design.

set_node_propertiesA

Set visibility, lock state, and/or opacity of a node in Figma. Only provided properties are changed; omitted properties remain unchanged.

reorder_nodeA

Change the z-order (layer order) of a node within its parent. Distinct from insert_child which re-parents a node — reorder_node changes position within the same parent.

convert_to_frameA

Convert a group or shape node into a frame in Figma. Preserves position, size, visual properties, and children. Useful for converting groups into auto-layout-capable frames.

set_gradientA

Set a gradient fill on a node in Figma. Supports linear, radial, angular, and diamond gradients. Replaces all existing fills (same behavior as set_fill_color).

set_imageA

Set an image fill on a node from base64-encoded image data. Supports PNG, JPEG, GIF, WebP. Max ~5MB after decode.

set_gridB

Apply layout grids to a frame node in Figma. Supports columns, rows, and grid patterns.

get_gridA

Read layout grids from a frame node in Figma

set_guideA

Set guides on a page in Figma. Replaces all existing guides on the page.

get_guideC

Read guides from a page in Figma

set_annotationA

Add an annotation label to a node in Figma. Uses the proposed Annotations API — requires Figma Desktop with enableProposedApi.

get_annotationC

Read annotations from a node in Figma. Uses the proposed Annotations API.

rename_nodeB

Rename a node (frame, component, group, etc.) in Figma

set_text_contentB

Set the text content of an existing text node in Figma

set_multiple_text_contentsB

Set multiple text contents parallelly in a node

set_font_nameB

Set the font name and style of a text node in Figma

set_font_sizeB

Set the font size of a text node in Figma

set_font_weightB

Set the font weight of a text node in Figma

set_letter_spacingB

Set the letter spacing of a text node in Figma

set_line_heightB

Set the line height of a text node in Figma

set_paragraph_spacingB

Set the paragraph spacing of a text node in Figma

set_text_caseB

Set the text case of a text node in Figma

set_text_decorationC

Set the text decoration of a text node in Figma

get_styled_text_segmentsA

Get text segments with specific styling in a text node

set_text_style_idC

Apply a text style to a text node in Figma

load_font_asyncC

Load a font asynchronously in Figma

set_text_alignB

Set the text alignment of a text node in Figma. Use textAlignHorizontal RIGHT for RTL/Arabic text.

create_component_instanceB

Create an instance of a component in Figma

create_component_from_nodeB

Convert an existing node (frame, group, etc.) into a reusable component in Figma

create_component_setA

Create a component set (variants) from multiple component nodes in Figma

set_instance_variantA

Change the variant properties of a component instance without recreating it. This preserves instance overrides and is more efficient than delete + create workflow.

set_image_fillC

Apply image to node from URL or base64 data

get_image_from_nodeB

Extract image metadata from a node

replace_image_fillA

Replace existing image on node with new image while preserving transform

apply_image_transformC

Adjust image position, scale, and rotation within node. Rotates the IMAGE inside the node, not the node itself.

set_image_filtersC

Apply color and light adjustments to image fills

set_svgA

Import an SVG string as a vector node in Figma. The SVG is sanitized (scripts and external resources are stripped) before import. Max 500KB.

get_svgA

Export a single node as an SVG string from Figma. Returns the SVG markup including all nested children.

get_variablesA

List all variable collections and their variables in the current Figma file. Returns collections with their modes and variables.

set_variableA

Create or update a variable in a Figma variable collection. Creates the collection if collectionName is provided and it doesn't exist.

apply_variable_to_nodeA

Bind a variable to a node property in Figma. Call once per field — for multiple fields, call multiple times.

switch_variable_modeB

Switch the variable mode on a node for a specific collection. This changes which mode's values are used for bound variables.

get_figjam_elementsA

Get all FigJam-specific elements (stickies, connectors, shapes with text, sections, stamps) on the current page. Use this to read the contents of a FigJam board.

create_stickyA

Create a sticky note in a FigJam board. Sticky notes are the primary way to add text content in FigJam.

set_sticky_textB

Update the text content of an existing FigJam sticky note.

create_shape_with_textB

Create a FigJam shape with text inside. Useful for flowcharts, diagrams, and process maps. Supported shapes: SQUARE, ELLIPSE, ROUNDED_RECTANGLE, DIAMOND, TRIANGLE_UP, TRIANGLE_DOWN, PARALLELOGRAM_RIGHT, PARALLELOGRAM_LEFT.

create_connectorA

Create a connector (arrow or line) in FigJam. Connectors can link two existing nodes by ID, or connect arbitrary canvas positions. Use this to draw flow arrows between stickies, shapes, etc.

create_sectionB

Create a FigJam section. Sections are used to group and organise content on the FigJam board. They appear as labelled coloured regions.

auto_connectA

Automatically detect and connect to an active Figma plugin channel. No channel ID needed.

list_active_channelsA

List all active Figma plugin channels currently connected to the WebSocket server.

sync_css_to_figmaB

Read a CSS file and sync all CSS variables to Figma variable collections

sync_figma_to_cssA

Read Figma variable collections and generate a CSS file with custom properties

compare_design_tokensB

Compare CSS variables with Figma variables and report differences

apply_design_systemB

Read a design system policy markdown file and apply styles to Figma

audit_design_consistencyC

Audit a Figma file for design system policy violations

list_all_pages_detailedA

List all pages in the Figma document with frame counts and duplicate detection

deduplicate_pagesB

Find and remove duplicate pages, keeping the one with more content

organize_pagesA

Reorder pages alphabetically or by a custom number prefix (01., 02., etc.)

cleanup_empty_pagesA

Find and optionally delete pages with no children/frames

react_to_figmaB

Analyze a React/TSX component file and create corresponding Figma frames and elements

css_class_to_figma_styleB

Convert CSS class definitions to Figma local paint/text styles

generate_component_variantsA

Generate Figma component variants (default, hover, active, disabled) from a base component

Prompts

Interactive templates invoked by user choice

NameDescription
design_strategyBest practices for working with Figma designs
read_design_strategyBest practices for reading Figma designs
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/haju-xp/figma-free-mcp'

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