{"id":47673,"library":"figma-console-mcp","title":"Figma Console MCP Server","description":"The most comprehensive MCP server for Figma (v1.31.0, active development with weekly releases). Bridges design and development by giving AI assistants (Claude, etc.) complete access to Figma for extraction, creation, debugging, and bidirectional token sync. Key differentiators: supports 4 connection modes (NPX, Local Git, Cloud Mode, Remote SSE), provides write tools for design creation and modification, offers accessibility scanning with 14 WCAG checks, and includes real-time console monitoring via a Desktop Bridge WebSocket plugin. Replaces Style Dictionary and Tokens Studio's export pipeline with DTCG JSON + CSS custom properties sync. Cross-MCP identity tagging prevents attribution conflicts when running multiple Figma MCPs.","status":"active","version":"1.31.0","language":"javascript","source_language":"en","source_url":"https://github.com/southleft/figma-console-mcp","tags":["javascript","mcp","figma","plugin","design-tokens","design-systems","variables","figjam","slides","typescript"],"install":[{"cmd":"npm install figma-console-mcp","lang":"bash","label":"npm"},{"cmd":"yarn add figma-console-mcp","lang":"bash","label":"yarn"},{"cmd":"pnpm add figma-console-mcp","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core MCP protocol implementation for server communication","package":"@modelcontextprotocol/sdk","optional":false},{"reason":"Figma REST API client for reading and writing design data","package":"figma-js","optional":false}],"imports":[{"note":"Use as a CLI tool via npx, not imported as a library. The package provides an MCP server executable.","wrong":"npx @southleft/figma-console-mcp","symbol":"main","correct":"npx figma-console-mcp"},{"note":"TypeScript types are exported for configuration interfaces. Use ESM import type syntax in modern TypeScript projects (v3+).","wrong":"const { FigmaConsoleMcpConfig } = require('figma-console-mcp');","symbol":"types (TypeScript)","correct":"import type { FigmaConsoleMcpConfig } from 'figma-console-mcp';"},{"note":"Cloud mode uses a separate CLI entry point. The --cloud flag was removed in v1.20.0.","wrong":"npx figma-console-mcp --cloud","symbol":"cloud pairing","correct":"npx figma-console-mcp-cloud --token YOUR_CLOUD_TOKEN"}],"quickstart":{"code":"// 1. Install & run the Figma Console Desktop Bridge plugin (available in Figma Community)\n// 2. Start the MCP server (NPX mode recommended):\nnpx figma-console-mcp --figma-personal-access-token=\"FIGMA_TOKEN\" --desktop-bridge-port=5050\n\n// 3. The server registers tools like:\n// - get_design_tokens: Fetch all variables/tokens from a Figma file\n// - create_component: Create a new component in Figma\n// - accessibility_audit: Run WCAG checks on a frame\n// - figjam_create_sticky: Add a sticky note to a FigJam board\n\n// 4. Example: Extract design tokens\nimport { Client } from '@modelcontextprotocol/sdk/client/index.js';\nimport { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';\n\nconst transport = new StdioClientTransport({\n  command: 'npx',\n  args: ['figma-console-mcp', '--figma-personal-access-token', process.env.FIGMA_TOKEN ?? '', '--desktop-bridge-port', '5050']\n});\nconst client = new Client({ name: 'test-client' }, { capabilities: {} });\nawait client.connect(transport);\nconst result = await client.request({ method: 'tools/call', params: { name: 'get_design_tokens', arguments: { file_key: 'abc123' } } });\nconsole.log(result);","lang":"typescript","description":"Shows how to start the MCP server and call a tool (extract tokens) using the @modelcontextprotocol/sdk client."},"warnings":[{"fix":"Update to v1.31.0+ and re-import the Desktop Bridge plugin. The fix force-kills zombie processes (SIGTERM→SIGKILL) and adds auto-reconnect watchdog.","message":"Zombie MCP processes squatting WebSocket port range after bad shutdown – Desktop Bridge drops connection requiring manual restart","severity":"breaking","affected_versions":"<1.31.0"},{"fix":"Use npx figma-console-mcp-cloud --token YOUR_CLOUD_TOKEN instead.","message":"The --cloud flag for starting Cloud Mode was removed.","severity":"deprecated","affected_versions":">=1.20.0"},{"fix":"Use NPX or Local Git setup for write access. Check capability table in README.","message":"Read-only in Remote SSE mode and Cloud Mode – design creation/editing tools are not available.","severity":"gotcha","affected_versions":"all"},{"fix":"After updating the npm package, re-import the plugin in Figma via the community page.","message":"Desktop Bridge plugin must be reinstalled from Figma Community after version updates to pick up fixes (e.g., auto-reconnect).","severity":"gotcha","affected_versions":"all"},{"fix":"Upgrade Node.js to v18+ (LTS recommended).","message":"Node.js engines requirement >=18.0.0 – fails on older versions.","severity":"breaking","affected_versions":"all"},{"fix":"Use NPX mode or pass explicit paths via command-line arguments.","message":"Hardcoded path to Local Git repository – can cause 'repo not found' errors if directory structure changes.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'14':65 '4':43 'access':29,62 'activ':13 'ai':24 'assist':25 'attribut':103 'bidirect':37 'bridg':18,78 'check':67 'claud':26 'cloud':49 'complet':28 'comprehens':7 'conflict':104 'connect':44 'consol':2,73 'creation':34,58 'cross':98 'cross-mcp':97 'css':93 'custom':94 'debug':35 'design':19,57,115,118 'design-system':117 'design-token':114 'desktop':77 'develop':14,21 'dictionari':83 'differenti':41 'dtcg':91 'etc':27 'export':88 'extract':33 'figjam':121 'figma':1,11,31,108,112 'git':48 'give':23 'ident':100 'includ':69 'javascript':110 'json':92 'key':40 'local':47 'mcp':3,8,99,111 'mcps':109 'mode':45,50 'modif':60 'monitor':74 'multipl':107 'npx':46 'offer':61 'pipelin':89 'plugin':80,113 'prevent':102 'properti':95 'provid':53 'real':71 'real-tim':70 'releas':17 'remot':51 'replac':81 'run':106 'scan':63 'server':4,9 'slide':122 'sse':52 'studio':86 'style':82 'support':42 'sync':39,96 'system':119 'tag':101 'time':72 'token':38,85,116 'tool':55 'typescript':123 'v1.31.0':12 'variabl':120 'via':75 'wcag':66 'websocket':79 'week':16 'write':54","created_at":"2026-06-07T16:52:43.357608+00:00","updated_at":"2026-06-07T16:52:43.357608+00:00","problems":[{"fix":"Ensure the Figma Desktop Bridge plugin is active (open Figma and check plugin is running). Run 'npx figma-console-mcp --desktop-bridge-port 5050' with a different port if 5050 is occupied.","cause":"Desktop Bridge plugin is not running or the port is blocked by a zombie process.","error":"Error: connect ECONNREFUSED 127.0.0.1:5050"},{"fix":"Set FIGMA_TOKEN or pass --figma-personal-access-token with a valid token from Figma Developer Settings. Tokens must have 'file_variables:read' and 'file_content:read' scopes.","cause":"Missing or malformed FIGMA_TOKEN environment variable or command-line argument.","error":"[figma-console-mcp] Error: Invalid Figma Personal Access Token"},{"fix":"Run 'npx figma-console-mcp' directly (without global install). If using NPX, ensure npm >=7 and the package name is correct.","cause":"The package is not installed globally or npx cannot resolve it.","error":"figma-console-mcp: Command not found"},{"fix":"Confirm Node.js >=18 is installed (node --version). Run 'npm install -g figma-console-mcp' or use npx without global install.","cause":"Node.js or npm not installed, or package not found in PATH.","error":"Error: spawn npx figma-console-mcp ENOENT"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/southleft/figma-console-mcp#readme","github":"https://github.com/southleft/figma-console-mcp","docs":null,"changelog":null,"pypi":null,"npm":"figma-console-mcp","openapi_spec":null,"status_page":null,"smithery":null,"categories":["ai-ml","devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}