home / mcp / talk to figma mcp server
Enables Claude Desktop App to control Figma via MCP and WebSocket with a local bridge.
Configuration
View docs{
"mcpServers": {
"gaganmanku96-talk-with-figma-claude": {
"command": "node",
"args": [
"~/talk_to_figma_claude/src/mcp-server/mcp-server.js"
]
}
}
}You can connect Claude Desktop App to Figma through an MCP (Model Context Protocol) server running locally. This enables Claude to issue Figma actions like creating shapes or querying document information via a standardized, scriptable interface, while the WebSocket and MCP layers handle communication and synchronization.
Start the integration so Claude can talk to Figma. Use the provided startup script appropriate for your platform to launch all necessary components in the right order.
Prerequisites you need before installation are:
- Node.js 14+ and npm
- Figma desktop application (the local plugin and integration rely on the desktop app)Install steps you will run in your terminal or command prompt are: 1. Clone the project repository 2. Install dependencies 3. Make startup scripts executable on Unix-like systems
Quick start on Linux/macOS: run the startup script to launch the WebSocket server, MCP server, and Claude bridge in the foreground. The exact script you run is compiled for your platform.
Quick start on Windows: run the Windows startup script to launch the same components. Once they are running, open Claude Desktop App and establish a connection using the channel join mechanism, then issue Figma actions such as create_rectangle or get_document_info.
Using Claude with the integration: after starting the service, open Claude Desktop App. Use the join_channel command to establish a connection. Then you can issue various Figma tools such as create_rectangle, get_document_info, and more from Claude, depending on what you want to accomplish in your Figma document.
The MCP configuration for Claude is provided as a JSON object. You tell Claude how to start the MCP server that bridges Claude to Figma. The example below shows how to register a stdio-based MCP server that runs a JavaScript file with Node.
{
"mcpServers": {
"talk_to_figma_claude": {
"type": "stdio",
"command": "node",
"args": [
"~/talk_to_figma_claude/src/mcp-server/mcp-server.js"
],
"env": {}
}
}
}To enable integration with Figma, install the plugin from the manifest. In Figma, go to Actions, choose import from manifest, then select the manifest.json located under talk-with-figma-claude/src/figma_plugin/manifest.json.
In Claude, configure the MCP to connect to the local server. The setup will expose a single stdio MCP server named talk_to_figma_claude which runs the mcp-server.js file via Node. The example JSON above is what you would place in Claude’s MCP configuration to activate the bridge.
Basic Figma tools cover common document interactions and creation actions. You can query document information, access selections, create shapes and frames, adjust styling, and manage components. Enhanced tools provide improved component creation and batch operations for efficiency.
All runtime logs are saved under a logs directory with timestamped files for each component. Review these logs if you encounter issues or need to diagnose behavior.
A server monitoring dashboard is available at http://localhost:3650 while the MCP server is running. Use it to observe connection status, health, and performance metrics.
If you run into problems, take these steps: - Check the logs in the logs directory for error messages. - Ensure Figma is running and the plugin is installed. - Execute health_check or connection_status tools from Claude to verify the MCP bridge. - If necessary, restart the integration to reinitialize all components.
MIT License - See the LICENSE file for details.
Query document information such as document name, document size, and current state.
Retrieve the currently selected objects within the Figma document.
Create a new rectangle shape on the canvas with specified position, size, and styling.
Create a new frame (container) on the canvas to organize elements.
Insert a text node with specified content and styling.
Apply fill color to an existing shape or element.
Set the corner radius for rounded shapes.
Create a component from a selected element for reuse.
Modify properties of a component instance.
Create a component instance with enhanced handling for complex setups.
Apply color with improved color handling and formats.
Batch create multiple component instances in a single operation.