Community Dev tools

Figma

Read Figma files + components — extract design tokens, generate code from frames.

15,256 stars 1,202 forks Last commit 5d ago Language TypeScript License MIT
Sign in to like, install, or save to a bundle → View on GitHub →

Install

npm install -g figma-developer-mcp

Maintainer? Add the badge

Listed on Prismix ← shows on your README, links back here
[![Listed on Prismix](https://prismix.dev/api/badge/mcp/figma.svg)](https://prismix.dev/mcp/figma)

About

Figma REST API bridge. File + page + frame inspection, component extraction with design-token output, image exports. Personal-access-token auth.

Recent releases (5)

All releases →
  • v0.13.2 Latest Jun 18, 2026
    ## What's New in v0.13.2
    
    ### Gradients with reduced opacity render at the right strength
    
    Previously, gradient fills ignored *layer* opacity, only looking at paint/stop-level opacity. Agents could generate gradient overlays like scrims much stronger than intended. Solid fills already honored opacity; now gradients do too.
    
    - [#399](https://github.com/GLips/Figma-Context-MCP/pull/399) · authored by @LovePlayCode
    
    ---
    
    <details>
    <summary><strong>Full technical changelog</strong></summary>
    
    ## [0.13.2](https://github.com/GLips/Figma-Context-MCP/compare/v0.13.1...v0.13.2) (2026-06-18)
    
    
    ### Bug Fixes
    
    * apply paint-level opacity to gradient fills ([#399](https://github.com/GLips/Figma-Context-MCP/issues/399)) ([7fc8829](https://github.com/GLips/Figma-Context-MCP/commit/7fc8829acef7b3d7ae3deede05d94f109053e976))
    
    </details>
    
    View on GitHub ↗
  • v0.13.1 Jun 18, 2026
    ## What's New in v0.13.1
    
    A quick follow-up to v0.13.0's payload diet.
    
    ### No more irrelevant, duplicate, or misleading titles
    
    Figma auto-names a text layer after its content, so a layer that reads "Add to cart" is *named* "Add to cart" too. The design data was carrying both. Worse, when someone edited the copy without renaming the layer, the stale old name often rode along, contradicting the real text and confusing LLM consumers.
    
    Additionally, auto-named labels (`Rectangle 12`, `Frame 8372211`, `Ellipse 6`) were included.
    
    All are gone now.
    
    Measured across the same three designs benchmarked for v0.13.0:
    
    | design | v0.12.0 | v0.13.0 | v0.13.1 | Δ vs v0.12.0 | Δ vs v0.13.0 |
    |---|--:|--:|--:|--:|--:|
    | small | 14.4 KB | 7.4 KB | 6.8 KB | **−52.8%** | **−7.4%** |
    | large | 176.0 KB | 88.2 KB | 81.6 KB | **−53.6%** | **−7.4%** |
    | massive | 707.0 KB | 253.9 KB | 216.4 KB | **−69.4%** | **−14.8%** |
    
    - [#397](https://github.com/GLips/Figma-Context-MCP/pull/397)
    
    ---
    
    <details>
    <summary><strong>Full technical changelog</strong></summary>
    
    ## [0.13.1](https://github.com/GLips/Figma-Context-MCP/compare/v0.13.0...v0.13.1) (2026-06-18)
    
    
    ### Bug Fixes
    
    * drop redundant and auto-generated node names from serialized output ([#397](https://github.com/GLips/Figma-Context-MCP/issues/397)) ([b53727a](https://github.com/GLips/Figma-Context-MCP/commit/b53727ad7f4f870ae424f8f6817e9c29cd68cc63))
    
    </details>
    
    View on GitHub ↗
  • v0.13.0 Jun 18, 2026
    ## What's New in v0.13.0
    
    v0.13.0 is focused on design output quality: new support for Figma grid layouts, a batch of rendering bug fixes, and — perhaps most importantly — a new default output format that cuts token usage roughly in half. Two of these changes came from the community: thanks to [@Jkuzz](https://github.com/Jkuzz) and [@cnYui](https://github.com/cnYui).
    
    ### Your payloads just got cut in half
    
    Every byte `get_figma_data` returns is context budget your agent has to spend. And beyond cost, it spends your model's attention — when there are too many details to attend to, details get lost and designs get implemented at lower quality. So we leaned hard on shrinking it. Tree is now the default output format, and a new dedup pass collapses repeated styles and copy-pasted subtrees while reducing indirection for one-off styles.
    
    Measured across four real Figma files, the output is now half the size it was on average:
    
    | design | v0.12.0 | v0.13.0 | change |
    |---|--:|--:|--:|
    | small | 14.4 KB | 7.4 KB | **−48.6%** |
    | medium | 43.5 KB | 22.1 KB | **−49.2%** |
    | large | 176.0 KB | 88.2 KB | **−49.9%** |
    | massive | 707.0 KB | 253.9 KB | **−64.1%** |
    
    - [#394](https://github.com/GLips/Figma-Context-MCP/pull/394) · [#389](https://github.com/GLips/Figma-Context-MCP/pull/389)
    
    ### Support for Figma grid layouts
    
    Grid auto-layouts used to collapse into a flat stack. Now, rows, columns, gaps, and per-cell placement are supported properly.
    
    - [#347](https://github.com/GLips/Figma-Context-MCP/pull/347)
    
    ### Root level nodes are sent with "contextual" width
    
    Top level nodes used to be returned with fixed dimensions. This often lead agents to implement them rigidly, with fixed widths and no consideration for their surroundings. Now designs should render responsive by default, with the designed width coming along for reference.
    
    - [#393](https://github.com/GLips/Figma-Context-MCP/pull/393)
    
    ### Fixes & polish
    
    - **Colors match what you see.** Nodes with multiple semi-transparent fills now render the correct color. [#390](https://github.com/GLips/Figma-Context-MCP/pull/390)
    - **Blur matches the design's strength.** Blurs were coming out twice as strong as Figma renders them. Now they match. [#392](https://github.com/GLips/Figma-Context-MCP/pull/392)
    - **Font-adjustments use more appropriate values.** Letter-spacing and line-height should now render in more relative units. Before, agents often encoded hyper-specific px values, e.g. `-1.12px`. [#391](https://github.com/GLips/Figma-Context-MCP/pull/391)
    - **Support for outlined and inset strokes.** Your agent can tell an outline ring from an inset border. Thanks [@Jkuzz](https://github.com/Jkuzz). [#386](https://github.com/GLips/Figma-Context-MCP/pull/386)
    - **OAuth over HTTP.** The HTTP endpoints now accept a per-request bearer token. Thanks [@cnYui](https://github.com/cnYui). [#384](https://github.com/GLips/Figma-Context-MCP/pull/384)
    - **SVGs report size.** `download_figma_images` used to report every SVG as `0x0px`. It now reports the actual dimensions. [#396](https://github.com/GLips/Figma-Context-MCP/pull/396)
    
    ---
    
    <details>
    <summary><strong>Full technical changelog</strong></summary>
    
    ## [0.13.0](https://github.com/GLips/Figma-Context-MCP/compare/v0.12.0...v0.13.0) (2026-06-18)
    
    
    ### Features
    
    * CSS Grid layout support ([#347](https://github.com/GLips/Figma-Context-MCP/issues/347)) ([5c1da79](https://github.com/GLips/Figma-Context-MCP/commit/5c1da79be91864a1e363566216ac37f7f208388f))
    * **extractors:** deduplicate repeated styles and subtrees to shrink output ([#389](https://github.com/GLips/Figma-Context-MCP/issues/389)) ([a43e465](https://github.com/GLips/Figma-Context-MCP/commit/a43e465186075dad09078ae5c860f662c3ebc5d1))
    * **fills:** flatten all-solid fill stacks into a single resolved color ([#390](https://github.com/GLips/Figma-Context-MCP/issues/390)) ([dcf11d2](https://github.com/GLips/Figma-Context-MCP/commit/dcf11d2a1edec
    View on GitHub ↗
  • v0.12.0 May 27, 2026
    ## [0.12.0](https://github.com/GLips/Figma-Context-MCP/compare/v0.11.0...v0.12.0) (2026-05-27)
    
    
    ### Features
    
    * **serialize:** add experimental tree output format for better token efficiency ([#370](https://github.com/GLips/Figma-Context-MCP/issues/370)) ([9ecbc5a](https://github.com/GLips/Figma-Context-MCP/commit/9ecbc5aec8e71dda2ee3b1804623df82db5663d7))
    * support per-request Figma API keys ([#365](https://github.com/GLips/Figma-Context-MCP/issues/365)) ([fe3b504](https://github.com/GLips/Figma-Context-MCP/commit/fe3b504d75b671896a557188a9ad801b7bac40ee))
    
    
    ### Bug Fixes
    
    * guide LLMs to fix bad node-id errors (proto/branch/figjam URLs) ([#371](https://github.com/GLips/Figma-Context-MCP/issues/371)) ([c6697bc](https://github.com/GLips/Figma-Context-MCP/commit/c6697bc492f0d25c4fff469c471820dede1c7e5c))
    * **images:** omit null imageRef so foreign-pasted images render via nodeId ([#368](https://github.com/GLips/Figma-Context-MCP/issues/368)) ([166f87d](https://github.com/GLips/Figma-Context-MCP/commit/166f87dcc610634a0e067dd5acc03d1fc0c411a4))
    * **layout:** include positions for children of SECTION nodes ([#381](https://github.com/GLips/Figma-Context-MCP/issues/381)) ([5088fba](https://github.com/GLips/Figma-Context-MCP/commit/5088fbafdebabc31feb45b71356dfeb8c669ed15))
    * **layout:** respect parent axis for dimensions ([#379](https://github.com/GLips/Figma-Context-MCP/issues/379)) ([a54cbc2](https://github.com/GLips/Figma-Context-MCP/commit/a54cbc23f36a87912a526444e464fdca4fda5fbd))
    * **mcp:** prevent late progress notifications from crashing stdio clients ([#366](https://github.com/GLips/Figma-Context-MCP/issues/366)) ([b97585c](https://github.com/GLips/Figma-Context-MCP/commit/b97585caf502f0e0b41cfd8f0a2f3f11559e1e77))
    * reject ambiguous localPath inputs in download_figma_images ([#367](https://github.com/GLips/Figma-Context-MCP/issues/367)) ([eaeec68](https://github.com/GLips/Figma-Context-MCP/commit/eaeec68041584114acb23cda05b8838a5e204341))
    * stop collapsing auto-layout frames to a single IMAGE-SVG ([#380](https://github.com/GLips/Figma-Context-MCP/issues/380)) ([c036111](https://github.com/GLips/Figma-Context-MCP/commit/c0361119dabc3b244687e8f455bb37822067db0f))
    * surface Figma 403 response body to help LLMs self-heal based on actual error ([#360](https://github.com/GLips/Figma-Context-MCP/issues/360)) ([12280ba](https://github.com/GLips/Figma-Context-MCP/commit/12280ba22a8d398c35db360a336356430dd0b182))
    View on GitHub ↗
  • v0.11.0 Apr 20, 2026
    ## [0.11.0](https://github.com/GLips/Figma-Context-MCP/compare/v0.10.1...v0.11.0) (2026-04-20)
    
    
    ### Features
    
    * rich text styling ([#351](https://github.com/GLips/Figma-Context-MCP/issues/351)) ([759d0e4](https://github.com/GLips/Figma-Context-MCP/commit/759d0e4f7877677980d9cee18c8f895bee655394))
    
    
    ### Bug Fixes
    
    * stop routing all traffic through EnvHttpProxyAgent by default ([#359](https://github.com/GLips/Figma-Context-MCP/issues/359)) ([a22f28f](https://github.com/GLips/Figma-Context-MCP/commit/a22f28f23f9cf5444d509b9d041d3c162e1cefd6))
    View on GitHub ↗

Discussion (0)

Sign in to comment →

No comments yet. Sign in to start the discussion.

More Dev tools servers