Figma Local MCP Bridge
Provides MCP-based integration with Figma, allowing AI agents to interact with Figma documents through a local bridge, including plugin management, design data access, and bridge lifecycle controls.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Figma Local MCP Bridgestart the bridge and show me its status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Figma Local MCP Bridge
A VS Code extension for managing the local Figma MCP bridge server: server lifecycle, the Figma dev plugin, MCP tool integration for Copilot, and one-click setup for other AI agents — all without leaving the editor.
This is a from-scratch port of the Figma Local MCP GUI Flutter desktop app, rebuilt around native VS Code UI (activity-bar tree view, status bar, output channels, commands) instead of a standalone window.
Features
Bridge lifecycle — start/stop/restart the local bridge with a health gate (status flips to Running only after
/healthreturns 200), orphan-kill, multi-window adopt-external, session/uptime in the status bar.MCP for Copilot — registers an
McpServerDefinitionProviderso agent mode gets the Figma MCP tools natively (VS Code ≥ 1.101).Plugin build — builds the Figma development plugin (
manifest.json,code.js,ui.html, with the bridge port injected) into an extension-owned folder, ready to import into Figma; rebuilds update it in place and a sidecar.installed.jsontracks staleness.Connect AI agent… — one command adds the Figma MCP server to other agents. Pick any of them (installed ones are detected and preselected):
Agent
Config written
Claude Code
claude mcp add-json --scope userif the CLI is on PATH, else~/.claude.jsonGemini CLI
~/.gemini/settings.jsonOpenAI Codex CLI
~/.codex/config.toml(or$CODEX_HOME)opencode
~/.config/opencode/opencode.json(%APPDATA%\opencodeon Windows)Kilo Code / Cline / Roo Code
the extension's
settings/*mcp_settings.jsonin VS Code global storageCursor
~/.cursor/mcp.jsonWindsurf
~/.codeium/windsurf/mcp_config.jsonClaude Desktop
claude_desktop_config.jsonAnything else
"Other agent…" copies a generic
mcpServersJSON snippetExisting entries and settings are preserved (atomic merge, one-time
.bak, chmod 600). Preview AI Agent Config… shows the entry without writing it. When the bridge token is changed or regenerated, connected agents are rewritten automatically (or run Update Connected AI Agents). Agents talk to the bridge that this extension runs, so keep VS Code open while you use them.Runtime — seeds from a VSIX-bundled
runtime-seed/built fromsuperdoccimo/figma-mcp-free; stage-and-swap, rollback, force-reinstall; optional on-device Build from source with verification (MCPinitialize+/health401/200) before swap.System check — Node runtime (VS Code's built-in one counts), port availability/health, Figma desktop process, plugin installed.
Related MCP server: Figma Bridge MCP
Requirements
VS Code 1.101+ (native MCP support)
Figma desktop (to import and run the development plugin)
No Node.js install needed. The bridge, the Copilot MCP server and the AI agent configs all run on VS Code's own binary via
ELECTRON_RUN_AS_NODE. Only Build from source needs a real Node.js ≥ 18, and it offers to download a managed copy if none is found.
Extension Settings
Setting | Default | Description |
|
| Bridge listen port (must match plugin |
|
| Bind address: |
|
| Start the bridge on activation |
|
| Custom |
|
| Real Node.js for source builds / server fallback |
|
| Node written into AI agent configs (optional; defaults to system Node, else VS Code's binary) |
|
| Override plugin manifest |
|
| Check upstream SHA on activation |
Secrets (pairing password, Figma token) live in VS Code Secret Storage — never in settings or argv.
Commands
Open the Figma MCP activity-bar icon for the dashboard tree (Bridge / MCP / Plugin / Runtime / System). Title-bar and context-menu actions cover start/stop/restart, test connection, build plugin, build from source, rollback, and system check. Palette-visible commands use the Figma MCP: prefix.
Loading the plugin into Figma
Figma desktop does not pick up plugins from a folder — development plugins are imported once by manifest path:
Run Build Figma Plugin (Plugin section of the tree, or the Command Palette). It prints the path of the built
manifest.json; use Copy manifest path to put it on the clipboard.In Figma desktop: Plugins → Development → Import plugin from manifest… and select that file (in the Linux/macOS file dialog, press
Ctrl+L/Cmd+Shift+Gand paste the path).Run it from Plugins → Development. Keep the pre-filled bridge URL (
http://localhost:<port>) and paste the pairing token (Copy token in the Bridge section of the tree).Later rebuilds (port change, runtime update) overwrite the same folder and keep the manifest
id, so Figma picks up the new files without re-importing.
The manifest lists only http://localhost:<port> in devAllowedDomains: Figma rejects IP literals such as 127.0.0.1 there (the plugin then shows "Manifest issue" and won't run). The plugin iframe's CSP is built from that list, so inside Figma the bridge must be addressed as localhost, not 127.0.0.1.
Security notes
The bridge token is passed only via
FIGMA_PLUGIN_BRIDGE_TOKEN(never argv).AI agent config files are written with mode
600on POSIX and contain the bridge token in plaintext by design — don't commit or share them.Runtime
runtime.jsonfiles are SHA-256 verified hard-fail before stage-and-swap.
Development
npm install
npm run watch # esbuild --watch; or press F5 → Extension Development Host
npm run lint
npm run check-types
npm test # unit (vitest) + integration (@vscode/test-cli)
npm run sync-runtime # rebuild runtime-seed/ from superdoccimo/figma-mcp-free
npx @vscode/vsce packageRuntime seed
runtime-seed/ is a committed build artifact (bridge + MCP + plugin + runtime.json). Refresh it with:
npm run sync-runtime
# or pin a ref:
node tool/build-runtime.mjs --ref <sha>The script downloads upstream source, builds with pnpm, bundles with esbuild (CJS), hard-fails on missing plugin files, writes per-file SHA-256s, and smoke-verifies (MCP initialize + /health 401/200).
License
MIT — see the LICENSE file.
This server cannot be deployed
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Related MCP Servers
- AlicenseAqualityDmaintenanceLocal-first MCP server that connects AI coding agents to the currently open Figma file through a local plugin bridge, requiring no Figma API token.8MIT
- AlicenseBqualityBmaintenanceLocal MCP server connecting AI clients to the Figma desktop app for inspecting and editing Figma documents via the Plugin API.1630 npm1MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that bridges Claude to Figma, enabling read access via REST and full create/edit capabilities through the Figma Plugin API over a local WebSocket.17 npmMIT
- AlicenseNot gradedqualityBmaintenanceLocal-first MCP bridge for live Figma documents, enabling design inspection, editing, asset export, component authoring, and variable management through a plugin and WebSocket server without consuming Figma REST API requests.1MIT