Skip to main content
Glama

Figma MCP — AI-Native UI/UX & Prototyping Engine


⚡ The Challenge & The Solution

Traditional AI design tools produce "Dribbble-grade slop"—glossy, unvalidated happy-path screenshots that fail in real product engineering. Figma MCP was built from the ground up to solve the core architectural and usability gaps in AI-generated design:

Challenge

Traditional AI & Cloud API Limitation

The Figma MCP Solution

1. The "Read-Only" API Barrier

Figma's cloud REST API is strictly read-only for canvas graphics. It cannot create frames, render vectors, configure AutoLayout, or wire prototypes on an active canvas.

Dual-Transport Bidirectional BridgePairs STDIO JSON-RPC with a local loopback WebSocket (ws://localhost:3055) to a desktop plugin with 100% write access to the native figma.* engine.

2. Multi-Roundtrip Latency Explosion

Generating a single screen via primitive calls (create_frame $\rightarrow$ create_rectangle...) requires 100+ roundtrips, exhausting context windows and causing timeout crashes.

Declarative Atomic Tree (generate_ui_tree)Compiles an entire nested screen hierarchy with AutoLayout, typography, colors, and semantic tags in a single payload in $< 200\text{ms}$.

3. "AI Slop" & HCI Deficiency

LLMs produce amateur visual outputs: buttons littered with emojis, uncalibrated leading that clips text, arbitrary spacing (13px, 27px), and tiny inaccessible touch targets ($< 44\text{px}$).

Enterprise Design Guardian & HCI EngineAutomated zero-emoji sanitizer, 8pt spatial grid snapping, intelligent proportional typography leading/tracking, and Apple HIG 44px minimum touch target enforcement.

4. State Incompleteness & First-Run Blindness

Generative AI suffers from "state blindness"—producing exclusively static, populated mockups under ideal conditions. In real-world software, over half of the user lifecycle is spent in non-ideal states (zero-data onboarding, high-latency loading, network faults, and sparse datasets). Neglecting these lifecycle states leaves designs brittle, forces engineering teams to improvise fallback UI in production, and drives high first-run user churn.

The "5 States of UI" Engine (generate_state_matrix)Instantly generates Ideal, Empty Onboarding, Loading Skeleton Shimmer, Empathetic Error with 1-click retry, and Partial/Boundary stress-test states.

5. Dead-End Journeys & Missing Affordances

AI outputs isolated, static screens that trap users without back affordances, lacks tactile interactive states (Hover, Pressed, Focus Rings), and uses vague CTAs ("Submit").

Cognitive Psychology & Journey ValidatorScores screens against Hick's, Fitts's, Miller's, and Jakob's laws (audit_ux_heuristics), detects dead ends (validate_user_journey), and generates accessible focus rings (generate_interactive_variants).

6. Arbitrary Design Drift & Blanket Blindness

AI tools either force rigid, unconfigurable typography defaults or dump sweeping, untracked changes across an artboard without per-phase confirmation.

Niche-Adaptive Typography & Phased Confirmation ProtocolDynamic typography engine (apply_typography_theme) enabling niche-specific pairings (Playfair, Inter, Poppins, Garamond) paired with granular, step-by-step confirmation protocols before canvas modifications.


Related MCP server: figmad-mcp

🏗️ Architecture

flowchart LR
    subgraph AI["AI Client / IDE Environment"]
        Agent["AI Assistant<br/>(Claude Desktop / Cursor / Antigravity)"]
    end

    subgraph Server["Figma MCP Core"]
        MCPServer["Node.js MCP Server<br/>(40 Tools + 3 Resources)"]
        Bridge["WebSocket Bridge Server<br/>(ws://localhost:3055)"]
    end

    subgraph Desktop["Figma Desktop Sandbox"]
        Plugin["Figma Companion Plugin<br/>(Unthrottled Web Worker Keep-Alive)"]
        Canvas["Native Figma Canvas Engine<br/>(AutoLayout, Typography, Prototyping)"]
    end

    Agent <--"STDIO (JSON-RPC)"--> MCPServer
    MCPServer <--> Bridge
    Bridge <--"Local Loopback (ws://)"--> Plugin
    Plugin <--"Figma Plugin API (figma.*)"--> Canvas

    style AI fill:#0f172a,stroke:#38bdf8,stroke-width:2px,color:#f8fafc
    style Server fill:#0f172a,stroke:#818cf8,stroke-width:2px,color:#f8fafc
    style Desktop fill:#0f172a,stroke:#a855f7,stroke-width:2px,color:#f8fafc
  1. MCP Server (packages/mcp-server): Communicates over standard STDIO with LLM clients, exposing 40 specialized design and UX tools, while hosting a dual-stack local loopback WebSocket server on port 3055.

  2. Figma Companion Plugin (packages/figma-plugin): Sandboxed plugin running inside Figma Desktop with an unthrottled Web Worker heartbeat loop. Connects to the local bridge and directly executes native figma.* canvas operations, font loading, AutoLayout hierarchy, and prototype interaction noodles.


⚡ 60-Second Quickstart

Step 1: Install Companion Plugin in Figma Desktop

  1. Download or extract dist-release/figma-companion-plugin.zip (17 KB standalone bundle).

  2. In Figma Desktop, open any design file $\rightarrow$ right-click canvas $\rightarrow$ Plugins $\rightarrow$ Development $\rightarrow$ "Import plugin from manifest...".

  3. Select manifest.json from the extracted folder.

  4. Press Ctrl + Alt + P (Windows) or Cmd + Opt + P (Mac) to launch the plugin window.

Step 2: Configure Your AI Assistant

Your AI client spawns the MCP server automatically in the background using npx -y figma-mcp—no manual terminal setup required.

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "figma": {
      "command": "npx",
      "args": ["-y", "figma-mcp"]
    }
  }
}

Cursor IDE

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "figma": {
      "command": "npx",
      "args": ["-y", "figma-mcp"]
    }
  }
}

Antigravity / Gemini / Custom MCP Client

  • Command: npx -y figma-mcp

  • Transport: STDIO

Step 3: Verify the Live Bridge Connection

  • In Figma Desktop, look at the Figma MCP Bridge plugin window.

  • When your AI client starts, the status indicator will automatically switch to:

    ● Connected (ws://localhost:3055)
  • Your active document name and page will synchronize with the server.

Step 4: Your First Prompts (Copy & Paste)

Open Claude Desktop or Cursor and test any of these prompts:

  • Generate a Full AutoLayout Screen:

    "Create a mobile crypto wallet dashboard in Figma using AutoLayout, 8pt spacing, and dark mode."

  • Generate the 5 Essential UX States:

    "Generate the 5 essential UI states for a 'Payment Methods' card using generate_state_matrix."

  • Conduct a Cognitive & HCI Audit:

    "Audit the active canvas with audit_ux_heuristics and report any Hick's or Fitts's Law violations."

  • End-to-End Autonomous UX Architecture:

    "Use the architect_ux_experience prompt to architect a complete 'Subscription Management' user journey with full interactive variants and flow transitions."


🛠️ Complete Toolset Reference (39 Tools)

1. UX Intelligence & Cognitive Architecture

  • generate_state_matrix: Generates the 5 Essential States of UI (Ideal, Empty Onboarding, Loading Skeleton Shimmer, Empathetic Error with 1-click retry, and Partial/Boundary Stress Test) organized neatly inside a labeled Section or Component Set.

  • audit_ux_heuristics: Scores screens against empirical cognitive psychology:

    • Hick’s Law: Calculates decision latency ($T = b \log_2(n+1)$) and flags choice overload ($> 7\pm2$ choices) or competing primary CTAs.

    • Fitts’s Law: Checks touch ergonomics ($< 44\text{px}$) and flags destructive buttons placed dangerously close ($< 60\text{px}$) to primary progression actions.

    • Miller’s Law: Flags unchunked walls of inputs/items exceeding working memory thresholds.

    • Jakob’s Law: Audits standard convention placement for navigation, search, and avatar controls.

  • validate_user_journey: Traverses prototype interaction noodles across artboards to detect orphan screens (unlinked artboards), dead-end screens (trapped users without back or exit affordance), and unprotected destructive actions (lacking confirmation dialogs).

  • generate_interactive_variants: Creates production-ready Figma Component Sets with Default, Hover, Pressed, Focused (WCAG 2.4.7 accessible focus ring), and Disabled states, pre-wired with whileHover and whilePress Smart Animate transitions.

  • lint_ux_microcopy: Audits UX writing anti-patterns (Lorem Ipsum, ambiguous CTAs like "Submit", robotic blaming errors like "Invalid input"), providing empathetic, high-converting copy recommendations.

2. Declarative Generation & Design Guardian

  • generate_ui_tree: Generates full hierarchical screens with AutoLayout, typography, colors, and tagged interactive elements in a single atomic call:

    • Presets: iPhone 16, iPhone 16 Pro Max, Android, Desktop, Tablet.

    • Elements: frame, card, button, text, divider, spacer.

    • Tag Registry: Assigns semantic tags (e.g. tag: "signup_btn") and returns a map of { [tag]: nodeId } for instant prototyping.

  • lint_design_compliance: Automated HCI & visual design auditor checking 44px touch targets, 8pt grid consistency, calibrated leading, and zero emojis.

  • Zero-Emoji Enforcement: Automatically sanitizes emojis from all text operations, preventing cartoonish outputs and routing to vector SVG paths.

  • Intelligent Typography: Calibrates leading ($1.15\times - 1.5\times$ font size) and proportional tracking based on font size and weight.

  • 8pt Spatial Grid: Automatic snapping of margins, paddings, and gap dimensions.

  • Touch Target Enforcer: Guarantees a minimum $44\times44\text{px}$ bounding box for interactive elements (Apple HIG & Google Material compliance).

3. Interactive Prototyping & Flow Engine

  • set_prototype_interaction: Wires interactive transitions between elements:

    • Triggers: ON_CLICK, ON_HOVER, ON_PRESS, AFTER_TIMEOUT.

    • Navigations: NAVIGATE, OVERLAY, SWAP, BACK, CLOSE.

    • Transitions: SMART_ANIMATE, DISSOLVE, SLIDE_IN, MOVE_IN, INSTANT.

  • set_flow_starting_point: Sets named prototype flow starting points (e.g. "Onboarding Flow").

  • get_prototype_connections: Audits all flow starting points and prototype connection noodles on the page.

  • batch_link_prototype: Wires multiple screen transitions across a user journey in one call.

  • set_overlay_interaction: Configures modal dialogs, slide-over panels, and dropdown overlays with customizable backdrops, animations, and click-outside dismissal rules.

4. Canvas Primitives, Components & Polish

  • create_frame: Creates container frames or artboards.

  • create_rectangle: Creates shapes, cards, or placeholders.

  • create_ellipse: Creates circular/elliptical shapes (avatars, badges, status dots).

  • create_svg_icon: Renders and inserts scalable SVG vector graphics with automatic color tinting.

  • create_component: Creates master design system components.

  • create_component_instance: Instantiates linked component instances from any master component ID.

  • set_effects: Applies elevation shadows, inner shadows, layer blurs, and background blurs (DROP_SHADOW, INNER_SHADOW, LAYER_BLUR, BACKGROUND_BLUR).

  • create_section: Groups and categorizes artboards and user journey paths into organized, labeled Figma Sections.

  • apply_typography_theme: Batch-applies a complete typography system across all text nodes inside a frame or artboard in a single call. Intelligently classifies headings vs. body copy, preloads font weights (Playfair Display, Inter, Poppins, Merriweather, etc.), and recalibrates leading and optical tracking.

  • focus_viewport: Pans and zooms the canvas viewport directly to specified nodes, with optional selection.

  • create_text: Inserts typography with automatic font preloading (Inter, Roboto, etc.).

  • set_autolayout: Applies Flexbox/AutoLayout (direction, gap, padding, axis alignments).

  • update_node: Modifies position, dimensions, fills, corner radius, opacity, visibility, or typography (fontFamily, fontWeight, fontSize).

  • delete_nodes: Deletes one or more nodes by ID.

  • duplicate_node: Clones frames or elements with offsets (ideal for prototype state variants).

  • set_stroke: Configures border colors, thicknesses, and alignments.

  • set_text_content: Updates text copy while preserving typography styles.

  • find_nodes: Searches canvas by keyword or node type.

  • manage_page: Creates or switches active pages.

  • get_document_tokens: Extracts local color paint styles, text typography styles, and effect styles directly from the document.

  • export_node_image: Exports 2x Retina PNG snapshots as base64 for visual verification.

5. Canvas Diagnostics & Semantic Inspection

  • get_figma_status: Checks whether the Figma Desktop companion plugin is connected.

  • ping_figma: Tests round-trip WebSocket latency and document verification.

  • get_document_info: Retrieves document name, pages list, active page, and selection count.

  • get_design_context: Extracts a token-efficient semantic design outline of the page (artboards, buttons, cards, inputs, and prototype starting points) without vector noise.

  • inspect_node: Recursively inspects any node by ID with strict depth capping (max 4) to protect LLM context windows, serializing dimensions, layout, fills, text characters, and active fontName (family and weight).

  • get_selection: Inspects details of elements currently highlighted on the canvas.

6. Figma Cloud REST Tools (Headless Access)

Optional: Requires FIGMA_ACCESS_TOKEN for cloud inspection without the desktop app:

  • rest_get_file: Read full file metadata, version history, components, and document tree from Figma Cloud.

  • rest_get_file_nodes: Fetch specific node hierarchies by ID from the cloud.

  • rest_get_images: Render high-resolution PNG, SVG, JPG, or PDF exports of frames via Figma's cloud render engine.

  • rest_get_comments: Read collaboration comment threads, reviews, and pin coordinates.

  • rest_post_comment: Post review feedback directly to a Figma screen pin via REST API.

  • rest_get_variables: Read Figma Enterprise / Organization Variables (color themes, spacing scales, modes).

  • rest_get_components: List published component library definitions and documentation links.


🎨 Niche-Adaptive Typography & Granular Plan Protocol

Figma MCP eliminates arbitrary design decisions and blanket approvals by pairing niche-adaptive typographic systems with strict phased confirmation protocols:

1. Niche-Adaptive Typography Engine

Instead of enforcing rigid, generic fonts across all projects, Figma MCP allows the user or AI to select typography tailored to the exact industry and brand personality:

Design Niche

Personality & Tone

Typical Headings

Typical Body & Controls

Educational Advisory & Legal

Academic prestige, intellectual weight, institutional trust

Playfair Display, Merriweather, Lora

Inter, Source Sans 3

Enterprise SaaS & Fintech

Modern, geometric precision, high data density

Plus Jakarta Sans, Inter, SF Pro

Inter, Roboto

Luxury, Editorial & Fashion

High elegance, high contrast, bespoke aesthetic

Cormorant Garamond, Bodoni Moda

DM Sans, Outfit

Developer Tools & AI Platforms

Technical credibility, crisp monospaced hierarchy

Space Grotesk, JetBrains Mono

Inter, Fira Code

With apply_typography_theme, the AI can batch-apply a complete font system across an entire artboard hierarchy in a single $< 200\text{ms}$ call with intelligent heading detection (fontSize >= 20 or title keywords) and automatic weight preloading.

2. Granular Step-by-Step Plan Approval Protocol

Blanket "all-or-nothing" approvals ("Do you approve this 6-phase redesign? Yes/No") create critical blind spots where users cannot approve some phases while adjusting others.

Figma MCP establishes a structured interaction protocol:

  1. Concrete Phase Breakdown: Before modifying the canvas, the AI breaks down the plan into explicit phases with targeted node IDs, exact layout adjustments, and typographic changes.

  2. Per-Phase Confirmation: The user confirms, tweaks, or skips each phase individually using interactive multi-part prompts, ensuring full human-in-the-loop control over the Figma canvas.

3. Unthrottled Web Worker Keep-Alive Bridge

To prevent Chromium/Electron background tab throttling when Figma Desktop or the OS window loses focus, the companion plugin runs an isolated Web Worker heartbeat loop. This guarantees that WebSocket connections to ws://localhost:3055 remain permanently alive with zero disconnections.


📦 MCP Resources & Prompts

Resources (URI-Addressable Design State)

  • figma://document/summary: Document outline, active pages, and selected canvas elements.

  • figma://tokens/active: Complete design token registry (colors, typography styles, effect styles).

  • figma://prototype/flows: Interactive connection graph and flow starting points on the page.

High-Level Prompts (Guided Autonomous Workflows)

  • architect_ux_experience: Guides the AI to conduct a comprehensive UX architectural review, generate the 5 UI states, audit cognitive heuristics, and validate user journey flow continuity.

  • design_product_flow: Guided workflow taking a product concept, generating screens with AutoLayout, registering tags, and wiring interactive animations.

  • wire_interactive_prototype: Guides the agent through discovering interactive targets and establishing seamless user journeys.

  • audit_ux_design: Executes an accessibility, touch target ($\ge 44\text{px}$), spacing consistency, and visual hierarchy audit.


💻 Local Monorepo Development

# 1. Install dependencies
npm install

# 2. Build monorepo workspaces
npm run build

# 3. Clean port 3055 if locked by an orphaned background process
npm run clean:port

# 4. Package standalone plugin & zip
npm run package

# 5. Run server in development watch mode
npm run dev:server

🌐 Deployment & Transport Modes

1. Local Mode (Default STDIO)

Used by Claude Desktop, Cursor, and Antigravity:

node packages/mcp-server/dist/index.js

2. Remote Mode (Streamable HTTP / SSE)

Run as a cloud service or team gateway on port 3000:

node packages/mcp-server/dist/index.js --transport=sse
# or with environment variables:
MCP_TRANSPORT=sse PORT=3000 node packages/mcp-server/dist/index.js

Endpoints provided:

  • GET /health: Health check, uptime, bridge status, and REST config.

  • GET /sse: SSE connection stream.

  • POST /messages?sessionId=...: JSON-RPC message ingress.

3. Docker Container Deployment

Run with Docker Compose:

docker compose up -d --build
curl http://localhost:3000/health

📄 License

MIT © Chimbueze David

Available Tools

47 tools
apply_typography_themeB

Batch apply heading and body typography system across all text nodes inside a frame or artboard

Inputs: rootNodeId (required), bodyFont, headingFont.

audit_ux_heuristicsB

Audit visual design and interaction architecture against empirical cognitive psychology and Laws of UX (Hick's Law choice overload, Fitts's Law touch target reach & destructive action proximity, Miller's Law chunking, and Jakob's Law conventions)

Inputs: nodeId.

create_componentA

Create a reusable Figma component master on the canvas, or convert an existing frame/node into a component

Inputs: name (required), x, y, fill, +5 more.

create_component_instanceA

Instantiate a reusable component instance from a master component ID, retaining link to the main component

Inputs: componentId (required), x, y, name, +1 more.

create_ellipseA

Create an ellipse or circular shape node on the canvas (ideal for user avatars, status badges, circular buttons, and indicator dots)

Inputs: x, y, fill, name, +4 more.

create_frameA

Create a new frame (container or artboard) on the Figma canvas

Inputs: x, y, fill, name, +4 more.

create_rectangleB

Create a rectangle or box element (useful for cards, buttons, visual dividers)

Inputs: x, y, fill, name, +4 more.

create_sectionA

Create a Figma Section to organize related artboards, user journeys, or screen flows on the canvas

Inputs: name (required), x, y, fill, +3 more.

create_svg_iconB

Render and insert scalable SVG vector graphics (icons, logos, custom vector shapes) onto the canvas

Inputs: svg (required), x, y, fill, +4 more.

create_textA

Create a styled text element on the Figma canvas or inside a container. Strictly disallows emojis (use 'create_svg_icon' for vector icons). Automatically calculates and applies calibrated proportional leading (line-height) and optical tracking (letter-spacing) according to typographic hierarchy.

Inputs: text (required), x, y, fill, +5 more.

delete_nodesA

Delete one or more nodes from the Figma canvas by their IDs

Inputs: nodeIds (required).

duplicate_nodeA

Duplicate an existing node or screen (e.g. for creating variant states for prototyping)

Inputs: nodeId (required), name, offsetX, offsetY.

export_node_imageB

Render a PNG snapshot of a frame or component and return as base64 data URI for visual feedback

Inputs: nodeId (required), scale.

find_nodesA

Search for nodes on the current page by name keyword or node type (FRAME, TEXT, RECTANGLE, etc.)

Inputs: type, limit, query.

focus_viewportA

Pan and zoom the Figma canvas viewport to focus on specific nodes, with optional selection

Inputs: nodeIds (required), select.

generate_interactive_variantsB

Generate a complete interactive Component Set with Default, Hover, Pressed, Focused (WCAG 2.4.7 accessible focus ring), and Disabled states with pre-wired prototype Smart Animate transitions

Inputs: x, y, size, label, +2 more.

generate_state_matrixB

Generate the complete 5 States of UI (Ideal, Empty with onboarding CTA, Loading/Skeleton shimmer, Empathetic Error with 1-click retry, and Partial/Boundary stress-test) as a Figma Section or Component Set

Inputs: title (required), x, y, theme, +2 more.

generate_ui_treeA

Generate a complete UI screen or component hierarchy in a single atomic pass from a structured JSON specification. Enforces enterprise UI/UX & HCI standards: strictly disallows emojis (use 'create_svg_icon' for icons), snaps spacing to 8pt grid, enforces minimum 44px interactive touch targets per Apple HIG / WCAG (Fitts's Law), and applies calibrated typography leading and tracking.

Inputs: spec (required).

get_design_contextB

Retrieve a token-efficient semantic outline of the active document page or a specific screen (screens, buttons, cards, inputs, and flow starting points) without heavy vector noise

Inputs: screenId.

get_document_infoA

Retrieve the active Figma document name, all pages, current page, and currently selected nodes

Inputs: no named parameters.

get_document_tokensA

Extract active design tokens from the document (local paint color styles, text typography styles, and effect styles)

Inputs: no named parameters.

get_figma_statusA

Check whether the Figma Desktop companion plugin is connected and get active document metadata

Inputs: no named parameters.

get_prototype_connectionsA

Inspect all flow starting points and interactive prototype wiring across the current page

Inputs: no named parameters.

get_selectionB

Inspect currently selected elements on the Figma canvas

Inputs: no named parameters.

inspect_nodeA

Inspect detailed properties, layout settings, dimensions, and children of any node by ID

Inputs: nodeId (required), maxDepth.

lint_design_complianceA

Audit and score any screen or the active canvas page against enterprise UI/UX and HCI compliance standards (Fitts's Law 44px touch targets, 8pt grid spacing consistency, proportional typography leading, and zero emojis)

Inputs: nodeId.

lint_ux_microcopyA

Audit text copy across screens for UX writing anti-patterns (Lorem Ipsum placeholders, ambiguous/lazy CTAs like 'Submit', robotic blaming error messages, and cognitive strain all-caps text), recommending empathetic high-converting alternatives

Inputs: nodeId.

manage_pageA

Create a new page in the document or switch the active page

Inputs: action (required), name, pageId.

ping_figmaA

Ping the connected Figma companion plugin to verify live canvas communication

Inputs: message.

plan_screen_architectureA

Architect and plan a multi-section UI screen creation OR design edit/refactor before code generation. Decomposes the UI into an ordered sequence of structured steps, establishes typography scale, 8pt grid dimensions, and layout constraints (wrapping, auto-layout directions, stretch alignment) to guarantee zero overflow/overlap. MANDATORY PROTOCOL GATE: Once this tool returns, the LLM MUST present the generated roadmap to the user for explicit confirmation before executing any canvas mutations.

Inputs: screenName (required), mode, preset, changes, +5 more.

rest_get_commentsA

Read collaboration feedback, review threads, and pins left on the file from Figma Cloud

Inputs: fileKey (required).

rest_get_componentsB

List published component library definitions, component sets, and documentation links in the file

Inputs: fileKey (required).

rest_get_fileB

Headless read of full Figma file metadata, version history, components, styles, and document tree from Figma Cloud via REST API (requires FIGMA_ACCESS_TOKEN)

Inputs: fileKey (required), depth.

rest_get_file_nodesA

Fetch specific nodes by ID directly from the cloud via REST API without loading the entire document

Inputs: fileKey (required), nodeIds (required), depth.

rest_get_imagesB

Render high-resolution cloud images/exports of frames or components using Figma Cloud rendering engine

Inputs: fileKey (required), nodeIds (required), scale, format.

rest_get_variablesC

Read Figma Enterprise / Organization Variables and token collections (color palettes, spacing, modes) via REST API

Inputs: fileKey (required).

rest_post_commentB

Post a review comment or design critique directly to a Figma screen or pin via REST API

Inputs: fileKey (required), message (required), nodeId.

set_autolayoutA

Configure Flexbox/AutoLayout rules (direction, padding, gap, alignment, wrapping) on an existing frame

Inputs: nodeId (required), direction (required), wrap, padding, +10 more.

set_effectsB

Apply elevation shadows, inner shadows, and blurs to a node (DROP_SHADOW, INNER_SHADOW, LAYER_BLUR, BACKGROUND_BLUR)

Inputs: nodeId (required), effects (required).

set_flow_starting_pointB

Mark a screen frame as a named prototype flow starting point (e.g. 'Onboarding Flow', 'Purchase Flow')

Inputs: name (required), nodeId (required).

set_overlay_interactionB

Configure interactive overlay prototype interactions (modals, dialogs, bottom sheets, slide-over panels, and dropdowns)

Inputs: sourceNodeId (required), destinationNodeId (required), easing, duration, +7 more.

set_prototype_interactionA

Wire an interactive prototype transition from a clickable element (button, card) to a target screen or modal

Inputs: sourceNodeId (required), easing, timeout, duration, +6 more.

set_strokeB

Add or update border stroke on a frame, card, button, or rectangle

Inputs: color (required), nodeId (required), weight, strokeAlign.

set_text_contentA

Update the characters of an existing text layer. Emojis are strictly sanitized and proportional leading and tracking are automatically recalibrated.

Inputs: text (required), nodeId (required).

update_nodeC

Update dimensions, coordinates, fills, images (supports local file paths), corner radius, opacity, layout alignment, or text auto-resize of an existing node

Inputs: nodeId (required), x, y, fill, +16 more.

validate_user_journeyB

Verify user journey continuum and prototype interaction completeness across canvas artboards, flagging orphan screens, dead-end traps, and unprotected destructive actions without confirmation safeguards

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 47 tools

    Disambiguation2/5

    Several tools overlap heavily: ping_figma vs get_figma_status both check companion-plugin connectivity, and validate_user_journey, lint_design_compliance, audit_ux_heuristics, and lint_ux_microcopy all perform design/UX audits with subtle boundaries. Creation/planning tools (generate_ui_tree, plan_screen_architecture, create_frame) and retrieval tools (get_document_info, get_design_context, inspect_node, rest_get_file) also blur together, making misselection likely.

    Naming Consistency4/5

    Nearly all tools follow a verb_noun snake_case pattern, with a clear rest_ prefix grouping cloud/REST operations. Minor deviations in verb choice (create vs generate vs plan vs audit vs lint) but the convention is predictable and readable throughout.

    Tool Count2/5

    47 tools is heavy for a Figma companion server, and the surface includes many overlapping audit, retrieval, and creation paths that could be consolidated. The breadth is partly justified by canvas editing plus REST access, but the count clearly exceeds a well-scoped set.

    Completeness4/5

    Coverage is broad: create/update/delete nodes, text, frames, components, prototype wiring, design tokens, inspection, export, and cloud REST access including comments and variables. Minor gaps exist (e.g., no page deletion, no dedicated component-update or prototype-removal tool), but core workflows are well supported.

    Maintenance

    ActivityNo data
    ResponsivenessSyncing

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to read and modify Figma designs programmatically, supporting design analysis, element creation, text replacement, annotations, auto-layout configuration, and prototype visualization through natural language commands.
      2,097 npm
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables AI agents to interact with Figma to create, read, and manage designs using the Figma REST API and a dedicated plugin. It supports advanced features like UI generation from text, webpage reconstruction in Figma, and design token synchronization with codebases.
      20
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to extract design systems, analyze components, and maintain design-code consistency from Figma files, providing intelligent component analysis and accessibility compliance.
      42 npm
      27
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Enables AI agents to directly control Figma Desktop via MCP, supporting UI creation, editing, prototyping, and variable management with over 60 tools.
      65
      1,119 npm
      1
      MIT