原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

figma-vault

作者:NBhey版本 0.1.5i★ –i在你的电脑上运行
注册名称io.github.NBhey/figma-vault

安装

概览

作者提供的说明(英文原文)

Figma designs pulled once into a local vault; AI agents read them offline with no rate limits

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 设计、图片与音频

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 注册中心没有列出需要填写的密钥。

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "figma-vault": {
      "command": "npx",
      "args": [
        "-y",
        "figma-vault",
        "mcp"
      ]
    }
  }
}

在终端中运行这条命令

claude mcp add figma-vault -- npx -y figma-vault mcp

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "figma-vault": {
      "command": "npx",
      "args": [
        "-y",
        "figma-vault",
        "mcp"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "figma-vault": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "figma-vault",
        "mcp"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 NBhey 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“设计、图片与音频”中的其他服务器比较i

  • 星标数多于此分类中其他 2204 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 2204 个服务器的 40% 更新
  • 基础检查结果等于或优于此分类中其他 2204 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

figma-vault 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.1.5)于40天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:Figma Context MCP, Claude Real Video, Figma MCP Server

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Figma Context MCP

作者:GLips

Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.

在你的电脑上运行★ 16,165MIT5个月前更新
安装

Claude Real Video

作者:HUANGCHIHHUNGLeo

Let any LLM watch a video locally — and search everything it has ever watched.

在你的电脑上运行★ 2,284MIT2个月前更新
安装

Figma MCP Server

作者:figma

The Figma MCP server brings Figma design context directly into your AI workflow.

在云端运行★ 2,15213个月前更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

figma-vault

English · Русский

Pull a Figma frame once. Then Claude Code, Codex or any MCP agent reads it as often as it likes: offline, with no Figma token and no rate limits.

  • Batch Figma requests once, then zero requests however many times the agent looks. Screens from one file share the structure read and image render batches.
  • Icons cost nothing. A real screen had 141 icons, and they took no extra requests.
  • Commit the vault and the team needs no Figma access. No licence, no token.

Try it in 30 seconds. You don't need a Figma token for this:

npm i -g figma-vault

figma-vault init && figma-vault demo && figma-vault check

How it works: the pull normalizes the frame and writes it to disk. The agent then reads it over MCP.

one developer:      figma-vault add <link>  →  vault  →  git commit

the rest of the team: the agent reads it over MCP, no Figma token needed

The problem

Figma's MCP server and REST API are rate-limited, and on some seats the limit is tiny. While building a UI, an agent goes back to the design all the time to check a margin, a colour or a font size. That can mean dozens of calls in one session. You hit the limit fast and the work stops.

With figma-vault, the number of Figma calls doesn't depend on what the agent does. Each design costs a fixed number of calls, spent once when you pull it.

Figma Dev Mode MCPfigma-vault
who calls Figmathe agent, while it worksthe CLI, once
how many callsgrows with the agent's workfixed per design
does every reader need a tokenyesno
works offlinenoyes

There's a side effect: the design becomes a file in your repository. A developer without access to the Figma file (no licence, no permissions, no token) still gets the whole design.

How it compares

Other projects work on the same problem. The Framelink Exporter plugin exports a design to a zip for offline use, and there are caching forks of Framelink's Figma MCP. figma-vault takes a different approach:

  • The vault is meant to be committed. One person pulls a design and the whole team reads it from git. Nobody else needs Figma access.
  • Icons cost zero requests. Vector paths come with the node tree, and the SVGs are built locally. Rendering them through Figma would eat the image-render limit.
  • The format is fixed and validated. doc.json follows a written contract, and a strict validator checks every file.

Install

Requires Node.js 22+.

npm i -g figma-vault
Option 1. Per project
figma-vault init

This creates .figma-vault/, registers the server in the project's .mcp.json (other entries are left alone), adds .env to .gitignore and installs a /figma slash command for Claude Code.

Use --no-command to skip the /figma command, so the agent gets only the read-only vault_* tools.

Option 2. Nothing in the repository
figma-vault init --global

The vault lives in ~/.figma-vault/ and the server is registered in the agent's user config. The project repository never learns the tool exists. Use this when you can't add config or dependencies to the project.

Usage

figma-vault add "https://figma.com/design/KEY/Project?node-id=127-4532"

Export several selections together; links from the same file share requests:

figma-vault add " " " "

Keep the node trees if image rendering is unavailable:

figma-vault add " " " " --no-assets

A SECTION/CANVAS link can expand into its frames (up to 20 by default):

figma-vault add " " --expand --max-screens 20

To get the link, right-click a frame in Figma and choose Copy link to selection.

figma-vault limits "<frame link 1>" "<frame link 2>" # probe access before pulling

figma-vault list # what has been pulled so far figma-vault check # verify the whole chain works figma-vault demo # add a demo design, no token needed

CLI output, errors and the MCP tool descriptions are in English by default; the /figma command it installs is in English too. README.ru.md is a translation of the documentation only.

After init, Claude Code has one command:

/figma <frame link> [more frame links...]

It pulls the design, reads it over MCP and builds the UI following the project's conventions.

What a pull costs in Figma requests

REST API limits depend on the token, plan and seat type. Both node reads and image renders are Tier 1 endpoints. figma-vault limits " " [more links...] spends one shallow node read plus up to ceil(S/40) screen render requests per file. It skips rendering SECTION and CANVAS selections as whole images; their child screens are not probed. A successful probe cannot guarantee the full pull: asset renders can require additional requests.

For a file with S selected screens and R unique raster assets, when each screen has fewer than 40 raster assets, a successful pull typically uses:

requests
selected node trees (/v1/files/:key/nodes)1 per file
screenshots and raster assets (/v1/images, batches of 40 IDs)ceil((S + R) / 40) per file
icons with local geometry0

For example, two screens in one file with three unique raster assets take one node read and one image render if the five IDs fit in a batch. At 40 or more raster assets on one screen, screenshots are rendered separately. --expand first probes containers with depth=1, adding at least one node request per file. SVG fallback renders, failed requests and retries can add calls. On a real 332-node design, 141 icons needed no render calls. After the pull, the agent never calls Figma again.

Check the result against the design

figma-vault verify compares the page the agent built with the design. The package ships no browser: the snapshot is taken with whatever the project already uses (Playwright, DevTools, the agent's browser tool).

  1. Mark the root element of the page with data-figma-node-id=" ", and the main blocks with the ids of their nodes.
  2. figma-vault verify --snippet prints a script. Run it on the page and save what it returns to a file.
  3. figma-vault verify --snapshot checks it:
  • texts: every visible text of the design must be on the page;
  • geometry: each marked block must match the design's position and size, within 2 px by default (--tolerance).

The result is PASS (exit code 0), FAIL (1, with a list of what is off) or INCOMPLETE (2, when nothing is marked and geometry can't be checked). The /figma command runs this step itself when the project has a browser.

Try it without a Figma token

You only need a token to pull new designs. Reading works without one, which is the normal setup for everyone except the person who pulls. So you can test the whole install without creating a token:

figma-vault init && figma-vault demo && figma-vault check

check starts the real MCP server as a child process and talks to it over the protocol. It exits with code 1 when something is actually broken, so you can use it in CI.

Token

In Figma, go to Settings → Security → Personal access tokens → Generate new token. The token needs only one scope: File content → Read-only.

Put it in a .env file in the directory you run the CLI from, as a line FIGMA_TOKEN=figd_..., or set it as an environment variable. If both are set, the environment variable wins.

What the agent gets

The MCP server exposes six read-only tools:

toolreturns
vault_listthe designs in the vault
vault_get_doca design's node tree; maxDepth limits the depth
vault_get_nodethe subtree of one node
vault_searchnodes found by name or text
vault_get_tokenscolours, typography, effects
vault_get_assetan image or an icon

The tree is normalized:

  • auto-layout becomes mode: row|column with gap and padding;
  • coordinates are relative to the parent;
  • styles, gradients and text come in one predictable shape, including differently coloured fragments inside one text (text.runs);
  • nodes hidden in Figma are kept with hidden: true. By default the agent doesn't get them, but a parent reports how many it has (hiddenOmitted). Pass includeHidden: true when building a reusable component whose optional slots are switched off on this screen.

The raw Figma response is saved next to it in raw.json for debugging.

On a real design, normalization shrinks the tree about 7 times:

raw.json   1.9 MB   raw Figma response

doc.json 256 KB what the agent reads

This saves more than disk space. An agent that reads 256 KB instead of 2 MB rebuilds the UI noticeably more accurately.

Vault layout

<vault>/

index.json list of designs / doc.json normalized tree, the main artifact raw.json raw Figma response screenshot.png render of the whole frame assets/ icons and images

The figma-vault/doc@1 schema is described in docs/CONTRACT.md (in Russian). A strict validator checks it. Vaults pulled with 0.1.0 (doc@0) are still read as they are; there is no need to pull them again.

doc.json stands on its own: the MCP server never reads raw.json and never touches the network.

Known limitations

This is an MVP. Here is what it can't do yet.

  • Rate limits. Node reads and image renders are both Tier 1. Either endpoint can return 429, and the block can last for days. Icons no longer depend on rendering, but the frame screenshot and raster images still do. The client retries up to three times, following Retry-After, and never sleeps for more than a minute. If Figma asks it to wait for days, the pull keeps the node tree, records the reason as a warning and doesn't fail. Run figma-vault limits before pulling.
  • Only colour and weight are kept for fragments inside a text. A gradient, a different font or an underline on part of a text is lost.
  • Designs with many component variants make a large `doc.json`. Hidden slots are kept now. On a 332-node screen that added 3,400 hidden nodes, and the file grew from 444 KB to 5 MB. The agent still gets about 100 KB by default, but the file goes into your git.

How it was tested

The fixture in the repository is synthetic: 29 nodes, enough to install the tool and confirm the chain works without a Figma token.

We checked accuracy separately, on two real designs whose content isn't published here. Results on a product screen with 332 nodes, 15 levels deep:

checkresult
design texts present in the rebuilt markup41 of 41
icons15 of 15, 0 broken links
placeholders needed1 (a raster avatar)
Figma requests in the earlier measured pull3 (before combined rendering)
doc.json against the contractpasses

Not checked: pixel-perfect match. We compare with Figma's reference render by eye, using npm run dev → /compare/ . figma-vault verify checks texts and the geometry of marked blocks, but no

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx