figmcp

How it works

Three pieces on your machine, connected locally.

Figma Desktop
development plugin
WebSocket · 127.0.0.1:3947
figma-local-mcp
node server
MCP · stdio
Coding agent
Claude Code, Cursor, …

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

PathWhat
~/.figma-local-mcp/pluginThe Figma plugin. Refreshed whenever the package updates.
~/.figma-local-mcp/snapshotsSaved snapshots and cached plugin reads.
~/.figma-local-mcp/assetsScreenshots and downloaded assets.
.figma-local/code-connect.jsonCode Connect mappings, in your project.