F
Figma Local MCP Server
by @suulola
A custom MCP server for Figma that runs entirely locally.
Created 1/3/2026
Updated 1 day ago
README
Repository documentation and setup instructions
Figma Local MCP Server
A custom MCP server for Figma that runs entirely locally.
Architecture
Figma Desktop → Figma Plugin → WebSocket Bridge → MCP Server → Claude/Codex
- Figma Plugin - Runs in Figma Desktop with full access to the Plugin API
- Bridge Server - WebSocket server that receives data from the plugin
- MCP Server - Exposes Figma tools to Claude via MCP protocol
Setup
1. Install Dependencies
yarn install
yarn build-plugin
2. Install the Figma Plugin
- Open Figma Desktop
- Go to Plugins → Development → Import plugin from manifest
- Select
/figma-plugin/manifest.json - The plugin will appear in your Plugins menu
3. Start the Bridge Server
In a terminal, run:
yarn bridge
This starts:
- WebSocket server on
ws://localhost:3000(for Figma plugin) - HTTP API on
http://localhost:3001(for MCP server)
4. Add to Claude
claude mcp add figma-local node /Users/user/Desktop/my-mcp/mcp.js
codex mcp add figma-local node /Users/user/Desktop/my-mcp/mcp.js
Validate using
claude mcp list
codex mcp list
Remove using
claude mcp remove figma-local
codex mcp remove figma-local
Replace the path with your actual project path.
5. Run the Plugin
- Open any Figma file
- Go to Plugins → Development → Figma MCP Bridge
- The plugin UI should show "Connected to bridge"
Usage
Once everything is running, you can ask Claude to interact with your Figma files:
"What's in my current Figma page?"
"Find all buttons in this design"
"Get the properties of the selected node"
"Export this frame as PNG"
Available Tools
get-figma-document- Get current document structureget-current-page- Get detailed info about active pageget-selection- Get currently selected nodesget-all-pages- List all pagesfind-nodes- Search for nodes by nameget-node-properties- Get detailed properties of a nodeexport-node- Export node as PNG/SVG/JPGcheck-bridge-status- Check if everything is connected
Benefits vs API-based Approach
✅ No API key needed ✅ No rate limits ✅ Works with private/local files ✅ Real-time access to your current selection ✅ Full Plugin API capabilities ✅ No network latency (all local)
Troubleshooting
Plugin shows "Disconnected":
- Make sure the bridge server is running (
yarn bridge) - Check that nothing else is using port 3000/3001
Claude can't access Figma:
- Verify the bridge server is running
- Run
check-bridge-statustool to see connection state - Make sure the plugin is open in Figma
Build errors:
- Run
yarn installto ensure all dependencies are installed - For plugin TypeScript errors, run
yarn build-plugin
Development
Project Structure
my-mcp/
├── figma-plugin/
│ ├── manifest.json # Plugin manifest
│ ├── code.ts # Plugin main code
│ ├── ui.html # Plugin UI
│ └── tsconfig.json # TypeScript config
├── bridge-server.js # WebSocket bridge
├── mcp.js # MCP server with Figma tools
└── package.json
Adding New Tools
- Add handler in
figma-plugin/code.ts(action switch statement) - Expose via MCP in
mcp.jsusingserver.registerTool() - Rebuild plugin:
yarn build-plugin
License
ISC
Quick Setup
Installation guide for this server
Install Package (if required)
npx @modelcontextprotocol/server-figma-local-mcp-server
Cursor configuration (mcp.json)
{
"mcpServers": {
"suulola-figma-local-mcp-server": {
"command": "npx",
"args": [
"suulola-figma-local-mcp-server"
]
}
}
}