最节省令牌且准确的Figma导出skill

0 阅读3分钟

figma-dump

开源地址:github.com/woojufon/fi…

为 coding agent 打造的、最省 token、最精准的 Figma 导出技能。

将 Figma 设计导出为紧凑的缩进式 UI 结构树,属性直接映射 CSS —— 专为 LLM 上下文窗口优化。一次 API 调用,零废话。

English

为什么需要它

我们用同一个复杂 Figma 设计稿,分别跑了官方 Figma MCP、figma-context-mcp(14.5k stars)和 figma-dump,结果如下:

官方 Figma MCPfigma-context-mcpfigma-dump
总费用$7.4587$2.6759$1.6952
总 Tokens4,159,7991,272,117749,008
上下文窗口100% —— 已爆满25.1%23.8%
工具调用多个 MCP 工具协作MCP 工具调用1 次脚本调用
输出格式原始 JSON简化 JSONCSS 就绪的树
代码还原度低 —— 上下文溢出

比官方 MCP 省 77% 费用。比 figma-context-mcp 省 37% 费用。同样的还原度,更少的 tokens。

官方 MCP 直接把上下文撑爆了。figma-context-mcp 生成代码质量不错,但 figma-dump 用少 41% 的 tokens 达到了同样的效果 —— CSS 就绪的属性格式让 LLM 几乎没有幻觉空间。

官方 Figma MCPfigma-context-mcpfigma-dump
figma-offical-mcp.pngfigma-context-mcp.pngfigma-dump.png
[FRAME] "card" w:361 h:HUG bg:#fff radius:12 shadow:0,2,8,0,#0000001a flex:col p:16 gap:12 clip
  [TEXT] "Title" "Hello" font:Inter/14/500 color:#666 align:center lh:20
  [FRAME] "row" w:FILL h:HUG flex:row justify:between items:center
    [INSTANCE] "btn" (ButtonPrimary) w:HUG h:36 bg:#0066ff radius:8

每个属性 1:1 映射 CSS。没有中间 JSON,零 token 浪费。

欢迎自行对比验证,先安装官方 MCP 再用同一个设计稿试试:

# Claude Code
claude mcp add --transport http figma-remote-mcp https://mcp.figma.com/mcp

# Codex
codex mcp add figma-remote-mcp --url https://mcp.figma.com/mcp

特性

  • 紧凑树状输出 —— 每行一个节点,缩进即层级
  • CSS 就绪的属性 —— flex:rowp:16radius:12bg:#fff —— 直接复制到代码
  • 组件感知 —— INSTANCE 节点显示组件名:(ButtonPrimary)
  • 渲染截图 —— 同时获取 2× PNG 截图
  • 零依赖 —— 单个 Node.js 脚本,无需安装

安装

Claude Code

# 项目级别(仅当前仓库)
git clone https://github.com/anthropics/figma-dump.git .claude/skills/figma

# 全局(所有项目可用)
git clone https://github.com/anthropics/figma-dump.git ~/.claude/skills/figma

Codex

# 项目级别(仅当前仓库)
git clone https://github.com/anthropics/figma-dump.git .codex/skills/figma

# 全局(所有项目可用)
git clone https://github.com/anthropics/figma-dump.git ~/.codex/skills/figma

关闭官方 Figma MCP(如已安装)

使用前请先关闭官方 Figma MCP,避免干扰。

在 Claude Code 或 Codex 的 MCP 设置中,将官方 Figma MCP 设为 disabled 即可。

或者删除:

# Claude Code
claude mcp remove figma-remote-mcp

# Codex
codex mcp remove figma-remote-mcp

获取 Figma Personal Access Token

使用 Figma API 需要一个访问令牌,按以下步骤创建:

  1. 打开 Figma,点击左上角头像,进入 Settings

grab-figma-access-token__step-1.jpg

  1. 切换到 Security 标签页,找到 Personal access tokens,点击 Generate new token

grab-figma-access-token__step-2.jpg

  1. 填写名称,确保 File content 和 Dev resources 至少有读取权限,点击 Generate token 并复制

详细说明参见 Figma 官方文档 - 管理个人访问令牌

然后设置环境变量:

export FIGMA_TOKEN="your-figma-personal-access-token"

使用方法

作为 Claude Code 技能

/figma https://www.figma.com/design/XPACZRSwWV297aqyeltAEc/MyApp?node-id=371-5024

作为独立脚本

# URL 模式
node .claude/skills/figma/scripts/figma_fetch.mjs \
  --url='https://www.figma.com/design/FILE_KEY/NAME?node-id=371-5024'

# file key + node ID 模式
node .claude/skills/figma/scripts/figma_fetch.mjs \
  --file-key=FILE_KEY --node-id=371-5024

输出格式

每行格式:[TYPE] "name" (Component) "text content" ...properties

属性示例CSS 对应
尺寸w:360 h:HUG w:FILLwidth: 360px / auto / 100%
填充bg:#fff bg:linear(#fff,#000)background
圆角radius:12 radius:12,12,0,0border-radius
描边border:1,#e0e0e0border
阴影shadow:0,2,8,0,#0000001abox-shadow
模糊blur:8 bg-blur:10filter / backdrop-filter
布局flex:row justify:between gap:12display:flex + 属性
内边距p:16 p:16,24 p:16,24,16,24padding
文本font:Inter/14/500 color:#333 lh:20font / color / line-height
其他opacity:0.5 clip grow:1opacity / overflow:hidden / flex-grow

工作原理

  1. 解析 Figma URL,提取 file key 和 node ID
  2. 调用 GET /v1/files/:key/nodes 获取节点树
  3. 调用 GET /v1/images/:key 获取渲染 PNG
  4. 遍历节点树,将每个节点序列化为紧凑格式

许可证

MIT