Skip to content
MCP Shelf

Talk to Figma

View on GitHub

Read and edit Figma documents from an agent, through a Figma plugin.

  • Started in our test
  • ★ 7.1K GitHub stars
  • 692 downloads a week
  • Last commit 26 Jul 2026

At a glance

Where Framelink only reads designs, Talk to Figma can change them: create frames and text, set fills and auto-layout, rename layers and read selections. It works through a Figma plugin that connects to a small WebSocket relay on your machine.

That means three parts to run, so expect a few minutes of setup the first time.

Made by
Sonny Lazuardi and contributors
Latest version
0.3.5 (7 Mar 2026)
GitHub stars
7.1K
Downloads
692 a week
Last commit
26 Jul 2026
Tools
40
Runs on
Your computer

Our check: We ran this exact config on 26 Oct 2026: it started and answered with 40 tools.

What's in the pod: its tools

We found 40 tools when we started it on 26 Oct 2026. 10 only read. The rest can change things, so keep your app's "ask before each tool call" setting on for them.

Changes things30 tools · Can create, edit, send or delete.

ToolWhat it is for
clone_nodeDuplicates a layer to a new position.
create_component_instancePlaces an instance of a local or library component.
create_connectionsDraws connector lines between layers in the default connector style.
create_frameAdds a frame, with auto layout, padding and colours if you want them.
create_rectangleAdds a rectangle.
create_textAdds a text layer with font size, weight and colour.
delete_multiple_nodesRemoves several layers at once.
delete_nodeRemoves one layer.
export_node_as_imageExports a layer as PNG, JPG, SVG or PDF.
join_channelConnects to the plugin's channel. The assistant must do this first.
move_nodeMoves a layer to new coordinates.
resize_nodeChanges a layer's width and height.
scan_nodes_by_typesFinds child layers of given types inside a layer.
scan_text_nodesFinds every text layer inside a layer.
set_annotationAdds or edits one annotation, with Markdown.
set_axis_alignSets alignment on both axes of an auto layout frame.
set_corner_radiusRounds a layer's corners, all or some.
set_default_connectorChooses which connector style new connections use.
set_fill_colorChanges a layer's fill colour.
set_focusSelects a layer and scrolls the canvas to it.
set_instance_overridesPastes copied overrides onto other instances.
set_item_spacingSets the gap between items in an auto layout frame.
set_layout_modeTurns auto layout on or off and sets direction and wrapping.
set_layout_sizingSets hug, fill or fixed sizing in auto layout.
set_multiple_annotationsAdds many annotations in one call.
set_multiple_text_contentsRewrites many text layers in one call, for bulk copy changes.
set_paddingSets padding on an auto layout frame.
set_selectionsSelects several layers and scrolls to show them.
set_stroke_colorChanges a layer's border colour and weight.
set_text_contentRewrites the text of one text layer.

Only reads10 tools · Looks things up and changes nothing.

ToolWhat it is for
get_annotationsReads the annotations in the file or on one layer.
get_document_infoDescribes the open document and its pages.
get_instance_overridesCopies the overrides from one component instance.
get_local_componentsLists the components defined in this file.
get_node_infoReads everything about one layer.
get_nodes_infoReads several layers at once.
get_reactionsReads prototype interactions so they can be turned into connector lines.
get_selectionDescribes what you have selected right now.
get_stylesLists the colour, text and effect styles in the file.
read_my_designReads your current selection in full detail.

Grouped and described by us. The README on GitHub lists the inputs each tool takes.

Set it up

  1. Start the relay: bunx cursor-talk-to-figma-socket
  2. Install the Cursor Talk to Figma plugin in Figma and run it; note the channel it shows.
  3. Add the config below to your client, then ask the assistant to join that channel.

Pick your app for the exact snippet and where it goes.

Where it goes: claude_desktop_config.json (Settings → Developer → Edit Config)

Claude Desktop
{
  "mcpServers": {
    "talk-to-figma": {
      "command": "npx",
      "args": [
        "-y",
        "cursor-talk-to-figma-mcp@latest"
      ]
    }
  }
}

New to this? See the setup guides for Claude Code, Cursor, Claude Desktop and ChatGPT.

Settings

Names are exactly as the project spells them. Required ones are marked.

SettingWhat it does
bunx cursor-talk-to-figma-mcpConfig · requiredThe MCP server itself, started by your app. Needs Bun installed."command": "bunx", "args": ["cursor-talk-to-figma-mcp@latest"]
bun socketConfig · requiredThe local WebSocket relay between the server and the Figma plugin. Leave it running in a terminal.bun socket
Figma pluginConfig · requiredThe Cursor MCP Plugin inside Figma. Open it in your file and note the channel name it shows.Plugins → Development → Cursor MCP Plugin
hostname 0.0.0.0ConfigOnly for Windows with WSL: uncomment this line in src/socket.ts so Figma on Windows can reach the relay.hostname: "0.0.0.0"

What it can touch

It can read

  • The Figma file open in the plugin: layers, styles, components and annotations

It can change

  • Creates, edits, moves and deletes layers in that file
  • Rewrites text in bulk

Safer setup: Work on a duplicate of the file, or rely on Figma's version history to roll back. Edits happen only while the plugin is open and connected.

Before you start

  • The Figma desktop app
  • Bun (for the relay)
  • Node.js 18 or newer

If it does not work

The assistant says it is not connected to Figma
Start bun socket, open the plugin in Figma, then ask the assistant to call join_channel with the channel name the plugin shows.
bunx: command not found
Install Bun first (curl -fsSL https://bun.sh/install | bash) and restart your app so it picks up the new PATH.
Figma on Windows cannot reach the relay running in WSL
Uncomment hostname 0.0.0.0 in src/socket.ts and restart bun socket.

Peas in a pod: similar servers

How Talk to Figma lines up against other design, 3d and games servers on the shelf.

ServerToolsRuns onLicenceStars
Talk to Figma40Your computer–7.1K
Godot MCP14Your computerMIT6.4K
KiCad MCP244Your computer–3K
MiniMax8Your computerMIT1.6K
Blender MCP9Your computerMIT32.4K

Questions

Does Talk to Figma need a Figma API token?

No. It works through a plugin inside the Figma app, so it acts with your own session on the file you have open.

Can it build a whole screen from a prompt?

It can create frames, text and shapes and set auto layout, so simple screens work. Results are best when it reuses your existing components.

Does it only work with Cursor?

The name says Cursor, but it is a standard MCP server, so Claude Desktop, Claude Code and VS Code can use it too.

Full docs on GitHubsonnylazuardi/cursor-talk-to-figma-mcp

Something wrong on this page? Tell us.

More in Design, 3D and games