How it works
Three pieces on your machine, connected locally.
The plugin
A development plugin runs inside Figma Desktop. It reads the open file with the Figma plugin API (layers, layout, paints, text, variables, components, images) and runs the scripts your agent sends for use_figma.
It connects to the server over a WebSocket on 127.0.0.1:3947. The server accepts it only with your pairing code, which is created once and kept in ~/.figma-local-mcp.
The server
Your MCP client starts figma-local-mcp and talks to it over stdio. The server turns plugin data into what the agent needs: reference code, assets, screenshots, metadata and variables.
If several clients start a server, the first one serves the port and the others send their requests through it, so one plugin window serves them all.
No Figma API
Every read goes through the plugin, so there's no personal access token, no REST API quota and no rate limit. When the plugin is closed, the server falls back to the newest saved snapshot that holds the node. See Offline snapshots.
Where things live
| Path | What |
|---|---|
~/.figma-local-mcp/plugin | The Figma plugin. Refreshed whenever the package updates. |
~/.figma-local-mcp/snapshots | Saved snapshots and cached plugin reads. |
~/.figma-local-mcp/assets | Screenshots and downloaded assets. |
.figma-local/code-connect.json | Code Connect mappings, in your project. |