A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
MCP server that enables Claude to read and write to Figma files
An MCP (Model Context Protocol) server that enables Claude to read AND write to Figma files. Works with any app - just define your schema.
Pro Feature: This MCP integration requires a Flaude Pro subscription. Free users can use the Flaude plugin directly in Figma, but Claude Code integration is Pro-only.
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Claude Code │────▶│ MCP Server │◀───▶│ Figma Plugin │
│ (or Agent) │ │ (WebSocket) │ │ (FigmaClaude) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
│ │ │
"create the queues & executes
missing screens" routes via Plugin API
cd figma-editor-mcp
npm install
npm run build
Add to your Claude Code MCP settings (~/.claude/mcp_servers.json or via claude mcp add):
{
"figma-editor": {
"command": "node",
"args": ["/path/to/figma-editor-mcp/dist/index.js"],
"env": {}
}
}
Or use the CLI:
claude mcp add figma-editor node /path/to/figma-editor-mcp/dist/index.js
Note: The Connect button only appears for Pro users. Free users will see an upgrade prompt.
Now you can tell Claude:
"Create a frame called 'Home - Crisis Support' with a hero message
that says 'I notice things feel heavy right now.'"
And it will actually create it in Figma!
| Tool | Description |
|---|---|
get_file_structure | Get all pages and top-level frames |
get_selection | Get currently selected nodes |
get_node_details | Get details of a specific node by ID |
search_nodes | Search for nodes by name pattern |
| Tool | Description |
|---|---|
create_frame | Create a new frame |
create_text | Create a text node |
create_rectangle | Create a rectangle shape |
duplicate_node | Duplicate an existing node |
modify_node | Change properties of a node |
update_text | Update text content/style |
delete_node | Delete a node |
group_nodes | Group multiple nodes |
| Tool | Description |
|---|---|
get_schema | Get your app schema |
create_screen_from_state | Create screen based on schema state |
validate_against_schema | Check if design matches schema |
create_flow | Create all screens for a flow |
The MCP server loads app-schema.json from its working directory. This tells Claude about your app's structure.
{
"app_name": "MyApp",
"domain": "fitness",
"states": {
"home_screen": [
{
"name": "default",
"content": {
"hero": "Welcome back!",
"subtext": "Ready for today's workout?"
}
},
{
"name": "streak_celebration",
"condition": "streak >= 7",
"content": {
"hero": "7 days strong!",
"subtext": "You're building a habit."
}
}
]
},
"flows": {
"onboarding": {
"steps": ["welcome", "goals", "schedule", "ready"]
}
},
"design_tokens": {
"colors": {
"primary": "#FF5722",
"background": "#FFFFFF"
}
}
}
See examples/unloop-schema.json for a comprehensive example.
Claude, check my home screen against the schema and create
any missing state variants.
Validate my onboarding flow against the schema.
Are all steps present?
Find all text nodes containing "Sign Up" and change them to "Get Started"
Create screens for the "checkout" flow defined in my schema,
starting at x=2000.
npm run dev
npm run build
With the MCP server running:
Use the figma-editor tool to get the file structureapp-schema.json or schema.jsonMIT
A Jetbrains IDE IntelliJ plugin aimed to provide coding agents the ability to leverage intelliJ's indexing of the codeba
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots