Figma AI Bridge
Provides tools to read, create, edit, and manage Figma documents, pages, nodes, styles, components, design tokens, and variables, enabling real-time design manipulation.
Integrates with GitHub Copilot in VS Code via MCP to allow AI-assisted design commands on Figma.
Click on "Install 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 AI BridgeCreate a rectangle on the current page"
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 AI Bridge
Let GitHub Copilot in VS Code control Figma in real-time through MCP (Model Context Protocol).

Architecture
AI Assistant ←stdio→ MCP Server (Node.js) ←WebSocket→ Relay (port 3055) ←WebSocket→ Figma PluginComponent | Location | Purpose |
Figma Plugin |
| Runs inside Figma, executes commands via |
MCP Server |
| Defines MCP tools, connects to WebSocket relay on port 3055 |
VS Code Config |
| Registers the MCP server with VS Code |
Helper Scripts |
| CLI utilities for batch operations |
Quick Start
1. Clone & Install
git clone https://github.com/renfei1992-dev/Figma_AI_Bridge.git
cd Figma_AI_Bridge
npm run setup2. Import the Figma Plugin
In Figma desktop app:
Go to Plugins → Development → Import plugin from manifest...
Select
plugin/manifest.jsonfrom this repo
3. Configure VS Code
If you open this project folder in VS Code, the .vscode/mcp.json is already configured. You're done.
To use it globally (in any project), add to ~/Library/Application Support/Code/User/mcp.json (macOS) or %APPDATA%\Code\User\mcp.json (Windows):
{
"servers": {
"figma-ai-bridge": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/figma-ai-bridge/server/index.js"]
}
}
}4. Each Session
Start the relay server — open a terminal and run:
npm run relayLeave it running. The relay forwards messages between VS Code and Figma on port 3055.
Run the plugin in Figma — Plugins → Development → "Figma AI Bridge" → click Connect
Start designing — both the plugin and MCP server auto-join the same channel (
auto), so you can immediately give design commands to Copilot
Tip: If you need multiple instances or custom channels, use the
join_channeltool to switch.
Available Tools
Reading
Tool | Description |
| Get info about the current Figma document |
| Get current selection |
| Get detailed info about the current selection including all node details |
| Get info about a specific node by ID |
| Get info about multiple nodes |
| Get all styles from the document |
| Get all local components |
| Get annotations for a node |
| Get override properties from a component instance |
| Get prototyping reactions from nodes |
| Get all variant/boolean/text properties from a component instance |
| List all pages in the document |
Creating
Tool | Description |
| Create a rectangle |
| Create a frame with optional auto-layout settings |
| Create a text element |
| Create an instance of a component |
| Clone an existing node |
| Create a section frame for organizing content |
| Create a new page in the document |
Editing
Tool | Description |
| Set fill color of a node |
| Set stroke color of a node |
| Set text content of a text node |
| Batch-update multiple text nodes |
| Set corner radius |
| Set auto-layout mode (horizontal/vertical) |
| Set padding for auto-layout frames |
| Set axis alignment for auto-layout frames |
| Set sizing modes (fixed/hug/fill) |
| Set spacing between children |
| Create or update an annotation |
| Batch-set annotations |
| Apply overrides to component instances |
| Switch component variant properties (Type, Size, etc.) |
| Move a node to a new position |
| Resize a node |
| Rename a node |
| Show or hide a node |
| Set node opacity |
| Move a node to a new parent frame |
| Change z-order of a node within its parent |
Other
Tool | Description |
| Delete a node |
| Delete multiple nodes |
| Export a node as PNG/JPG/SVG/PDF |
| Scan all text nodes in a subtree |
| Scan for nodes of specific types |
| Focus viewport on a node |
| Set selection to specific nodes |
| Switch to a specific page |
| Set default connector for FigJam |
| Create connector lines between nodes |
| Group multiple nodes together |
| Ungroup a group node |
| Switch to a different WebSocket channel (auto-joined by default) |
Design Skills
Tool | Description |
| Create a single presentation slide (title, content, visual, statement, columns, comparison, numbered) |
| Create multiple slides in one call — faster than creating individually |
| Build a structured documentation page with sections, tables, and columns |
| Build a flowchart/process diagram with shapes, arrows, and auto-layout |
| Get bounding box of all top-level content to avoid overlap |
Design Token Variables
Tool | Description | |||
| Scan a node tree for all bound design token variables | \n |
| Collect and aggregate all bound variables with resolved values |
| Get variables bound to a specific node | |||
| Resolve a variable by ID to get its current value | |||
| Bind a design token variable to a node's fill color | |||
| Bind a design token variable to a node's stroke color |
Helper Scripts
# Send a single command to Figma
node scripts/figma_cmd.mjs <channel> <command> '[paramsJSON]'
# Batch-bind design token variables
echo '[{"nodeId":"...","variableId":"...","property":"fill"}]' | node scripts/figma_bind_batch.mjs <channel>Project Structure
figma-ai-bridge/
├── .github/
│ └── skills/ # AI skill definitions (prompt instructions)
│ ├── a11y-audit/ # WCAG accessibility audit
│ │ ├── SKILL.md
│ │ ├── references/ # WCAG criteria reference
│ │ ├── scripts/ # a11y_check.py (offline analysis)
│ │ └── tests/ # Unit tests
│ ├── content-review/ # UI text review & style fixes
│ │ ├── SKILL.md
│ │ ├── references/ # Style guide (grammar, caps, words, punctuation)
│ │ └── scripts/ # figma_text.py (extract & apply text)
│ ├── figma-doc/ # Structured documentation pages
│ │ └── SKILL.md
│ ├── figma-slides/ # Presentation slide decks
│ │ └── SKILL.md
│ ├── online-research/ # Live web research
│ │ └── SKILL.md
│ └── workflow-diagram/ # Flowcharts & process maps
│ └── SKILL.md
├── plugin/
│ ├── manifest.json # Figma plugin manifest
│ ├── code.js # Plugin sandbox code (runs in Figma)
│ └── ui.html # Plugin UI (WebSocket bridge)
├── server/
│ ├── package.json # Server dependencies
│ ├── index.js # MCP server (stdio transport, connects to relay)
│ └── relay.js # WebSocket relay server (port 3055)
├── scripts/
│ ├── figma_cmd.mjs # CLI: send single command
│ └── figma_bind_batch.mjs # CLI: batch variable binding
├── .vscode/
│ └── mcp.json # VS Code MCP integration
├── package.json # Root project metadata
├── LICENSE # MIT
└── README.mdSkills
Skills are AI prompt instructions in .github/skills/ that teach Copilot how to perform complex multi-step design tasks. Each skill has a SKILL.md with the full workflow, and optionally references/ and scripts/ for supporting files.
Skill | Description |
a11y-audit | Scan Figma frames for WCAG 2.2 accessibility issues (contrast, font size, touch targets, alt text) and annotate violations |
content-review | Review UI text against writing style guidelines (grammar, capitalization, word choice, punctuation) and apply fixes |
figma-doc | Build structured documentation pages in Figma (paragraphs, columns, tables) in a single command |
figma-slides | Create presentation decks with 7 slide types — auto-organized into sections on the canvas |
online-research | Fetch live web data to ground content in current facts before creating docs or reports |
workflow-diagram | Build flowcharts and process maps with auto-layout (shapes, arrows, swimlanes, decision diamonds) |
Figma Sandbox Notes
The Figma plugin sandbox uses an older JS engine. The plugin code (plugin/code.js) avoids:
Spread syntax (
...)Template literals in some contexts
for...ofon objectsObject.entries()with destructuring
All plugin code uses var, traditional for loops, and string concatenation for compatibility.
License
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/renfei-design/Figma_AI_Bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server