Framelink MCP for Figma: giving Cursor the layout, not the screenshot
MCP server to provide Figma layout information to AI coding agents like Cursor
At a glance
- What is it?
- Framelink MCP for Figma is an MIT-licensed MCP server that fetches a Figma file, frame or group and translates the Figma API response into a compact layout tree for coding agents. It is a small, single-purpose tool, and its main design bet is that less context makes the model more accurate.
- Who is it for?
- Adopt it if your team already designs in Figma and you want Cursor or another MCP client to implement frames from a pasted link, and if you accept that a personal Figma access token sits in your editor config. Skip it if you are not on an MCP-capable client, or if you need write access back into Figma, which this server does not do.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 12 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The problem: pasting screenshots into a coding agent
The README states the premise plainly: when Cursor has access to Figma design data, it is "way" better at one-shotting designs accurately than alternative approaches like pasting screenshots. A screenshot carries pixels and nothing else. The model has to infer spacing, hierarchy, which rectangle is a container and which is a button, and what the actual font stack is. A Figma node carries that structure explicitly, but the raw Figma API response is far too large to hand to a model unedited.
The project sits in that gap. It is a Model Context Protocol server, so it plugs into any client that speaks MCP, and it is explicitly designed for Cursor. The audience is a developer who has a Figma link and wants generated code that matches it, without manually transcribing measurements. It is not a design tool, not a Figma plugin, and not a code generator on its own. It is a context supplier.
How the server turns a Figma response into model-sized context
The flow described in the README has four steps. You open your IDE's chat, paste a link to a Figma file, frame or group, ask the agent to implement the design, and the agent fetches the relevant metadata from Figma through the server. The server then returns simplified context rather than the raw API payload.
That simplification step is the whole product. The README says the server "simplifies and translates the response so only the most relevant layout and styling information is provided to the model," and gives the reasoning: reducing the amount of context provided to the model helps make the AI more accurate and the responses more relevant. The repository backs this up with a benchmark script, benchmark:simplify, run through tsx, which suggests the maintainers treat output size as a measurable property rather than a guess.
Output format is configurable. The .env.example documents OUTPUT_FORMAT with three values: tree, yaml or json. Tree is the default and the file describes it as the most compact, roughly half the size of yaml, and best for LLM consumers. Json is offered for consumers that parse it more reliably, yaml as a more human-readable middle ground. That is a real trade-off you get to make per client, and it is the single most consequential knob in the project.
Installing figma-developer-mcp and connecting it to Cursor
The package is published to npm as figma-developer-mcp, so the standard path is npx with no global install. You need a Figma access token first; the README points to Figma's own instructions for managing personal access tokens, and the .env.example repeats the account-settings link.
On macOS and Linux, the README gives this configuration block for the MCP client's config file. The -y flag lets npx install without prompting, and --stdio selects the stdio transport. Replace YOUR-KEY with the token.
{
"mcpServers": {
"Framelink MCP for Figma": {
"command": "npx",
"args": ["-y", "figma-developer-mcp", "--figma-api-key=YOUR-KEY", "--stdio"]
}
}
}On Windows the README routes the same command through cmd, because npx is not directly executable in that shell. Note the /c and the split arguments.
{
"mcpServers": {
"Framelink MCP for Figma": {
"command": "cmd",
"args": ["/c", "npx", "-y", "figma-developer-mcp", "--figma-api-key=YOUR-KEY", "--stdio"]
}
}
}The README also notes that you can set FIGMA_API_KEY and PORT in the env field instead of passing the key as a flag. PORT defaults to 3333 according to .env.example, which matters only when you run the server outside stdio mode. After saving the config, restart the client and paste a Figma frame link into the chat with an instruction to implement it. What you should see is the agent reading node data and emitting component code, not asking you to describe the design.
If you are working on the server itself rather than consuming it, the repository is a pnpm project. Node 20.20.0 or newer is required by the engines field, and the build and test scripts are tsup and vitest respectively.
pnpm install
pnpm build
pnpm testRunning pnpm inspect launches the MCP inspector, which is the fastest way to see what the server actually returns for a given node before wiring it into an editor.
Where the simplification loses information
The design bet is that less context is better context. That is also the failure mode. Anything the translation step decides is not "relevant layout and styling" is gone, and the model cannot ask for it back. The README does not document what the translation drops, so if a frame produces code that is subtly wrong in a way you cannot explain from the design, the simplification layer is the first place to look.
The README also does not document rollback, version pinning guidance, or what happens when a Figma node is too large for the chosen output format. Tree is described as roughly half the size of yaml, which is a meaningful reduction but not a guarantee that a dense page fits any given model's window. There is no documented pagination or node-subsetting option in the README, so the practical mitigation is to point the agent at a smaller frame or group rather than a whole page.
Finally, the server reads. It does not write back to Figma, and nothing in the README suggests it does. If your workflow needs the agent to create or modify Figma nodes, this is the wrong tool.
Framelink MCP for Figma compared with the official Figma MCP server
The relevant alternative is Figma's own MCP server, which is what the related searches for "figma context mcp and figma mcp" are circling. The difference is architectural rather than cosmetic. Figma's server is maintained by Figma and sits inside its own product surface; the README here describes a deliberately different posture, stating that this server is "specifically designed for use with Cursor" and that it intervenes between the Figma API and the model to shrink the payload.
That intervention is the selling point and the risk. A first-party server will track Figma API changes as a matter of course, and its output shape is not something a third party controls. Framelink's value is the compression and the Cursor-oriented defaults, plus an output format switch the official server does not offer in the same form. If you want the smallest possible context and you are willing to depend on a community maintainer, this is the one to try. If you want the API surface to be Figma's problem, use Figma's.
Maintenance, licence and what upgrading costs you
The repository is not archived, and the last push was on 2026-09-10, which is recent. The most recent releases are v0.13.2, v0.13.1 and v0.13.0, all dated 2026-06-18, so the release cadence and the commit cadence are not the same thing: there has been commit activity since the last tagged version. The repository uses release-please, visible in release-please-config.json and .release-please-manifest.json, so versioning is automated from commit messages.
The licence is MIT, which permits commercial use, modification and redistribution provided the copyright notice and permission notice are retained. That is a permissive position, but it says nothing about the Figma side of the arrangement. The server requires a Figma access token, and your use of the Figma API is governed by Figma's terms, not by this project's MIT licence. Nothing here is legal advice; if the token is issued to an individual account and used in a team pipeline, that is worth checking against your own agreements.
Upgrade cost is low by construction. Because the documented install path is npx with no version pin, you are always pulling the latest published package unless you pin it yourself. That means an upgrade can arrive without a deliberate action on your part, and the output format or the simplification logic is the part most likely to shift under you. Pinning the version in the args array is the obvious control, and the README does not discuss it.
Editorial conclusion
Adopt it if your team already designs in Figma and you want Cursor or another MCP client to implement frames from a pasted link, and if you accept that a personal Figma access token sits in your editor config. Skip it if you are not on an MCP-capable client, or if you need write access back into Figma, which this server does not do. Before rolling it out, verify two things yourself: that the OUTPUT_FORMAT you choose survives your client's context window on a real, large frame, and that your client starts it correctly on your platform, since the Windows and macOS/Linux configuration blocks differ.
Frequently asked questions
Is there an MCP plugin for Figma?
Framelink MCP for Figma is an MCP server rather than a Figma plugin. It runs as a separate process that your coding client starts, typically through npx, and it reads Figma data through the Figma API using an access token.
Do I need Figma dev mode for MCP?
The README does not mention Dev Mode. It only requires a Figma access token, created from your Figma account settings, and a link to a file, frame or group.
How can I connect Figma MCP to OpenCode?
The README documents configuration for MCP clients generally and gives explicit JSON blocks for macOS/Linux and Windows, but it does not name OpenCode. If your client reads the same mcpServers configuration shape, the documented block should apply; otherwise the README is silent.
How to enable MCP server in Figma Make?
The README does not cover Figma Make. It describes the reverse direction: an external coding agent, such as Cursor, connecting to Figma through this server to read design data.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/glips-figma-context-mcp)