Figma MCP for Free Plan
Connect Claude to Figma with zero friction.
Quick Start
# Connect this server (installs CLI if needed)
npx -y smithery mcp add haju-xp/figma-free-mcp
# Browse available tools
npx -y smithery tool list haju-xp/figma-free-mcp
# Get full schema for a tool
npx -y smithery tool get haju-xp/figma-free-mcp get_document_info
# Call a tool
npx -y smithery 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 documentget_selection— Get information about the current selection in Figmaget_node_info— Get detailed information about a specific node in Figmaget_nodes_info— Get detailed information about multiple nodes in Figmaget_styles— Get all styles from the current Figma documentget_local_components— Get all local components from the Figma documentget_remote_components— Get available components from team libraries in Figmascan_text_nodes— Scan all text nodes in the selected Figma nodejoin_channel— Join a specific channel to communicate with Figmaexport_node_as_image— Export a node as an image from Figmacreate_page— Create a new page in the current Figma documentdelete_page— Delete a page from the current Figma documentrename_page— Rename an existing page in the Figma documentget_pages— Get all pages in the current Figma documentset_current_page— Switch to a specific page in the Figma documentduplicate_page— Duplicate an existing page in the Figma document, creating a complete copy of all its contentscreate_rectangle— Create a new rectangle in Figmacreate_frame— Create a new frame in Figmacreate_text— Create a new text element in Figmacreate_ellipse— Create a new ellipse in Figmacreate_polygon— Create a new polygon in Figmacreate_star— Create a new star in Figmagroup_nodes— Group nodes in Figmaungroup_nodes— Ungroup nodes in Figmaclone_node— Clone an existing node in Figmainsert_child— Insert a child node inside a parent node in Figmaflatten_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 Figmaresize_node— Resize a node in Figmadelete_node— Delete a node from Figmaset_corner_radius— Set the corner radius of a node in Figmaset_auto_layout— Configure auto layout properties for a node in Figmaset_effects— Set the visual effects of a node in Figmaset_effect_style_id— Apply an effect style to a node in Figmarotate_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 Figmaset_guide— Set guides on a page in Figma. Replaces all existing guides on the page.get_guide— Read guides from a page in Figmaset_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 Figmaset_text_content— Set the text content of an existing text node in Figmaset_multiple_text_contents— Set multiple text contents parallelly in a nodeset_font_name— Set the font name and style of a text node in Figmaset_font_size— Set the font size of a text node in Figmaset_font_weight— Set the font weight of a text node in Figmaset_letter_spacing— Set the letter spacing of a text node in Figmaset_line_height— Set the line height of a text node in Figmaset_paragraph_spacing— Set the paragraph spacing of a text node in Figmaset_text_case— Set the text case of a text node in Figmaset_text_decoration— Set the text decoration of a text node in Figmaget_styled_text_segments— Get text segments with specific styling in a text nodeset_text_style_id— Apply a text style to a text node in Figmaload_font_async— Load a font asynchronously in Figmaset_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 Figmacreate_component_from_node— Convert an existing node (frame, group, etc.) into a reusable component in Figmacreate_component_set— Create a component set (variants) from multiple component nodes in Figmaset_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 dataget_image_from_node— Extract image metadata from a nodereplace_image_fill— Replace existing image on node with new image while preserving transformapply_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 fillsset_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 for complete data.*