# Figma MCP for Free Plan

Connect Claude to Figma with zero friction.

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y @smithery/cli@latest mcp add haju-xp/figma-free-mcp

# Browse available tools
npx -y @smithery/cli@latest tool list haju-xp/figma-free-mcp

# Get full schema for a tool
npx -y @smithery/cli@latest tool get haju-xp/figma-free-mcp get_document_info

# Call a tool
npx -y @smithery/cli@latest tool call haju-xp/figma-free-mcp get_document_info '{}'
```

## Direct MCP Connection

Endpoint: `https://figma-free-mcp--haju-xp.run.tools`

## Tools (100)

- `get_document_info` — Get detailed information about the current Figma document
- `get_selection` — Get information about the current selection in Figma
- `get_node_info` — Get detailed information about a specific node in Figma
- `get_nodes_info` — Get detailed information about multiple nodes in Figma
- `get_styles` — Get all styles from the current Figma document
- `get_local_components` — Get all local components from the Figma document
- `get_remote_components` — Get available components from team libraries in Figma
- `scan_text_nodes` — Scan all text nodes in the selected Figma node
- `join_channel` — Join a specific channel to communicate with Figma
- `export_node_as_image` — Export a node as an image from Figma
- `create_page` — Create a new page in the current Figma document
- `delete_page` — Delete a page from the current Figma document
- `rename_page` — Rename an existing page in the Figma document
- `get_pages` — Get all pages in the current Figma document
- `set_current_page` — Switch to a specific page in the Figma document
- `duplicate_page` — Duplicate an existing page in the Figma document, creating a complete copy of all its contents
- `create_rectangle` — Create a new rectangle in Figma
- `create_frame` — Create a new frame in Figma
- `create_text` — Create a new text element in Figma
- `create_ellipse` — Create a new ellipse in Figma
- `create_polygon` — Create a new polygon in Figma
- `create_star` — Create a new star in Figma
- `group_nodes` — Group nodes in Figma
- `ungroup_nodes` — Ungroup nodes in Figma
- `clone_node` — Clone an existing node in Figma
- `insert_child` — Insert a child node inside a parent node in Figma
- `flatten_node` — Flatten a node in Figma (e.g., for boolean operations or converting to path)
- `boolean_operation` — Perform a boolean operation (union, subtract, intersect, exclude) on two or more nodes. All nodes must share the same p…
- `set_fill_color` — Set the fill color of a node in Figma. Alpha component defaults to 1 (fully opaque) if not specified. Use alpha 0 for f…
- `set_stroke_color` — Set the stroke color of a node in Figma (defaults: opacity 1, weight 1)
- `set_selection_colors` — Recursively change all stroke and fill colors of a node and all its descendants. Works like Figma's 'Selection colors' …
- `move_node` — Move a node to a new position in Figma
- `resize_node` — Resize a node in Figma
- `delete_node` — Delete a node from Figma
- `set_corner_radius` — Set the corner radius of a node in Figma
- `set_auto_layout` — Configure auto layout properties for a node in Figma
- `set_effects` — Set the visual effects of a node in Figma
- `set_effect_style_id` — Apply an effect style to a node in Figma
- `rotate_node` — Rotate a node in Figma by a specified angle in degrees (clockwise). Use relative=true to add to the current rotation in…
- `set_node_properties` — Set visibility, lock state, and/or opacity of a node in Figma. Only provided properties are changed; omitted properties…
- `reorder_node` — Change the z-order (layer order) of a node within its parent. Distinct from insert_child which re-parents a node — reor…
- `convert_to_frame` — Convert a group or shape node into a frame in Figma. Preserves position, size, visual properties, and children. Useful …
- `set_gradient` — Set a gradient fill on a node in Figma. Supports linear, radial, angular, and diamond gradients. Replaces all existing …
- `set_image` — Set an image fill on a node from base64-encoded image data. Supports PNG, JPEG, GIF, WebP. Max ~5MB after decode.
- `set_grid` — Apply layout grids to a frame node in Figma. Supports columns, rows, and grid patterns.
- `get_grid` — Read layout grids from a frame node in Figma
- `set_guide` — Set guides on a page in Figma. Replaces all existing guides on the page.
- `get_guide` — Read guides from a page in Figma
- `set_annotation` — Add an annotation label to a node in Figma. Uses the proposed Annotations API — requires Figma Desktop with enablePropo…
- `get_annotation` — Read annotations from a node in Figma. Uses the proposed Annotations API.
- `rename_node` — Rename a node (frame, component, group, etc.) in Figma
- `set_text_content` — Set the text content of an existing text node in Figma
- `set_multiple_text_contents` — Set multiple text contents parallelly in a node
- `set_font_name` — Set the font name and style of a text node in Figma
- `set_font_size` — Set the font size of a text node in Figma
- `set_font_weight` — Set the font weight of a text node in Figma
- `set_letter_spacing` — Set the letter spacing of a text node in Figma
- `set_line_height` — Set the line height of a text node in Figma
- `set_paragraph_spacing` — Set the paragraph spacing of a text node in Figma
- `set_text_case` — Set the text case of a text node in Figma
- `set_text_decoration` — Set the text decoration of a text node in Figma
- `get_styled_text_segments` — Get text segments with specific styling in a text node
- `set_text_style_id` — Apply a text style to a text node in Figma
- `load_font_async` — Load a font asynchronously in Figma
- `set_text_align` — Set the text alignment of a text node in Figma. Use textAlignHorizontal RIGHT for RTL/Arabic text.
- `create_component_instance` — Create an instance of a component in Figma
- `create_component_from_node` — Convert an existing node (frame, group, etc.) into a reusable component in Figma
- `create_component_set` — Create a component set (variants) from multiple component nodes in Figma
- `set_instance_variant` — Change the variant properties of a component instance without recreating it. This preserves instance overrides and is m…
- `set_image_fill` — Apply image to node from URL or base64 data
- `get_image_from_node` — Extract image metadata from a node
- `replace_image_fill` — Replace existing image on node with new image while preserving transform
- `apply_image_transform` — Adjust image position, scale, and rotation within node. Rotates the IMAGE inside the node, not the node itself.
- `set_image_filters` — Apply color and light adjustments to image fills
- `set_svg` — Import an SVG string as a vector node in Figma. The SVG is sanitized (scripts and external resources are stripped) befo…
- `get_svg` — Export a single node as an SVG string from Figma. Returns the SVG markup including all nested children.
- `get_variables` — List all variable collections and their variables in the current Figma file. Returns collections with their modes and v…
- `set_variable` — Create or update a variable in a Figma variable collection. Creates the collection if collectionName is provided and it…
- `apply_variable_to_node` — Bind a variable to a node property in Figma. Call once per field — for multiple fields, call multiple times.
- `switch_variable_mode` — Switch the variable mode on a node for a specific collection. This changes which mode's values are used for bound varia…
- `get_figjam_elements` — Get all FigJam-specific elements (stickies, connectors, shapes with text, sections, stamps) on the current page. Use th…
- `create_sticky` — Create a sticky note in a FigJam board. Sticky notes are the primary way to add text content in FigJam.
- `set_sticky_text` — Update the text content of an existing FigJam sticky note.
- `create_shape_with_text` — Create a FigJam shape with text inside. Useful for flowcharts, diagrams, and process maps. Supported shapes: SQUARE, EL…

---
*Response truncated. Use `npx -y @smithery/cli@latest` for complete data.*
