The first question for any figma mcp is whether your agent only reads a frame or also edits the Figma file. Framelink, the Framelink Figma MCP server from the Figma Context MCP repository (GLips/Figma-Context-MCP), only reads, with two tools, a personal access token and one npx line. Talk to Figma, the Talk to Figma MCP from Grab, and Figma Console MCP edit, through code that sits inside the Figma app itself. Figma’s own server can do both, runs at mcp.figma.com, and how much you can use it depends on your Figma seat. If you want a figma mcp alternative that runs on your own machine, the other three do.
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| Figma-Context-MCPGLips/Figma-Context-MCP | MCP server | 16k | 10d ago | MIT | A | — | Claude Code, Codex, Cursor, Gemini CLI, OpenCode |
| TalkToFigmagrab/cursor-talk-to-figma-mcp | MCP server | 7.1k | 3mo ago | MIT | A | — | Claude Code, Codex, Cursor, Gemini CLI, OpenCode |
Install
npx agentmods add mcp/glips/figma-context-mcp/figma-context-mcpnpx agentmods add mcp/grab/cursor-talk-to-figma-mcp/talktofigmaEach name opens the mod's page: the scan, the token cost and every other way to install it.
Read-only design data versus changes on the canvas
Framelink reads. It calls the Figma REST API, then simplifies the answer before the model sees it. Its main tool, get_figma_data, is marked read-only in the code. The second tool, download_figma_images, saves PNG, SVG or GIF files to your disk. So it fits when you implement designs in code and never want the agent to touch the Figma file.
Editing is where Talk to Figma comes in. It creates frames, rectangles and text, sets auto layout, replaces text in batches, copies instance overrides from one component instance to others and deletes nodes. It can also turn prototype flows into FigJam connectors.
Figma Console MCP writes too, and goes one step further with figma_execute, which runs arbitrary JavaScript in Figma’s plugin context (the plugin passes that code to eval). Most of its other tools are about the design system. It exports tokens to DTCG, CSS, Tailwind and other formats, imports them back into Figma variables, lints the canvas against WCAG and can tell you when a property was introduced.
Writing is also possible with Figma’s own server, but its README says that only the remote server does it. The same paragraph says writing to the canvas is free during the beta and “will eventually be a usage-based paid feature”.
Running each figma mcp server: one process, a three-part relay, or a desktop bridge
A single Node process is all of Framelink (Node 20.20 or newer). You give it FIGMA_API_KEY or FIGMA_OAUTH_TOKEN and start it with --stdio. Without --stdio it serves Streamable HTTP on 127.0.0.1:3333 at /mcp and /sse, and in that mode each request can bring its own X-Figma-Token. There is also a fetch command that prints the simplified data to your terminal, which helps when you want to see what the model will get.
Talk to Figma has three parts, the MCP server, a WebSocket relay and a Figma plugin. You install Bun, run bun setup (it writes both .cursor/mcp.json and .mcp.json), start the relay with bun socket and open the plugin from the Figma Community. Then the agent has to call join_channel before any command works. No Figma token is needed, because everything goes through the plugin. That relay has to keep running in a terminal while you work. At this commit the package is version 0.3.5, pins MCP SDK 1.13.1, and its AGENTS.md says there is no test suite.
For Figma Console MCP you need Node 18+, the Figma Desktop app (the README says the web app is not enough) and a personal access token with the scopes its README lists. You import the Desktop Bridge plugin from a manifest the server writes to ~/.figma-console-mcp/plugin/, and the plugin finds the server by scanning ports 9223 to 9232. Figma caches plugin files, so after some updates you have to re-import that manifest. Codex users also need longer timeouts, per the README. The package is at version 1.46.0.
It has two hosted modes as well. Remote SSE at figma-console-mcp.southleft.com is read-only. Cloud Mode pairs with your plugin through a 6-character code that expires in 5 minutes, and from then on every write passes through Southleft’s cloud relay.
Figma’s own server is just a URL, https://mcp.figma.com/mcp. In Claude Code you install it with claude plugin install figma@claude-plugins-official, which also brings Figma’s skills, or you add the URL by hand. The figma/mcp-server-guide repository holds configuration and skills, but not the server code.
Compact trees, generated React and long tool lists
By default Framelink answers in a compact tree, which its source calls “token-efficient”. Structural keys go on one line per node, and repeated styles are stored once in a globalVars block. YAML and JSON are there if you want them. A depth parameter can cut the traversal, though the tool description tells the model not to use it unless you ask.
On Figma’s side, the README says get_design_context gives a “React + Tailwind” representation of your selection, which your agent then translates into your own stack. It also warns that large selections can slow the tools, cause errors or come back incomplete.
Then there is the tool list itself. Framelink registers 2 tools. The code of Talk to Figma registers 44 tools and 6 prompts (its AGENTS.md says “50+”, the code says 44). Figma Console MCP lists 130 tools locally and 105 in Cloud Mode. We don’t measure token cost for MCP servers yet, so the table can’t settle this one for you.
A relay channel anyone can join, eval in the plugin, and telemetry
The relay in Talk to Figma has no login. A client joins a channel by giving its name, and the relay passes each message to everyone else in that channel. The plugin makes up an 8-character channel name, and the relay prints every full message to its console. The MCP server can also point at a remote relay over wss:// with --server. Its plugin also sends anonymous usage events (plugin opens, command names, success or error) to Google Analytics, as its manifest says.
In Figma Console MCP the risk is figma_execute, which has full access to the Figma API. A sibling tool runs one script across every connected file when you pass allFiles: true. The optional local HTTP endpoint binds 127.0.0.1 and can require a bearer token. We found no telemetry or analytics code in its src/ or in its plugin.
Telemetry is on by default in Framelink, and it goes to PostHog. --no-telemetry, FRAMELINK_TELEMETRY=off or DO_NOT_TRACK switch it off, and the code strips your Figma tokens out of error messages before sending.
Seats and rate limits on Figma’s server
You can only judge Figma’s server from what its guide repository and other people’s READMEs say. Starter plan users and View or Collab seats get up to 6 tool calls a month, which rules it out for regular work on those seats. Dev or Full seats on paid plans get per-minute limits matching Tier 1 of the REST API. Some tools, such as the ones that write, are exempt.
According to Figma Console MCP’s README, Figma’s server focuses on design-to-code context, Code Connect and library search, and the two servers can run in the same client. It also mentions that Figma’s local Dev Mode MCP server uses port 3845. The guide itself asks you to link your components through Code Connect, because without it “the model is guessing”.
Questions
Which Figma MCP server can edit my designs?
Talk to Figma and Figma Console MCP both write to the canvas through a plugin running inside Figma. Framelink only reads. Figma's own server writes too, but only the remote one, and its README says writing will become a usage-based paid feature after the beta.
Do I need a Figma API token for a Figma MCP server?
Framelink needs a personal access token or an OAuth token. Talk to Figma needs none, because it works through its Figma plugin. Figma Console MCP takes a personal access token for its REST tools locally, or OAuth in its hosted modes.
Is Framelink the same as Figma's official MCP server?
No. Framelink (the figma-developer-mcp package) is an open-source server by GLips that calls the Figma REST API with your token. Figma's own server is a hosted endpoint at mcp.figma.com/mcp; the figma/mcp-server-guide repository holds its setup docs and skills, not the server code.
Sources
GLips/Figma-Context-MCP at c083d65
README.md · package.json · ROADMAP.md · src/bin.ts · src/config.ts · src/server.ts · src/mcp/index.ts · src/mcp/tools/get-figma-data-tool.ts · src/mcp/tools/download-figma-images-tool.ts · src/utils/serialize-tree.ts · src/telemetry/client.ts · src/commands/fetch.ts
grab/cursor-talk-to-figma-mcp at ddd90f3
README.md · AGENTS.md · package.json · scripts/setup.sh · src/socket.ts · src/talk_to_figma_mcp/server.ts · src/cursor_mcp_plugin/manifest.json · src/cursor_mcp_plugin/ui.html
southleft/figma-console-mcp at 5ef4df3
README.md · package.json · src/local.ts · src/core/write-tools.ts · figma-desktop-bridge/code.js
figma/mcp-server-guide at 19be8d5
README.md · server.json · .mcp.json
More comparisons
Playwright MCP vs Chrome DevTools MCP
Playwright MCP also runs Firefox and WebKit. Chrome DevTools MCP traces Chrome and reports stats.
Blender MCP: the official server, mcp-for-blender and two others
Four Blender MCP add-ons share port 9876. The official one needs Blender 5.1.
GitHub MCP server, the gh CLI, or GitLab MCP
With a shell, gh plus GitHub's agent skill covers most work. The MCP server ships 45 tools on by default.
Context7 MCP alternatives, and where each one gets its docs
Context7 and Ref ask a hosted index; docs-mcp-server keeps one on your disk.
Unity MCP servers: Coplay, IvanMurzak and mcp-unity, read from the code
IvanMurzak's plugin connects to its cloud by default; Coplay sends telemetry.
UI UX Pro Max skill, Impeccable or Taste Skill
A local style database, a 62-rule detector on each edit, and a website kit with its own headless checker.