Allows Claude Desktop and other AI tools to interact directly with Figma, enabling document analysis, element creation (shapes, text, frames), style modifications, text manipulation, and component management for AI-assisted design capabilities.
Allows GitHub Copilot to interact with Figma through the MCP protocol, enabling AI-assisted design capabilities directly from the Copilot interface.
Claude Talk to Figma MCP
A Model Context Protocol (MCP) plugin that allows Claude Desktop and other AI tools (GitHub Copilot, Cursor, etc.) to interact directly with Figma, enabling powerful AI-assisted design capabilities.
Important: This project is based on cursor-talk-to-figma-mcp by Sonny Lazuardi. It has been adapted to work with Claude Desktop and expanded with additional tools. Original credit belongs to Sonny Lazuardi ❤️
⚡ Quick Start (5 minutes)
Prerequisites
- Claude Desktop + Figma Desktop + Bun installed
Installation
- Setup:
- macOs / Linux:
git clone https://github.com/arinspunk/claude-talk-to-figma-mcp.git && cd claude-talk-to-figma-mcp && bun install && bun run build
- Windows:
git clone https://github.com/arinspunk/claude-talk-to-figma-mcp.git
cd claude-talk-to-figma-mcp
bun install
bun run build:win
- macOs / Linux:
- Configure Claude:
bun run configure-claude
(restart Claude Desktop) - Install Figma Plugin: Import
src/claude_mcp_plugin/manifest.json
in Figma → Menu → Plugins → Development
First Connection
- Start server:
bun socket
(verify athttp://localhost:3055/status
) - Connect plugin: Open Claude MCP Plugin in Figma → copy channel ID
- Test in Claude: "Talk to Figma, channel {channel-ID}"
✅ Success: Claude should confirm connection and you can start designing!
🚀 Core Concepts
How It Works
Simple: Claude sends design commands → Figma executes them in real-time
Bidirectional: Get info from Figma, create/modify elements, manage components
Key Capabilities
- Document Interaction: Analyze designs, get selections, export assets
- Element Creation: Shapes, text, frames with full styling control
- Smart Modifications: Colors, effects, auto-layout, responsive design
- Text Mastery: Advanced typography, font loading, text scanning
- Component Integration: Local and team library components
🛠️ Usage Patterns
Getting Started with AI Design
- Make Claude a UX expert: Use this prompt 🎨
- Connect to your project: "Talk to Figma, channel {channel-ID}"
- Start designing: "Create a mobile app login screen with modern styling"
Effective Prompting Examples
Server Management
- Start:
bun socket
- Stop:
Ctrl+C
in terminal - Status: Check
http://localhost:3055/status
- Restart: Required if connection issues occur
📚 Command Reference
📄 Document Tools
Command | Purpose | Example Use |
---|---|---|
get_document_info | Document analysis | Get project overview |
get_selection | Current selection | What's selected now |
get_node_info | Element details | Inspect specific component |
get_nodes_info | Multiple elements info | Batch element inspection |
scan_text_nodes | Find all text | Text audit and updates |
get_styles | Document styles | Color/text style audit |
join_channel | Connect to Figma | Establish communication |
export_node_as_image | Asset export | Generate design assets |
🔧 Creation Tools
Command | Purpose | Example Use |
---|---|---|
create_rectangle | Basic shapes | Buttons, backgrounds |
create_frame | Layout containers | Page sections, cards |
create_text | Text elements | Headlines, labels |
create_ellipse | Circles/ovals | Profile pics, icons |
create_polygon | Multi-sided shapes | Custom geometric elements |
create_star | Star shapes | Decorative elements |
clone_node | Duplicate elements | Copy existing designs |
group_nodes | Organize elements | Component grouping |
ungroup_nodes | Separate groups | Break apart components |
insert_child | Nest elements | Hierarchical structure |
flatten_node | Vector operations | Boolean operations |
✏️ Modification Tools
Command | Purpose | Example Use |
---|---|---|
set_fill_color | Element colors | Brand color application |
set_stroke_color | Border colors | Outline styling |
move_node | Positioning | Layout adjustments |
resize_node | Size changes | Responsive scaling |
delete_node | Remove elements | Clean up designs |
set_corner_radius | Rounded corners | Modern UI styling |
set_auto_layout | Flexbox-like layout | Component spacing |
set_effects | Shadows/blurs | Visual polish |
set_effect_style_id | Apply effect styles | Consistent shadow styles |
📝 Text Tools
Command | Purpose | Example Use |
---|---|---|
set_text_content | Text updates | Copy changes |
set_multiple_text_contents | Batch text updates | Multi-element editing |
set_font_name | Typography | Brand font application |
set_font_size | Text sizing | Hierarchy creation |
set_font_weight | Text weight | Bold/light variations |
set_letter_spacing | Character spacing | Typography fine-tuning |
set_line_height | Vertical spacing | Text readability |
set_paragraph_spacing | Paragraph gaps | Content structure |
set_text_case | Case transformation | UPPER/lower/Title case |
set_text_decoration | Text styling | Underline/strikethrough |
get_styled_text_segments | Text analysis | Rich text inspection |
load_font_async | Font loading | Custom font access |
🎨 Component Tools
Command | Purpose | Example Use |
---|---|---|
get_local_components | Project components | Design system audit |
get_remote_components | Team libraries | Shared component access |
create_component_instance | Use components | Consistent UI elements |
🔧 Complete Installation Guide
Detailed Setup Process
- Clone and Build:run the appropriate command based on your operating system:
- macOs / Linux
- Windows
- Configure Claude Desktop:This script:
- Locates your Claude config file (macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
) - Creates a backup of existing configuration
- Adds "ClaudeTalkToFigma" to your MCP list
- Restart Claude Desktop after running this
- Locates your Claude config file (macOS:
- Install Figma Plugin:
- Open Figma → Menu > Plugins > Development
- Select "Import plugin from manifest"
- Navigate to
src/claude_mcp_plugin/manifest.json
- Plugin appears in your development plugins list
- Verify Installation:
- Claude Desktop: Check "ClaudeTalkToFigma" appears in MCPs selector
- Figma: Find "Claude MCP Plugin" in your plugins
- WebSocket:
bun socket
should start without errors
🧪 Testing & Quality Assurance
Automated Testing
Integration Testing
Manual Verification Checklist
- WebSocket server starts on port 3055
- Figma plugin connects and generates channel ID
- Claude recognizes "ClaudeTalkToFigma" MCP
- Basic commands execute (create rectangle, change color)
- Error handling works (invalid commands, timeouts)
🐛 Troubleshooting & Support
Connection Issues
- "Can't connect to WebSocket": Ensure
bun socket
is running - "Plugin not found": Verify plugin import in Figma Development settings
- "MCP not available": Run
bun run configure-claude
and restart Claude
Execution Problems
- "Command failed": Check Figma development console for errors
- "Font not found": Use
load_font_async
to verify font availability - "Permission denied": Ensure you have edit access to the Figma document
- "Timeout errors": Complex operations may need retry
Performance Issues
- Slow responses: Large documents may require more processing time
- Memory usage: Close unused Figma tabs, restart if necessary
- WebSocket disconnects: Server auto-reconnects, restart if persistent
Common Solutions
- Restart sequence: Stop server → Close Claude → Restart both
- Clean reinstall: Delete
node_modules
→bun install
→bun run build
- Check logs: Server terminal shows detailed error messages
- Update fonts: Some team fonts require manual loading in Figma
🏗️ Advanced Topics
Architecture Deep Dive
Design Principles:
- MCP Server: Business logic, validation, default values
- WebSocket Server: Message routing and protocol translation
- Figma Plugin: Pure command executor in Figma context
Benefits:
- Clear separation of concerns
- Easy testing and maintenance
- Scalable architecture for additional tools
Project Structure
Contributing Guidelines
- Fork and Branch:
git checkout -b feature/amazing-feature
- Code Standards: Follow existing TypeScript patterns
- Testing: Add tests for new functionality
- Documentation: Update relevant sections
- Pull Request: Clear description of changes
Recent Contributors
- Taylor Smits - Fixed opacity handling in color functions and added automated tests (PR #13, PR #14)
- easyhak - Fixed build script not working on Windows OS (PR #10)
📋 Version History
Current: 0.5.3
- Windows Compatibility: Added dedicated build command for Windows systems
- Cross-Platform Support: Improved developer experience across all operating systems
- Build Process Enhancement: Separated Unix/Linux and Windows build workflows
- Developer Experience: Resolved chmod dependency issues on Windows
See CHANGELOG.md for complete version history.
📄 License & Credits
License: MIT License - see LICENSE file
Authors:
Acknowledgments:
- Anthropic team for Claude and Model Context Protocol
- Figma community for excellent plugin API
- Bun team for fast JavaScript runtime
This server cannot be installed
Enables Claude Desktop and other AI tools to interact directly with Figma, allowing for powerful AI-assisted design capabilities through natural language commands.
Related MCP Servers
- -securityFlicense-qualityAllows interaction with Sketchfab's 3D model platform through Claude or Cursor, enabling users to search, view details, and download 3D models directly from the AI interface.Last updated -1314JavaScript
- -securityAlicense-qualityConnects Claude Desktop to Hugging Face Spaces with minimal setup, enabling capabilities like image generation, vision tasks, text-to-speech, and chat with AI models.Last updated -922MIT License
- -securityFlicense-qualityEnables Cursor AI to interact with Figma designs, allowing users to read design information and programmatically modify elements through natural language commands.Last updated -TypeScript
- -securityAlicense-qualityConnects Cinema 4D to Claude, enabling AI-assisted 3D modeling and scene manipulation through natural language commands.Last updated -10PythonMIT License