Cursor Talk to Figma MCP
This project implements a Model Context Protocol (MCP) integration between Cursor AI and Figma, allowing Cursor to communicate with Figma for reading designs and modifying them programmatically.
https://github.com/user-attachments/assets/129a14d2-ed73-470f-9a4c-2240b2a4885c
Project Structure
src/talk_to_figma_mcp/
- TypeScript MCP server for Figma integrationsrc/cursor_mcp_plugin/
- Figma plugin for communicating with Cursorsrc/socket.ts
- WebSocket server that facilitates communication between the MCP server and Figma plugin
Get Started
- Install Bun if you haven’t already:
curl -fsSL https://bun.sh/install | bash
- Run setup, this will also install MCP in your Cursor’s active project
bun setup
- Start the Websocket server
bun start
- Install Figma Plugin
Manual Setup and Installation
MCP Server: Integration with Cursor
Add the server to your Cursor MCP configuration in ~/.cursor/mcp.json
:
{
"mcpServers": {
"TalkToFigma": {
"command": "bun",
"args": [
"/path/to/cursor-talk-to-figma-mcp/src/talk_to_figma_mcp/server.ts"
]
}
}
}
WebSocket Server
Start the WebSocket server:
bun run src/socket.ts
Figma Plugin
- In Figma, go to Plugins > Development > New Plugin
- Choose “Link existing plugin”
- Select the
src/cursor_mcp_plugin/manifest.json
file - The plugin should now be available in your Figma development plugins
Usage
- Start the WebSocket server
- Install the MCP server in Cursor
- Open Figma and run the Cursor MCP Plugin
- Connect the plugin to the WebSocket server by joining a channel using
join_channel
- Use Cursor to communicate with Figma using the MCP tools
MCP Tools
The MCP server provides the following tools for interacting with Figma:
Document & Selection
get_document_info
- Get information about the current Figma documentget_selection
- Get information about the current selectionget_node_info
- Get detailed information about a specific node
Creating Elements
create_rectangle
- Create a new rectangle with position, size, and optional namecreate_frame
- Create a new frame with position, size, and optional namecreate_text
- Create a new text node with customizable font properties
Styling
set_fill_color
- Set the fill color of a node (RGBA)set_stroke_color
- Set the stroke color and weight of a nodeset_corner_radius
- Set the corner radius of a node with optional per-corner control
Layout & Organization
move_node
- Move a node to a new positionresize_node
- Resize a node with new dimensionsdelete_node
- Delete a node
Components & Styles
get_styles
- Get information about local stylesget_local_components
- Get information about local componentsget_team_components
- Get information about team componentscreate_component_instance
- Create an instance of a component
Export & Advanced
export_node_as_image
- Export a node as an image (PNG, JPG, SVG, or PDF)execute_figma_code
- Execute arbitrary JavaScript code in Figma (use with caution)
Connection Management
join_channel
- Join a specific channel to communicate with Figma
Development
Building the Figma Plugin
Navigate to the Figma plugin directory:
cd src/cursor_mcp_plugin
Edit code.js and ui.html
Best Practices
When working with the Figma MCP:
- Always join a channel before sending commands
- Get document overview using
get_document_info
first - Check current selection with
get_selection
before modifications - Use appropriate creation tools based on needs:
create_frame
for containerscreate_rectangle
for basic shapescreate_text
for text elements
- Verify changes using
get_node_info
- Use component instances when possible for consistency
- Handle errors appropriately as all commands can throw exceptions
License
MIT
Talk to Figma MCP
Project Details
- yhc984/cursor-talk-to-figma-mcp-main
- Last Updated: 4/13/2025
Recomended MCP Servers
quip mcp server
An MCP server implementation that integrates the Tavily Search API, providing optimized search capabilities for LLMs.
Integrated TinyPNG MCP server, quickly use TinyPNG through LLMs.
A Model Context Protocol server that provides package index querying capabilities.
An MCP server for the NEAR blockchain
Amadeus MCP(Model Context Protocol) Server
A Model Context Protocol server for MySQL database operations
MCP for evaluating xpath
Collection of apple-native tools for the model context protocol.
MCP Crew AI Server is a lightweight Python-based server designed to run, manage and create CrewAI workflows.
MCP server for generating other MCP servers in Smithery