A community-driven registry for the Claude Code ecosystem. Not affiliated with Anthropic.
Are you the author? Sign in to claim
Lightweight Claude Code ↔ Figma two-way communication MCP
Figma integration for Claude Code with bidirectional design control and real-time sync.
Based on claude-talk-to-figma-mcp-daisyui by morteng and claude-talk-to-figma-mcp by arinspunk.
git clone https://github.com/agenisea/cc-fig-mcp.git
cd cc-fig-mcp
pnpm install
pnpm run build
cd /path/to/cc-fig-mcp
# Build and start the relay server
docker-compose up -d --build
# Verify it's running
curl http://localhost:3055/status
Option A: CLI Flag
claude --mcp-config '{"figma":{"command":"node","args":["/path/to/cc-fig-mcp/dist/talk_to_figma_mcp/server.js"]}}'
Option B: Edit ~/.claude.json
{
"mcpServers": {
"figma": {
"command": "node",
"args": [
"/path/to/cc-fig-mcp/dist/talk_to_figma_mcp/server.js"
]
}
}
}
/path/to/cc-fig-mcp/src/claude_mcp_plugin/manifest.json3055my-app-design, dashboard-ui)# Join the same channel as your Figma plugin (your Figma project name)
figma - join_channel("your-figma-project-name")
# Now you can use Figma tools
figma - create_rectangle(x: 0, y: 0, width: 100, height: 100)
figma - create_text(x: 50, y: 50, text: "Hello")
| Tool | Description |
|---|---|
join_channel | Connect to a Figma project channel |
get_document_info | Get current document details |
get_selection | Get selected nodes |
get_node_info | Get details about specific nodes |
create_frame | Create a frame/artboard |
create_rectangle | Create a rectangle |
create_text | Create text element |
create_ellipse | Create an ellipse |
create_polygon | Create a polygon |
create_star | Create a star shape |
create_line | Create a line |
create_component_instance | Create instance of a component |
set_fill_color | Change fill color |
set_stroke_color | Change stroke color |
set_corner_radius | Set corner radius |
set_text_content | Update text content |
set_font_size | Change font size |
set_font_weight | Change font weight |
set_auto_layout | Configure auto layout |
move_node | Move a node |
resize_node | Resize a node |
clone_node | Duplicate a node |
delete_node | Delete a node |
group_nodes | Group nodes together |
ungroup_nodes | Ungroup nodes |
export_node_as_image | Export node as PNG/SVG |
get_styles | Get document styles |
get_local_components | Get local components |
| Requirement | Details |
|---|---|
| Docker running | WebSocket relay must be up on port 3055 |
| Plugin window open | Keep the Figma plugin window visible |
| Connection green | Plugin must show connected status |
| Same channel | Use your Figma project name as the channel in both Figma plugin and Claude Code |
| Reconnect if needed | If you see timeouts, reconnect the plugin and re-join channel in Claude Code |
Figma plugin disconnected. Reconnect in Figma.
Plugin not connected or wrong channel. Check plugin status and channel name matches.
Run join_channel("your-figma-project-name") in Claude Code first.
Change the port in docker-compose.yml:
ports:
- "3056:3055" # Use 3056 externally
Then update the Figma plugin port to match.
The Figma plugin may disconnect when the plugin window loses focus. Keep the plugin panel visible while working.
Claude Code
↓ (stdio - MCP protocol)
MCP Server (server.js)
↓ (WebSocket ws://localhost:3055)
Docker Container (socket relay)
↓ (WebSocket)
Figma Plugin (inside Figma Desktop)
Experimental Software: This project is in active development and should be considered experimental. It is not production-ready and may contain bugs or breaking changes.
No Warranty: This software is provided "as is", without warranty of any kind, express or implied. Use at your own risk.
Third-Party Notice: This project is not affiliated with, endorsed by, or sponsored by Figma, Inc. or Anthropic, PBC. All trademarks belong to their respective owners.
MIT
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
Query Datadog incidents, monitors, logs, dashboards, and metrics
Web scraping and search MCP server with JavaScript rendering and batch processing