loading…
Search for a command to run...
loading…
The most comprehensive MCP server for Figma — design tokens, variables, components, write tools, version history diff, accessibility audits, FigJam, Slides, and
The most comprehensive MCP server for Figma — design tokens, variables, components, write tools, version history diff, accessibility audits, FigJam, Slides, and more. Local (WebSocket Desktop Bridge plugin) and Cloudflare Workers (paired + remote) modes.
MCP npm License: MIT Documentation Sponsor
Your design system as an API. Model Context Protocol server that bridges design and development—giving AI assistants complete access to Figma for extraction, creation, debugging, and bidirectional token sync.
🆕 The "not connected until restart" bug is fixed (v1.31.0): The Desktop Bridge dropping its connection — and only recovering when you closed the plugin, restarted your MCP client, or killed ports by hand — was caused by zombie MCP processes squatting the WebSocket port range after a bad shutdown. v1.31.0 force-kills them (
SIGTERM→SIGKILL), sweeps the range every 5 minutes, and adds a shutdown backstop so a server can't zombify in the first place. The plugin now reconnects itself (auto-reconnect watchdog + one-click Reconnect button) instead of needing a restart. Update and re-import the plugin once to get the fix. See what's new →
Figma Console MCP connects AI assistants (like Claude) to Figma, enabling:
_mcp: "figma-console-mcp" and errors are prefixed [figma-console-mcp] so attribution stays unambiguous in agents running multiple Figma MCPsFirst, decide what you want to do:
| I want to... | Setup Method | Time |
|---|---|---|
| Create and modify designs with AI | NPX Setup (Recommended) | ~10 min |
| Design from the web (Claude.ai, v0, Replit, Lovable) | Cloud Mode | ~5 min |
| Contribute to the project | Local Git Setup | ~15 min |
| Just explore my design data (read-only) | Remote SSE | ~2 min |
| Capability | NPX / Local Git | Cloud Mode | Remote SSE |
|---|---|---|---|
| Read design data | ✅ | ✅ | ✅ |
| Create components & frames | ✅ | ✅ | ❌ |
| Edit existing designs | ✅ | ✅ | ❌ |
| Manage design tokens/variables | ✅ | ✅ | ❌ |
| FigJam boards (stickies, flowcharts) | ✅ | ✅ | ❌ |
| Real-time monitoring (console, selection) | ✅ | ❌ | ❌ |
| Desktop Bridge plugin | ✅ | ✅ | ❌ |
| Requires Node.js | Yes | No | No |
| Total tools available | 106 | 95 | 9 |
Bottom line: Remote SSE is read-only with ~38% of the tools. Cloud Mode unlocks write access from web AI clients without Node.js. NPX/Local Git gives the full 106 tools with real-time monitoring.
Best for: Designers who want full AI-assisted design capabilities.
What you get: All 106 tools including design creation, variable management, and component instantiation.
node --version (Download)Figma Console MCPfigd_)Claude Code (CLI):
claude mcp add figma-console -s user -e FIGMA_ACCESS_TOKEN=figd_YOUR_TOKEN_HERE -e ENABLE_MCP_APPS=true -- npx -y figma-console-mcp@latest
Cursor / Windsurf / Claude Desktop:
Add to your MCP config file (see Where to find your config file below):
{
"mcpServers": {
"figma-console": {
"command": "npx",
"args": ["-y", "figma-console-mcp@latest"],
"env": {
"FIGMA_ACCESS_TOKEN": "figd_YOUR_TOKEN_HERE",
"ENABLE_MCP_APPS": "true"
}
}
}
}
If you're not sure where to put the JSON configuration above, here's where each app stores its MCP config:
| App | macOS | Windows |
|---|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json |
%APPDATA%\Claude\claude_desktop_config.json |
| Claude Code (CLI) | ~/.claude.json |
%USERPROFILE%\.claude.json |
| Cursor | ~/.cursor/mcp.json |
%USERPROFILE%\.cursor\mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
%USERPROFILE%\.codeium\windsurf\mcp_config.json |
Tip for designers: The
~symbol means your home folder. On macOS, that's/Users/YourName/. On Windows, it'sC:\Users\YourName\. You can open these files in any text editor — even TextEdit or Notepad.Can't find the file? If it doesn't exist yet, create it. The app will pick it up on its next restart. Make sure the entire file is valid JSON (watch for missing commas or brackets).
Claude Code users: You can skip manual editing entirely. Just run the
claude mcp addcommand above and it handles everything for you.
Desktop Bridge Plugin:
~/.figma-console-mcp/plugin/manifest.json (stable path, auto-created by the MCP server)Heads-up on plugin updates. Figma caches plugin files (
code.jsandui.html) at the application level. The MCP server refreshes the files at~/.figma-console-mcp/plugin/on every startup, but Figma keeps using its cached copy until you re-import the manifest.Re-importing is required only when a release notes entry says so — typically when the plugin adds a new method the server needs (e.g. v1.22.4, v1.10.0). For most upgrades the new server stays wire-compatible with the previous plugin, and re-importing is optional: you'll still get every functional change, just not the cosmetic plugin-side touches (status-pill copy,
pluginVersionreporting).When you do re-import: Plugins → Manage plugins → re-import
~/.figma-console-mcp/plugin/manifest.json. The stable path never changes, so it's a one-click step.
Restart your MCP client to load the new configuration.
Check Figma status
→ Should show connection status with active WebSocket transport
Create a simple frame with a blue background
→ Should create a frame in Figma (confirms write access!)
Best for: Developers who want to modify source code or contribute to the project.
What you get: Same 106 tools as NPX, plus full source code access.
# Clone and build
git clone https://github.com/southleft/figma-console-mcp.git
cd figma-console-mcp
npm install
npm run build:local
Add to your config file (see Where to find your config file):
{
"mcpServers": {
"figma-console": {
"command": "node",
"args": ["/absolute/path/to/figma-console-mcp/dist/local.js"],
"env": {
"FIGMA_ACCESS_TOKEN": "figd_YOUR_TOKEN_HERE",
"ENABLE_MCP_APPS": "true"
}
}
}
}
Then follow NPX Steps 3-5 above.
Best for: Quickly evaluating the tool or read-only design data extraction.
What you get: 9 read-only tools — view data, take screenshots, read logs, design-code parity. Cannot create or modify designs.
Figma Console (Read-Only)https://figma-console-mcp.southleft.com/sseOAuth authentication happens automatically when you first use design system tools.
⚠️ Known Issue: Claude Code's native
--transport ssehas a bug. Usemcp-remoteinstead:
claude mcp add figma-console -s user -- npx -y mcp-remote@latest https://figma-console-mcp.southleft.com/sse
💡 Tip: For full capabilities, use NPX Setup instead of Remote SSE.
{
"mcpServers": {
"figma-console": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://figma-console-mcp.southleft.com/sse"]
}
}
}
Ready for design creation? Follow the NPX Setup guide above, or try Cloud Mode if you don't want to install Node.js.
Best for: Using Claude.ai, v0, Replit, or Lovable to create and modify Figma designs — no Node.js required.
What you get: 95 tools including full write access — design creation, variable management, component instantiation, and all REST API tools. Only real-time monitoring (console logs, selection tracking, document changes) requires Local Mode.
figd_)Add this endpoint to your AI platform's MCP settings:
URL: https://figma-console-mcp.southleft.com/mcp
Auth: Your Figma PAT as Bearer token
In Claude.ai: Settings → Connectors → Add Custom Connector → paste the URL above. In Lovable/v0/Replit: Look for "Add MCP Server" or "Integrations" in settings → paste the URL and add your token.
Connect to my Figma plugin
Once paired, use natural language to design:
Create a card component with a header image, title, description, and action button
Set up a color token collection with Light and Dark modes
Add a "High Contrast" mode to my existing token collection
Your AI client sends write commands through the cloud MCP server, which relays them via WebSocket to the Desktop Bridge plugin running in your Figma Desktop. The plugin executes the commands using the Figma Plugin API and returns results back through the same path.
AI Client → Cloud MCP Server → Durable Object Relay → Desktop Bridge Plugin → Figma
Variables on any plan: Cloud Mode uses the Plugin API (not the Enterprise REST API), so variable management works on Free, Pro, and Organization plans.
| Feature | NPX (Recommended) | Cloud Mode | Local Git | Remote SSE |
|---|---|---|---|---|
| Setup time | ~10 minutes | ~5 minutes | ~15 minutes | ~2 minutes |
| Total tools | 106 | 95 | 106 | 9 (read-only) |
| Design creation | ✅ | ✅ | ✅ | ❌ |
| Variable management | ✅ | ✅ | ✅ | ❌ |
| Component instantiation | ✅ | ✅ | ✅ | ❌ |
| FigJam boards | ✅ | ✅ | ✅ | ❌ |
| Real-time monitoring | ✅ | ❌ | ✅ | ❌ |
| Desktop Bridge plugin | ✅ | ✅ | ✅ | ❌ |
| Variables (no Enterprise) | ✅ | ✅ | ✅ | ❌ |
| Console logs | ✅ (zero latency) | ❌ | ✅ (zero latency) | ✅ |
| Read design data | ✅ | ✅ | ✅ | ✅ |
| Requires Node.js | Yes | No | Yes | No |
| Authentication | PAT (manual) | OAuth (automatic) | PAT (manual) | OAuth (automatic) |
| Automatic updates | ✅ (@latest) |
✅ | Manual (git pull) |
✅ |
| Source code access | ❌ | ❌ | ✅ | ❌ |
Key insight: Remote SSE is read-only. Cloud Mode adds write access for web AI clients without Node.js. NPX/Local Git give the full 106 tools.
After setup, try these prompts:
Basic test (all modes):
Navigate to https://www.figma.com and check status
Design system test (requires auth):
Get design variables from [your Figma file URL]
Cloud Mode test:
Connect to my Figma plugin
→ Follow the pairing flow, then try: "Create a simple blue rectangle"
Plugin test (Local Mode only):
Show me the primary font for [your theme name]
When you first use design system tools:
FIGMA_ACCESS_TOKEN environment variablefigma_get_status - Check WebSocket bridge connection and file contextfigma_diagnose - Designer-readable health check + setup guidancefigma_reconnect - Force reconnect to the Desktop Bridge pluginfigma_navigate - Switch the active file target among connected plugins (Local), or navigate the cloud headless browser (Remote/Cloud)figma_get_console_logs - Retrieve console logsfigma_watch_console - Real-time log streamingfigma_clear_console - Clear log bufferfigma_reload_plugin - Reload current pagefigma_take_screenshot - Capture UI screenshotsfigma_get_design_system_kit - Full design system in one call — tokens, components, styles, visual specsfigma_get_variables - Extract design tokens/variablesfigma_get_component - Get component data (metadata or reconstruction spec)figma_get_component_for_development - Component + imagefigma_get_component_image - Just the imagefigma_get_styles - Color, text, effect stylesfigma_get_file_data - Full file structurefigma_get_file_for_plugin - Optimized file datafigma_get_library_component_by_key - Resolve any component key to full properties + variants + visual specs — without needing the source library file's URL. Works for both COMPONENT_SET and standalone COMPONENT keys. Adaptive compression at >500KB.figma_get_library_components - Discover all components in a library file (requires library file URL/key)figma_get_library_variables - List every variable from team libraries the current file has subscribed. Works on every Figma plan — uses the Plugin API path, not the Enterprise-only REST endpoint. Filter by libraryName, collectionName, or resolvedType.figma_import_library_variable - Import a library variable into the current file. Returns a local id ready to pass to figma_set_fills / figma_update_variable / any variable-binding tool.figma_pair_plugin - Generate a pairing code to connect a Desktop Bridge plugin via the cloud relayfigma_execute - Power tool: Run any Figma Plugin API code to create designsfigma_arrange_component_set - Organize variants into professional component setsfigma_set_description - Document components with rich descriptionsfigma_check_design_parity - Compare Figma component specs against code implementation, producing a scored diff report with actionable fix itemsfigma_generate_component_doc - Generate platform-agnostic markdown documentation by merging Figma design data with code-side infofigma_export_tokens - Export Figma variables to design token files in your codebase. Canonical DTCG JSON + CSS custom properties out of the box. Diff-aware merge against existing source files (only writes what changed). tokens.config.json autodiscovery means zero-arg calls after first setup. Replaces Style Dictionary and Tokens Studio's export pipeline for popular styling methods.figma_import_tokens - Push code-side token edits back to Figma. Diff against current Figma state, apply only the deltas. Round-trip safe — Figma variable IDs preserved in DTCG $extensions["figma-console-mcp"] so renames on either side don't create duplicates. Dry-run default for safety. In Cloud Mode, pass tokens inline via payload or files (no local filesystem access).figma_create_variable_collection - Create new variable collections with modesfigma_create_variable - Create COLOR, FLOAT, STRING, or BOOLEAN variablesfigma_update_variable - Update variable values in specific modesfigma_rename_variable - Rename variables while preserving valuesfigma_delete_variable - Delete variablesfigma_delete_variable_collection - Delete collections and all their variablesfigma_add_mode - Add modes to collections (e.g., "Dark", "Mobile")figma_rename_mode - Rename existing modesfigma_batch_create_variables - Create up to 100 variables in one call (10-50x faster)figma_batch_update_variables - Update up to 100 variable values in one callfigma_setup_design_tokens - Create complete token system (collection + modes + variables) atomicallyfigjam_create_sticky - Create a sticky note with color optionsfigjam_create_stickies - Batch create up to 200 stickiesfigjam_create_connector - Connect nodes with labeled connector linesfigjam_create_shape_with_text - Create flowchart shapes (diamond, ellipse, etc.)figjam_create_table - Create tables with cell datafigjam_create_code_block - Add code snippets with syntax highlightingfigjam_auto_arrange - Arrange nodes in grid, horizontal, or vertical layoutsfigjam_get_board_contents - Read all content from a FigJam boardfigjam_get_connections - Read the connection graph (flowcharts, relationships)figma_list_slides - List all slides with IDs, positions, and skip statusfigma_get_slide_content - Get the full content tree of a slidefigma_get_slide_grid - Get the 2D grid layout of the presentationfigma_get_slide_transition - Read transition settings for a slidefigma_get_focused_slide - Get the currently focused slidefigma_create_slide - Create a new blank slidefigma_delete_slide - Delete a slide from the presentationfigma_duplicate_slide - Clone an existing slidefigma_reorder_slides - Reorder slides via new 2D grid layoutfigma_set_slide_transition - Set transition effects (22 styles, 8 curves)figma_skip_slide - Toggle whether a slide is skipped in presentation modefigma_add_text_to_slide - Add text to a slide with custom fonts, colors, alignment, and wrappingfigma_add_shape_to_slide - Add rectangle or ellipse shapes with colorfigma_set_slide_background - Set a slide's background color (creates or updates)figma_get_text_styles - Get all local text styles with IDs, fonts, and sizesfigma_set_slides_view_mode - Toggle grid vs. single-slide viewfigma_focus_slide - Navigate to a specific slideConnect to my Figma plugin so we can start designing
Pair with my Figma file and create a login form with email, password, and submit button
Set up a brand color token collection with Light and Dark modes
Navigate to my Figma plugin and show me any console errors
Watch the console for 30 seconds while I test my plugin
Get the last 20 console logs
Get all design variables from https://figma.com/design/abc123
Extract color styles and show me the CSS exports
Get the Button component with a visual reference image
Get the Badge component in reconstruction format for programmatic creation
Create a success notification card with a checkmark icon and message
Design a button component with hover and disabled states
Build a navigation bar with logo, menu items, and user avatar
Create a modal dialog with header, content area, and action buttons
Arrange these button variants into a component set
Organize my icon variants as a proper component set with the purple border
Create a new color collection called "Brand Colors" with Light and Dark modes
Add a primary color variable with value #3B82F6 for Light and #60A5FA for Dark
Rename the "Default" mode to "Light Theme"
Add a "High Contrast" mode to the existing collection
Compare the Button component in Figma against our React implementation
Check design parity for the Card component before sign-off
Generate component documentation for the Dialog from our design system
Create a retrospective board with "Went Well", "To Improve", and "Action Items" columns
Build a user flow diagram for the checkout process with decision points
Read this brainstorming board and summarize the key themes
Generate an affinity map from these meeting notes
Create a comparison table of our three platform options
List all slides and tell me which ones are skipped
Add a new slide with the title "Thank You" in 72px text
Set a DISSOLVE transition on the first slide with 0.5 second duration
Duplicate slide 5 for an A/B comparison
Skip slides 8 and 9 — they're not ready for the client presentation
Reorder my slides so the conclusion comes before Q&A
Take a screenshot of the current Figma canvas
Navigate to this file and capture what's on screen
Requires Desktop Bridge: This feature works with Local Mode (NPX or Local Git) and Cloud Mode. Remote SSE without Cloud Mode pairing is read-only and cannot create or modify designs.
One of the most powerful capabilities of this MCP server is the ability to design complete UI components and pages directly in Figma through natural language conversation with any MCP-compatible AI assistant like Claude Desktop or Claude Code.
Create original designs from scratch:
Design a login card with email and password fields, a "Forgot password?" link,
and a primary Sign In button. Use 32px padding, 16px border radius, and subtle shadow.
Leverage existing component libraries:
Build a dashboard header using the Avatar component for the user profile,
Button components for actions, and Badge components for notifications.
Generate complete page layouts:
Create a settings page with a sidebar navigation, a main content area with form fields,
and a sticky footer with Save and Cancel buttons.
figma_search_components to find relevant building blocksfigma_instantiate_componentfigma_execute| Role | Use Case |
|---|---|
| Designers | Rapidly prototype ideas without manual frame-by-frame construction. Explore variations quickly by describing changes. |
| Developers | Generate UI mockups during planning discussions. Create visual specs without switching to design tools. |
| Product Managers | Sketch out feature concepts during ideation. Communicate visual requirements directly to stakeholders. |
| Design System Teams | Test component flexibility by generating compositions. Identify gaps in component coverage. |
| Agencies | Speed up initial concept delivery. Iterate on client feedback in real-time during calls. |
Brand New Design:
"Create a notification toast with an icon on the left, title and description text, and a dismiss button. Use our brand colors."
The AI creates custom frames, applies your design tokens, and builds the component from scratch.
Component Composition:
"Build a user profile card using the Avatar component (large size), two Button components (Edit Profile and Settings), and a Badge for the user's status."
The AI searches your library, finds the exact components, and assembles them with proper spacing and alignment.
Design Iteration:
"The spacing feels too tight. Increase the gap between sections to 24px and make the heading larger."
The AI modifies the existing design, takes a screenshot to verify, and continues iterating until you're satisfied.
The AI automatically follows a validation workflow after creating designs:
This ensures designs aren't just technically correct—they look right.
The Figma Desktop Bridge plugin is the recommended way to connect Figma to the MCP server. It communicates via WebSocket — no special Figma launch flags needed, and it persists across Figma restarts.
figma-desktop-bridge/manifest.json from the figma-console-mcp directoryOne-time import. Once imported, the plugin stays in your Development plugins list. Just run it whenever you want to use the MCP.
📖 Desktop Bridge Documentation
Read Operations:
Write Operations:
figma_executeMultiple files: The WebSocket server supports multiple simultaneous plugin connections — one per open Figma file. Each connection is tracked by file key with independent state (selection, document changes, console logs).
Environment variables:
FIGMA_WS_PORT — Override the preferred WebSocket port (default: 9223). The server will fall back through a 10-port range starting from this value if the preferred port is occupied.FIGMA_WS_HOST — Override the WebSocket server bind address (default: localhost). Set to 0.0.0.0 when running inside Docker so the host machine can reach the MCP server.Cloud Mode: The plugin also supports a Cloud Mode toggle for pairing with web AI clients (Claude.ai, v0, Replit, Lovable). Toggle "Cloud Mode" in the plugin UI, enter the 6-character pairing code from your AI assistant, and click Connect. See Cloud Mode for details.
Plugin Limitation: In Local Mode, works with NPX or Local Git. In Cloud Mode, pairs with the remote MCP endpoint. Remote SSE without Cloud Mode pairing is read-only.
Figma Console MCP now supports multiple simultaneous instances — perfect for designers and developers who work across multiple projects or use Claude Desktop's Chat and Code tabs at the same time.
When two processes tried to start the MCP server (e.g., Claude Desktop's Chat tab and Code tab), the second one would crash with EADDRINUSE because both competed for port 9223.
figma_get_status shows which port you're on and lists other active instances| Scenario | Before v1.10.0 | Now |
|---|---|---|
| Two Claude Desktop tabs (Chat + Code) | Second tab crashes | Both work independently |
| Multiple CLI terminals on different projects | Only one can run | All run simultaneously |
| Claude Desktop + Claude Code CLI | Port conflict | Both coexist |
Nothing. Multi-instance support is fully automatic:
(Re-importing the manifest is only required when the plugin code itself changes — e.g. after a package update. Port-range scanning is already in the shipped plugin.)
Figma Console MCP includes support for MCP Apps — rich interactive UI experiences that render directly inside any MCP client that supports the MCP Apps protocol extension. Built with the official @modelcontextprotocol/ext-apps SDK.
What are MCP Apps? Traditional MCP tools return text or images to the AI. MCP Apps go further — they render interactive HTML interfaces inline in the chat, allowing users to browse, filter, and interact with data directly without consuming AI context.
An interactive design token explorer.
Usage: Ask Claude to "browse the design tokens" or "show me the design tokens" while connected to a Figma file.
Features:
A Lighthouse-style health scorecard that audits your design system across six categories.
Usage: Ask Claude to "audit the design system" or "show me design system health" while connected to a Figma file.
Features:
Enabling MCP Apps:
MCP Apps are enabled by default in the setup configurations above (via "ENABLE_MCP_APPS": "true"). If you set up before v1.10.0 and don't have this in your config, add it to your env section:
"env": {
"FIGMA_ACCESS_TOKEN": "figd_YOUR_TOKEN_HERE",
"ENABLE_MCP_APPS": "true"
}
Note: MCP Apps require an MCP client with ext-apps protocol support (e.g. Claude Desktop). This feature is experimental and the protocol may evolve.
Planned MCP Apps:
The architecture supports adding new apps with minimal boilerplate — each app is a self-contained module with its own server-side tool registration and client-side UI.
Figma Console MCP (This Project) - Debugging, data extraction, and design creation
Figma Official Dev Mode MCP - Code generation
Use both together for the complete workflow: generate code with Official MCP, then debug and extract data with Console MCP.
Current Status: v1.31.0 (Stable) - Production-ready with a self-healing Desktop Bridge connection (zombie-process reaper + auto-reconnect watchdog — fixes the recurring "not connected until restart" bug), native variable binding on fills/strokes + typography control in the write tools, shared-library inspection (key-based component resolution + library variable read/import without Enterprise plan), 10-format token export pipeline (DTCG, CSS, Tailwind v4, Tailwind v3, SCSS, TS module, JSON flat/nested, Style Dictionary v3, Tokens Studio), bidirectional Figma↔code token sync, version history & time-series awareness, FigJam + Slides support, Cloud Write Relay, Design System Kit, WebSocket-only connectivity, smart multi-file tracking, 106 tools (Local) / 95 tools (Cloud) / 9 tools (Remote read-only), Comments API, cross-MCP identity disambiguation, and MCP Apps.
Recent Releases:
SIGTERM → SIGKILL (a hung server that ignores graceful shutdown can no longer survive), sweeps the range every 5 minutes via an unref'd periodic reaper, and a shutdown backstop prevents a server from zombifying in the first place. The redesigned Desktop Bridge plugin adds an auto-reconnect watchdog (re-probes every ~12s while disconnected), a context-aware Pause / Resume / Reconnect button, and a live server-count badge. No new tools; plugin re-import required (bridge ui.html + code.js changed). 1190 tests passing, including an integration test that spawns a real SIGTERM-ignoring process and asserts the reaper kills it.figma_execute. figma_set_fills / figma_set_strokes accept a variableId to bind a fill/stroke to a color variable via setBoundVariableForPaint (any plan, via the bridge). figma_set_text gains fontFamily / fontStyle with space-insensitive normalization (SemiBold → Semi Bold) and graceful Regular fallback. figma_instantiate_component pre-loads instance text fonts before applying overrides (fixes silently-skipped text overrides on non-Regular weights) and returns a warnings array for failed overrides. Also fixes a mixed-font crash in figma_set_text and a ui.html relay that was dropping new message fields. No new tools; plugin re-import required (bridge ui.html + code.js changed). Validated live; 1185 tests passing.figma_generate_component_doc now renders Figma component descriptions faithfully and reliably tags atomic-design level. Single-# headings in descriptions render as real sections (Usage Guidelines, Implementation Considerations, Accessibility Requirements, Content Configuration) instead of leaking as - # Heading list items; frontmatter description takes the first sentence instead of truncating on the word "Accessibility"; the generated Figma URL no longer doubles ?node-id=; and the component's atomic level (atom/molecule/organism/template) is auto-detected via a single ids=<node> file request + divider walk-back, with no dependency on library publishing. No new tools; plugin re-import not required.figma_get_design_system_kit now resolves variables bridge-first (Desktop Bridge / cloud relay → REST fallback) instead of calling the Enterprise-only Variables REST API directly. Non-Enterprise users no longer hit a 403 on the kit's token section when a bridge is connected, and a REST 403 now points the caller back to the bridge instead of dead-ending. 7 new tests, 1185 total passing. No new tools; plugin re-import not required.figma_get_library_component_by_key resolves any 40-char component key to full componentPropertyDefinitions + variants (with their published keys) + per-variant visual specs — without needing the source library file's URL. figma_get_library_variables lists library tokens via Plugin API (works on every Figma plan; the REST equivalent is Enterprise-only). figma_import_library_variable imports a library token to the current file so it can be bound to nodes. 27 new tests, 1178 total passing. Plugin re-import optional.module.exports for alias-only sets (now resolves alias chains to literal values); TypeScript module + JSON flat + JSON nested formatters emitted "{alias.path}" strings as literal values (now resolves); Tailwind v4 namespace-prefix doubling (--color-theme-color-X is now --color-theme-X). Adds resolveAliasChain public helper. 1151 tests still passing.figma_export_tokens. Seven new output formats: Tailwind v4 @theme inline, Tailwind v3 config, SCSS variables, TypeScript module, JSON flat/nested, Style Dictionary v3, Tokens Studio multi-file. Combined with DTCG + CSS variables, ships 10 fully-implemented output formats with zero third-party build-tool dependencies. Tool description updated, docs/tools.md table all-green. 22 new Jest tests, 1151 total passing.Phase 3.5: Stale-Content Audit to the release runbook so future releases get a strict pre-publish grep sweep across banners, tool descriptions, error messages, source comments, and tool-count consistency.figma_export_tokens + figma_import_tokens replace Style Dictionary and Tokens Studio's export pipeline. Canonical DTCG JSON + CSS custom properties. Diff-aware merge with round-trip ID preservation via $extensions["figma-console-mcp"]. Apply phase pushes hex-value edits back to Figma via the plugin bridge. Verified end-to-end against 713-token + 280-token design systems.figma_diagnose tool for designer-readable health checks. Every response tagged _mcp: "figma-console-mcp"; errors prefixed [figma-console-mcp] so attribution is unambiguous when running multiple Figma MCPs. Plugin status pill now reads Local · ready / Cloud · ready / Local + Cloud · ready. Net diff: −7,299 lines, plugin re-import optional.figma_diff_versions via plugin session buffer. Description and annotation edits made during a session now appear in diff output (REST API doesn't return these — bridged through the plugin's documentchange listener).scope_coverage object surfaces what figma_diff_versions does and doesn't track; always-on coverage warnings prevent silent invisibility on token-value changes and component-instance placements.Coming Next:
toCreate apply orchestration, toDelete for replace strategy, alias-target updates, and cross-library variable resolution via getVariableByIdAsync so cross-library aliases render as real var(--target) references instead of comments.git clone https://github.com/southleft/figma-console-mcp.git
cd figma-console-mcp
npm install
# Local mode development
npm run dev:local
# Cloud mode development
npm run dev
# Build
npm run build
MIT - See LICENSE file for details.
Run in your terminal:
claude mcp add figma-console-mcp --env ENABLE_MCP_APPS="" --env FIGMA_ACCESS_TOKEN="" -- npx -y figma-console-mcppro tip
Just installed Figma Console Mcp? Say to Claude: "remember why I installed Figma Console Mcpand what I want to try" — it'll save into your Vault.
how this works →Security
Review before useWill ask for:
FIGMA_ACCESS_TOKENAutomated heuristic from public metadata — not a security guarantee.