Control Figma Designs with Natural Language
An MCP server letting Claude Desktop directly read and manipulate a live Figma design file.
Why it matters
Leverage natural language commands to create, modify, and collaborate on Figma designs in real-time. This MCP server connects Claude Desktop to Figma via WebSocket, enabling dynamic design control.
Outcomes
What it gets done
Connect Claude Desktop to Figma using WebSocket.
Create and modify design elements (rectangles, frames, text) via natural language.
Manage Figma components and their instances programmatically.
Automate design tasks and real-time collaboration.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/vb-talk-to-figma-via-claude | bash Capabilities
Tools your agent gets
Establishes a connection with Figma
Retrieves information about the current Figma document
Gets the currently selected elements in Figma
Creates a rectangular shape in Figma
Creates a frame in Figma
Creates text elements in Figma
Sets the fill color of elements
Sets the corner radius of elements
Overview
Talk To Figma via Claude MCP Server
An MCP server letting Claude Desktop control a live Figma file - creating, styling, and managing components - via WebSocket. Use it when Claude needs to directly read or manipulate a live Figma file as part of a design workflow.
What it does
Lets Claude Desktop control Figma through MCP and WebSocket communication, extending the cursor-talk-to-figma-mcp project to work with Claude via stdio. Once connected, Claude can read document and selection info, create and style Figma elements (rectangles, frames, text, components), and manage component instances directly inside a running Figma desktop session.
When to use - and when NOT to
Use this when Claude needs to inspect or manipulate a live Figma file - reading document info, creating shapes, frames, or text, applying fill colors and corner radius, or creating and updating component instances - as part of a design or prototyping workflow. It requires the Figma desktop app running with a companion plugin installed via manifest, plus a local WebSocket server and MCP server, so it is not a cloud-based or headless Figma integration. If something breaks, the project's own troubleshooting guidance is to check the log files first, confirm Figma is actually running with the plugin installed, run the health_check/connection_status tools from Claude, and restart the whole integration if those don't resolve it.
Capabilities
- Document information tools:
get_document_info,get_selection, and similar. - Creation tools:
create_rectangle,create_frame,create_text, and similar. - Styling tools:
set_fill_color,set_corner_radius, and similar. - Component tools:
create_component,update_instance_properties, and similar. - Enhanced tools:
enhanced_create_component_instance,enhanced_set_fill_color,create_multiple_instances(batch creation). join_channelestablishes the connection before any Figma tool call;health_checkandconnection_statushelp diagnose issues.
How to install
Requires Node.js 14+, npm, and the Figma desktop app. Clone the repo, run npm install, and (on Linux/macOS) chmod +x run-figma-claude.sh. Start everything with ./bin/claude-figma-connect.sh (Linux/macOS) or bin\claude-figma-connect.bat (Windows), which launches the WebSocket server, MCP server, and Claude bridge together. In Figma, go to Actions, import from manifest, and select the plugin's manifest.json. Add the MCP config:
{
"mcpServers": {
"TalkToFigma": {
"command": "node",
"args": [
"~/talk_to_figma_claude/src/mcp-server/mcp-server.js"
],
"env": {}
}
}
}
A monitoring dashboard is available at http://localhost:3650 while the server is running, and logs are written to the logs directory.
Who it's for
Designers and developers who want Claude to directly read and manipulate a live Figma file - creating and styling elements or managing components - instead of describing changes for a human to make manually, and who are comfortable running a local WebSocket bridge alongside Figma. The project includes a walkthrough video and screenshots demonstrating the setup end to end, and is distributed under the MIT License.
Source README
Talk to Figma - Claude Desktop App Integration
This project enables Claude Desktop App to control Figma through the MCP (Model Context Protocol) and WebSocket communication. It extends the original cursor-talk-to-figma-mcp to work with Claude Desktop App via stdio.
YT Video: https://www.youtube.com/watch?v=-LA_Ew7GhC4
https://github.com/user-attachments/assets/68dcc372-3605-477f-ab43-8fe076eed99c
Screenshots
Prerequisites
- Node.js 14+ and npm
- Figma desktop application
Installation
Clone this repository:
git clone https://github.com/gaganmanku96/talk-with-figma-claude.git cd talk-with-figma-claudeInstall dependencies:
npm installMake the startup scripts executable (Linux/macOS):
chmod +x run-figma-claude.sh
Usage
Quick Start
On Linux/macOS:
./bin/claude-figma-connect.sh
On Windows:
bin\claude-figma-connect.bat
This will start all necessary components:
- WebSocket server (background)
- MCP server (background)
- Claude bridge (foreground)
Using with Claude Desktop App
- Start the integration using one of the scripts above
- Open Claude Desktop App
- In Claude, use the following tool commands:
- First use
join_channelto establish a connection - Then use various Figma tools like
create_rectangle,get_document_info, etc.
- First use
Adding plugin in Figma
- Go to Actions in Figma
- Click on import from manifest
- Select the manifest file
talk-with-figma-claude > src > figma_plugin > manifest.json
Connecting with Claude
You'll have to add following in Claude MCP Config
{
"mcpServers": {
"TalkToFigma": {
"command": "node",
"args": [
"~/talk_to_figma_claude/src/mcp-server/mcp-server.js"
],
"env": {}
}
}
}
talk_to_figma_claude\src\mcp-server\mcp-server.js
Available Tools
Basic Figma tools:
- Document information tools (
get_document_info,get_selection, etc.) - Creation tools (
create_rectangle,create_frame,create_text, etc.) - Styling tools (
set_fill_color,set_corner_radius, etc.) - Component tools (
create_component,update_instance_properties, etc.)
Enhanced tools:
enhanced_create_component_instance: Better component instance creationenhanced_set_fill_color: Improved color handlingcreate_multiple_instances: Batch creation of instances
Logs
Logs are stored in the logs directory with timestamped files for each component.
Monitoring
A server monitoring dashboard is available at http://localhost:3650 when the server is running.
Troubleshooting
If you encounter issues:
- Check the log files in the
logsdirectory - Make sure Figma is running with the plugin installed
- Try running the
health_checkorconnection_statustools from Claude - Restart the integration if needed
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.