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, and debugging.
π v1.11.1 β Doc Generator Fixes: Cleaner
figma_generate_component_docoutputβproper markdown tables, filtered property metadata, Storybook links. See changelog β
Figma Console MCP connects AI assistants (like Claude) to Figma, enabling:
- π Plugin debugging - Capture console logs, errors, and stack traces
- πΈ Visual debugging - Take screenshots for context
- π¨ Design system extraction - Pull variables, components, and styles
- βοΈ Design creation - Create UI components, frames, and layouts directly in Figma
- π§ Variable management - Create, update, rename, and delete design tokens
- β‘ Real-time monitoring - Watch logs as plugins execute
- π Three ways to install - Remote SSE (OAuth, zero-setup), NPX (npm package), or Local Git (source code)
First, decide what you want to do:
| I want to... | Setup Method | Time |
|---|---|---|
| Create and modify designs with AI | NPX Setup (Recommended) | ~10 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 | Remote SSE |
|---|---|---|
| Read design data | β | β |
| Create components & frames | β | β |
| Edit existing designs | β | β |
| Manage design tokens/variables | β | β |
| Desktop Bridge plugin | β | β |
| Total tools available | 56+ | 16 |
Bottom line: Remote SSE is read-only with ~34% of the tools. If you want AI to actually design in Figma, use NPX Setup.
Best for: Designers who want full AI-assisted design capabilities.
What you get: All 56+ tools including design creation, variable management, and component instantiation.
- Node.js 18+ β Check with
node --version(Download) - Figma Desktop installed (not just the web app)
- An MCP client (Claude Code, Cursor, Windsurf, Claude Desktop, etc.)
- Go to Manage personal access tokens in Figma Help
- Follow the steps to create a new personal access token
- Enter description:
Figma Console MCP - Copy the token β you won't see it again! (starts with
figd_)
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@latestCursor / 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:
- Open Figma Desktop normally (no special flags needed)
- Go to Plugins β Development β Import plugin from manifest...
- Select
figma-desktop-bridge/manifest.jsonfrom the figma-console-mcp directory- NPX users: Run
npx figma-console-mcp@latest --print-pathto find the directory
- NPX users: Run
- Run the plugin in your Figma file β it auto-connects via WebSocket (scans ports 9223β9232)
One-time setup. The plugin persists in your Development plugins list across sessions.
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!)
π Complete Setup Guide
Best for: Developers who want to modify source code or contribute to the project.
What you get: Same 56+ 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:localAdd 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.
π Complete Setup Guide
Best for: Quickly evaluating the tool or read-only design data extraction.
What you get: 21 read-only tools β view data, take screenshots, read logs, design-code parity. Cannot create or modify designs.
- Open Claude Desktop β Settings β Connectors
- Click "Add Custom Connector"
- Enter:
- Name:
Figma Console (Read-Only) - URL:
https://figma-console-mcp.southleft.com/sse
- Name:
- Click "Add" β Done! β
OAuth 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.
π Complete Setup Guide
| Feature | NPX (Recommended) | Local Git | Remote SSE |
|---|---|---|---|
| Setup time | ~10 minutes | ~15 minutes | ~2 minutes |
| Total tools | 56+ | 56+ | 21 (read-only) |
| Design creation | β | β | β |
| Variable management | β | β | β |
| Component instantiation | β | β | β |
| Desktop Bridge plugin | β | β | β |
| Variables (no Enterprise) | β | β | β |
| Console logs | β (zero latency) | β (zero latency) | β |
| Read design data | β | β | β |
| Authentication | PAT (manual) | PAT (manual) | OAuth (automatic) |
| Automatic updates | β
(@latest) |
Manual (git pull) |
β |
| Source code access | β | β | β |
Key insight: Remote SSE is read-only with ~34% of the tools. Use NPX for full capabilities.
π Complete Feature Comparison
After setup, try these prompts:
Basic test (both modes):
Navigate to https://www.figma.com and check status
Design system test (requires auth):
Get design variables from [your Figma file URL]
Plugin test (Local Mode only):
Show me the primary font for [your theme name]
When you first use design system tools:
- Browser opens automatically to Figma authorization page
- Click "Allow" to authorize (one-time)
- Token stored securely and refreshed automatically
- Works with Free, Pro, and Enterprise Figma plans
- Visit https://help.figma.com/hc/en-us/articles/8085703771159-Manage-personal-access-tokens
- Generate token
- Add to MCP config as
FIGMA_ACCESS_TOKENenvironment variable
figma_navigate- Open Figma URLsfigma_get_status- Check connection status
figma_get_console_logs- Retrieve console logsfigma_watch_console- Real-time log streamingfigma_clear_console- Clear log bufferfigma_reload_plugin- Reload current page
figma_take_screenshot- Capture UI screenshots
figma_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 data
figma_execute- Power tool: Run any Figma Plugin API code to create designs- Create frames, shapes, text, components
- Apply auto-layout, styles, effects
- Build complete UI mockups programmatically
figma_arrange_component_set- Organize variants into professional component sets- Convert multiple component variants into a proper Figma component set
- Applies native purple dashed border visualization automatically
- Creates white container frame with title, row labels, and column headers
- Row labels vertically centered with each grid row
- Column headers horizontally centered with each column
- Use natural language like "arrange these variants" or "organize as component set"
figma_set_description- Document components with rich descriptions- Add descriptions to components, component sets, and styles
- Supports markdown formatting for rich documentation
- Descriptions appear in Dev Mode for developers
figma_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 info
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) atomically
π Detailed Tool Documentation
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
Take a screenshot of the current Figma canvas
Navigate to this file and capture what's on screen
π More Use Cases & Examples
β οΈ Local Mode Only: This feature requires the Desktop Bridge plugin and only works with Local Mode installation (NPX or Local Git). Remote Mode 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.
- You describe what you want in plain English
- The AI searches your component library using
figma_search_componentsto find relevant building blocks - Components are instantiated with proper variants and properties via
figma_instantiate_component - Custom elements are created using the full Figma Plugin API via
figma_execute - Visual validation automatically captures screenshots and iterates until the design looks right
| 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:
- Create β Execute the design code
- Screenshot β Capture the result
- Analyze β Check alignment, spacing, and visual balance
- Iterate β Fix any issues detected
- Verify β Final screenshot to confirm
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.
- Open Figma Desktop (normal launch β no debug flags needed)
- Go to Plugins β Development β Import plugin from manifest...
- Select
figma-desktop-bridge/manifest.jsonfrom the figma-console-mcp directory - Run the plugin in your Figma file β it auto-connects via WebSocket (scans ports 9223β9232)
- Ask your AI: "Check Figma status" to verify the connection
One-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:
- Variables without Enterprise API
- Reliable component descriptions (bypasses API bugs)
- Multi-mode support (Light/Dark/Brand variants)
- Real-time selection tracking and document change monitoring
Write Operations:
- Design Creation - Create frames, shapes, text, components via
figma_execute - Variable Management - Full CRUD operations on variables and collections
- Mode Management - Add and rename modes for multi-theme support
- The MCP server communicates via WebSocket through the Desktop Bridge plugin
- The server tries port 9223 first, then automatically falls back through ports 9224β9232 if needed
- The plugin scans all ports in the range and connects to every active server it finds
- All 56+ tools work through the WebSocket transport
Multiple 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 to0.0.0.0when running inside Docker so the host machine can reach the MCP server.
Plugin Limitation: Only works in Local Mode (NPX or Local Git). Remote SSE mode cannot access it.
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.
- The server tries port 9223 first (the default)
- If that port is already taken, it automatically tries 9224, then 9225, and so on up to 9232
- The Desktop Bridge plugin in Figma connects to all active servers simultaneously
- Every server instance receives real-time events (selection changes, document changes, console logs)
figma_get_statusshows 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 |
If you're running a single instance: Nothing changes. You'll still use port 9223 as before.
If you want multi-instance: Re-import the Desktop Bridge plugin in Figma (Plugins β Development β Import plugin from manifest). This updates the plugin to scan all ports and connect to every active server.
Note: The server-side update happens automatically when you update the npm package. Only the plugin needs a one-time re-import to enable multi-connection support.
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:
- Browse all tokens organized by collection with expandable sections
- Filter by type (Colors, Numbers, Strings) and search by name/description
- Per-collection mode columns (Light, Dark, Custom) matching Figma's Variables panel
- Color swatches, alias resolution, and click-to-copy on any value
- Works without Enterprise plan via Desktop Bridge (local mode)
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:
- Overall weighted score (0β100) with six category gauges: Naming, Tokens, Components, Accessibility, Consistency, Coverage
- Expandable category sections with individual findings, severity indicators, and actionable details
- Diagnostic locations linking findings to specific variables, components, or collections
- Tooltips explaining each check's purpose and scoring criteria
- Refresh button to re-run the audit without consuming AI context
- Pure scoring engine with no external dependencies β all analysis runs locally
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:
- Component Gallery β Visual browser for searching and previewing components with variant exploration
- Style Inspector β Interactive panel for exploring color, text, and effect styles with live previews
- Variable Diff Viewer β Side-by-side comparison of token values across modes and branches
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.
- Setup Guide - Complete setup guide for all MCP clients
- Self-Hosting - Deploy your own instance on Cloudflare
- Architecture - How it works under the hood
- OAuth Setup - Configure OAuth for self-hosted deployments
- Troubleshooting - Common issues and solutions
Figma Console MCP (This Project) - Debugging & data extraction
- β Real-time console logs from Figma plugins
- β Screenshot capture and visual debugging
- β Error stack traces and runtime monitoring
- β Raw design data extraction (JSON)
- β Works remotely or locally
Figma Official Dev Mode MCP - Code generation
- β Generates React/HTML code from designs
- β Tailwind/CSS class generation
- β Component boilerplate scaffolding
Use both together for the complete workflow: generate code with Official MCP, then debug and extract data with Console MCP.
Current Status: v1.11.1 (Stable) - Production-ready with WebSocket-only connectivity, smart multi-file tracking, 56+ tools, Comments API, and MCP Apps
Recent Releases:
- v1.11.1 - Doc generator fixes: clean markdown tables, Storybook links, property metadata filtering
- v1.11.0 - Complete CDP removal, improved multi-file active tracking with focus detection
- v1.10.0 - Multi-instance support (dynamic port fallback 9223β9232, multi-connection plugin, instance discovery)
- v1.9.0 - Figma Comments tools, improved port conflict detection
- v1.8.0 - WebSocket Bridge transport (CDP-free connectivity), real-time selection/document tracking,
figma_get_selection+figma_get_design_changestools - v1.7.0 - MCP Apps (Token Browser, Design System Dashboard), batch variable operations, design-code parity tools
- v1.5.0 - Node manipulation tools, component property management, component set arrangement
- v1.3.0 - Design creation via
figma_execute, variable CRUD operations
Coming Next:
- Component template library - Common UI pattern generation
- Visual regression testing - Screenshot diff capabilities
- Design linting - Automated compliance and accessibility checks
- AI enhancements - Intelligent component suggestions and auto-layout optimization
π Full Roadmap
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π Development Guide
MIT - See LICENSE file for details.
- π Documentation Site β Complete guides, tutorials, and API reference
- π Local Docs β Documentation source files
- π Report Issues
- π¬ Discussions
- π Model Context Protocol
- π¨ Figma API