Skip to main content
Glama
sso-ss

figma-unified-mcp

by sso-ss

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TOOL_PROFILENoTool profile: minimal, standard, or fullfull
FIGMA_WS_PORTNoWebSocket port for the Figma plugin bridge18211
FIGMA_ACCESS_TOKENYesYour Figma Personal Access Token from https://www.figma.com/developers/api#access-tokens

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

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

Tools

Functions exposed to the LLM to take actions

NameDescription
figma_statusA

Check server, bridge, and REST API status.

figma_connect_pluginC

Connect to Figma plugin via WebSocket.

figma_send_commandC

Send a raw command to the plugin.

figma_get_fileA

Get file document tree. Defaults to depth=2 (pages + top-level frames). Set higher depth for deeper traversal, or use figma_get_node for a specific subtree.

figma_get_nodeC

Get a node with properties, styles, and children.

figma_get_nodesB

Get multiple nodes in one request. Batch alternative to get_node.

figma_get_stylesA

Get styles. fileKey→REST file styles, omit→plugin local styles.

figma_get_componentsA

Get components. source: file (REST — published components with importable keys), local (plugin — current page), library (plugin — discovered from instances on canvas).

figma_get_variablesA

Get local variables and collections (design tokens). Filter by type or name to reduce token usage.

figma_get_commentsC

Get comments on a file.

figma_post_commentC

Post a comment on a file or node.

figma_searchC

Search for nodes by name or type in a file.

figma_get_selectionA

Get currently selected nodes.

figma_get_team_componentsB

Get published components from a team. Requires Organization or Enterprise plan.

figma_get_team_stylesB

Get published styles from a team.

figma_get_componentC

Get a published component by key.

figma_get_styleB

Get a published style by key.

figma_get_library_items_usedC

Find external library components/styles used in a file.

figma_get_file_versionsC

Get version history of a file.

figma_get_team_projectsB

List all projects in a team.

figma_get_project_filesB

List all files in a project.

figma_scan_text_nodesC

Scan text nodes with chunking for large pages.

figma_scan_nodes_by_typesC

Find nodes by type (FRAME, TEXT, COMPONENT, etc.).

figma_set_focusB

Select and scroll viewport to a node.

figma_set_selectionsB

Select multiple nodes and scroll to show them.

figma_get_library_collectionsA

Get enabled library variable collections.

figma_get_library_variablesA

Get variables from a library collection by key. Filter by type or name to reduce token usage.

figma_get_viewportA

Get viewport position, zoom, and visible bounds.

figma_import_component_by_keyA

Import a published component by its library key and create an instance. Get keys from figma_get_components with source='file'. IMPORTANT: This only works for components published within the same Figma team library. For external/linked design system libraries, use figma_clone_node to clone an existing instance from the canvas instead. Run figma_get_components with source='library' first to check what's available.

figma_import_style_by_keyA

Import library styles by key so they become available locally. Use figma_get_styles to find keys. Supports batch import via styleKeys array. After import, styles can be applied with figma_apply_style by name.

figma_get_code_connect_mapC

Map Figma components to source code locations.

figma_get_design_system_rulesB

Extract design system rules: colors, typography, spacing, etc.

figma_export_pngC

Export a node as PNG/SVG/PDF with base64 data.

figma_create_pageB

Create a new page. Optionally switch to it.

figma_switch_pageB

Switch to a page by name, ID, or index.

figma_boolean_operationC

Boolean op (union/subtract/intersect/exclude) on 2+ nodes.

figma_check_accessibilityA

Comprehensive WCAG 2.1 accessibility audit. Works via REST API (no plugin needed) when fileKey is provided, or via plugin bridge for the live canvas.

Checks: text contrast (1.4.3/1.4.6), non-text contrast (1.4.11), touch targets (2.5.5/2.5.8), alt text (1.1.1), typography & text spacing (1.4.4/1.4.12), heading hierarchy (1.3.1), focus indicators (2.4.7), interactive spacing (2.5.8), color-blind safety (1.4.1).

Each issue includes WCAG criterion, severity (error/warning), and actionable fix.

figma_validate_layoutC

Check overlaps, bounds, padding, alignment issues.

figma_cacheA

Manage library/component/style cache. action: 'stats' (view cached keys), 'clear' (clear all), 'invalidate' (clear by prefix, e.g., 'get_components'). Cache auto-expires after 5 minutes. Cached tools: get_components, get_styles, get_library_collections, get_library_variables, get_team_components, get_team_styles, get_component, get_design_system_rules.

figma_get_imagesC

Export nodes as images. Returns download URLs.

figma_screenshotA

Screenshot one or more nodes as base64 images. Use nodeId for a single node, or nodeIds for multiple nodes in one call. If plugin is connected, fileKey is optional.

figma_export_svgC

Export a node as raw SVG markup.

figma_generate_handoff_specA

Generate a visual design handoff spec annotation in Figma. This returns step-by-step instructions — follow them using the available Figma tools. Available sections: spacing, anatomy, colors, typography, grid, assets. Requires plugin connection for creating annotation nodes.

figma_export_to_fileA

Export a Figma node as an image file saved to a local path. Supports PNG, JPG, SVG, and PDF formats. Uses plugin bridge for export (no fileKey needed if plugin is connected). Falls back to REST API if fileKey is provided.

Examples: { nodeId: "1:23", filePath: "~/Desktop/thumbnail.png" } { nodeId: "1:23", filePath: "/Users/me/exports/logo.svg", format: "svg", scale: 3 }

figma_create_frameC

Create a frame with full auto-layout, stroke, and nested children support.

figma_create_rectangleD

Create a rectangle.

figma_create_ellipseC

Create an ellipse/circle.

figma_create_textB

Create a text node. Accepts 'text' or 'content' for the string value.

figma_create_componentC

Create a reusable component with full auto-layout, stroke, and nested children support.

figma_create_instanceC

Create an instance of a component.

figma_create_lineC

Create a line.

figma_create_pathA

Create a vector path from points. Much simpler than create_from_svg for charts, curves, and shapes. Supports straight lines and smooth (Catmull-Rom) curves.

Examples:

  • Line chart: points=[{x:0,y:80},{x:50,y:20},{x:100,y:60}], curveType="smooth"

  • Triangle: points=[{x:50,y:0},{x:100,y:100},{x:0,y:100}], closed=true, fillColor="#FF0000"

  • Sparkline: points=[{x:0,y:50},{x:25,y:10},{x:50,y:70},{x:75,y:30},{x:100,y:50}], curveType="smooth", strokeColor="#00FF00"

figma_create_from_svgA

Create a vector node from raw SVG markup. Use this for charts, icons, curves, and any complex shapes that can't be made with rectangles/ellipses/lines. Supports , , , gradients, and all SVG elements.

figma_batchA

Batch multiple create, modify, and variable operations in one round-trip. Max 200 ops. ALWAYS prefer this over calling individual tools in a loop. Use "$ref:N" to reference node ID from operation N. create_frame/create_component support nested "children" and inline auto-layout params.

Commands: create_frame, create_rectangle, create_ellipse, create_text, create_component, create_instance, create_line, create_path, create_from_svg, move_node, resize_node, set_fill, set_stroke, set_opacity, set_visible, set_corner_radius, set_text_content, set_text_style, set_auto_layout, set_effects, rename_node, delete_node, clone_node, group_nodes, reparent_node, set_constraints, bind_variable, create_variable, set_variable_value, create_style, apply_style, apply_style_by_name, delete_style, rename_style, set_annotation, import_component_by_key, import_style_by_key.

Param names in batch must match the plugin function signatures exactly:

  • create_text: {content, ...} or {text, ...} — both accepted for the text string

  • set_text_content: {nodeId, content} or {nodeId, text} for single, or {updates: [{nodeId, content}, ...]} for batch

  • create_path: {points: [{x,y},...], curveType?, closed?, strokeColor?, strokeWeight?, fillColor?, name?, parentId?}

  • import_component_by_key: {componentKey, x?, y?, parentId?, name?} (also accepts 'key' as alias for componentKey)

  • clone_node: {nodeId, offsetX?, offsetY?, newName?}

  • delete_node: {nodeId} for single, or use delete_multiple_nodes with {nodeIds: [...]}

IMPORTANT: Only FRAME, GROUP, COMPONENT, and PAGE nodes can be parents. Use create_frame (not create_rectangle) when you need children inside a shape (e.g. a pill/badge with a label).

figma_move_nodeC

Move a node to a new position.

figma_resize_nodeD

Resize a node.

figma_set_fillA

Set fill of a node. Supports solid colors, gradients, and images.

Simple solid: { nodeId, color: {r,g,b} } Gradient: { nodeId, fills: [{ type:"GRADIENT_LINEAR", gradientStops:[{color:{r,g,b,a},position:0},{color:{r,g,b,a},position:1}] }] } Image: { nodeId, fills: [{ type:"IMAGE", imageUrl:"https://..." }] } Multiple fills: pass multiple items in the fills array.

figma_set_strokeC

Set stroke (border) of a node.

figma_set_opacityC

Set node opacity.

figma_set_visibleC

Show or hide a node.

figma_set_corner_radiusC

Set corner radius of a node.

figma_set_text_contentB

Update text content. Supports batch via updates array. Accepts 'text' or 'content' for the string value.

figma_set_text_styleB

Set text style with presets or custom values. Any explicit property overrides the preset.

Presets: display, heading-xl, heading-lg, heading-md, heading-sm, heading-xs, body-xl, body-lg, body-md, body-sm, body-xs, label-lg, label-md, label-sm, caption, overline

Examples: { nodeId, preset: "heading-xl" } { nodeId, preset: "body-md", fontWeight: 700 } { nodeId, fontSize: 48, fontWeight: 800 }

figma_rename_nodeC

Rename a node.

figma_delete_nodeB

Delete one or more nodes.

figma_set_auto_layoutC

Configure auto-layout (flexbox) on a frame.

figma_set_effectsC

Apply effects (shadows, blurs) to a node.

figma_group_nodesC

Group nodes together.

figma_set_constraintsC

Set resize constraints for a node.

figma_reparent_nodeC

Move a node to a different parent.

figma_clone_nodeC

Clone a node with optional offset.

figma_get_annotationsB

Get annotations on a node or the whole document.

figma_set_annotationC

Set annotation(s) on node(s).

figma_get_instance_overridesB

Get override properties from a component instance.

figma_set_instance_overridesC

Apply overrides to component instances.

figma_create_variable_collectionB

Create a variable collection for design tokens. Uses REST API — no plugin required.

figma_create_variableC

Create a variable (COLOR, FLOAT, STRING, BOOLEAN). Uses REST API — no plugin required.

figma_set_variable_valueA

Set variable value for a mode. Uses REST API — no plugin required. Use mode ID (get from figma_get_variables).

figma_update_variableB

Update variable properties (name, description, scopes). Uses REST API — no plugin required.

figma_delete_variableB

Delete a variable. Uses REST API — no plugin required.

figma_delete_variable_collectionB

Delete a variable collection. Uses REST API — no plugin required.

figma_bind_variableA

Bind a variable to a node property. Requires plugin connection (no REST endpoint for this).

figma_create_styleC

Create a reusable style (paint, text, effect). Requires plugin connection.

figma_apply_styleB

Apply a style to a node by ID or by name. Provide styleId to apply by ID, or styleName to apply by name. Requires plugin connection.

figma_create_interactionC

Add a prototype interaction to a node.

figma_remove_interactionsB

Remove all interactions from a node.

figma_create_flowC

Create a prototype flow starting point on a frame.

figma_remove_flowB

Remove a flow starting point from a frame.

figma_get_flowsA

Get all prototype flows in the current page.

figma_set_default_transitionC

Set default transition for this frame.

figma_setup_overlayC

Configure a frame as an overlay in prototypes.

figma_set_scroll_behaviorB

Configure scrolling for a frame in prototypes.

figma_get_interactionsC

Get all interactions on a node.

figma_present_prototypeC

Open prototype presentation view.

figma_generate_cssB

Generate CSS from a node's styles.

figma_generate_reactC

Generate React component from a node.

figma_generate_swiftuiC

Generate SwiftUI code from a node.

figma_generate_htmlC

Generate semantic HTML from a node.

figma_generate_tailwind_configB

Generate Tailwind config from Figma design tokens.

figma_generate_tokensC

Export design tokens (CSS vars, JSON, SCSS).

Prompts

Interactive templates invoked by user choice

NameDescription
audit_design_systemAnalyze a Figma file for design system consistency issues
design_screenDesign a single app screen with deep UX patterns — login, dashboard, settings, profile, onboarding, checkout, search, messaging, etc.
document_componentsAuto-generate documentation for components in a file
migrate_to_variablesConvert hardcoded values to design tokens/variables
create_component_libraryGuide through creating a reusable component with variants
review_accessibilityComprehensive WCAG 2.1 accessibility audit — contrast, touch targets, alt text, typography, focus, color-blind safety, heading hierarchy
auto_style_guideScan your existing design and auto-generate a style guide page with color swatches, type samples, spacing reference, and component inventory
rename_layersScan a frame and rename all layers based on their type, content, and role — no more 'Frame 847' or 'Rectangle 293'
spacing_doctorAudit spacing in a frame — find all values that don't follow your grid and tell you exactly what to fix
generate_variantsDesign ONE state of a component → the agent creates all variants: states (hover, pressed, disabled), sizes (S/M/L), and with/without icon
dark_mode_mirrorDuplicate a page and intelligently swap colors to create a dark mode version
responsive_reflowTake a desktop frame (1440px) and create tablet (768px) and mobile (375px) versions with intelligent layout reflow
build_pageDescribe a page in plain English → the agent builds a complete wireframe with proper hierarchy, spacing, and content
handoff_annotationAdd developer handoff annotations — side-by-side layout with numbered badges on the design and spec cards in a sidebar

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/sso-ss/figma-unified-mcp'

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