figma-unified-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TOOL_PROFILE | No | Tool profile: minimal, standard, or full | full |
| FIGMA_WS_PORT | No | WebSocket port for the Figma plugin bridge | 18211 |
| FIGMA_ACCESS_TOKEN | Yes | Your 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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:
|
| 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:
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
| Name | Description |
|---|---|
| audit_design_system | Analyze a Figma file for design system consistency issues |
| design_screen | Design a single app screen with deep UX patterns — login, dashboard, settings, profile, onboarding, checkout, search, messaging, etc. |
| document_components | Auto-generate documentation for components in a file |
| migrate_to_variables | Convert hardcoded values to design tokens/variables |
| create_component_library | Guide through creating a reusable component with variants |
| review_accessibility | Comprehensive WCAG 2.1 accessibility audit — contrast, touch targets, alt text, typography, focus, color-blind safety, heading hierarchy |
| auto_style_guide | Scan your existing design and auto-generate a style guide page with color swatches, type samples, spacing reference, and component inventory |
| rename_layers | Scan a frame and rename all layers based on their type, content, and role — no more 'Frame 847' or 'Rectangle 293' |
| spacing_doctor | Audit spacing in a frame — find all values that don't follow your grid and tell you exactly what to fix |
| generate_variants | Design ONE state of a component → the agent creates all variants: states (hover, pressed, disabled), sizes (S/M/L), and with/without icon |
| dark_mode_mirror | Duplicate a page and intelligently swap colors to create a dark mode version |
| responsive_reflow | Take a desktop frame (1440px) and create tablet (768px) and mobile (375px) versions with intelligent layout reflow |
| build_page | Describe a page in plain English → the agent builds a complete wireframe with proper hierarchy, spacing, and content |
| handoff_annotation | Add 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
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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