使用 Figma Agent Kit:插件 + MCP + 还原 Skill,打通本地设计协作

面向前端、设计师、设计工程、AI Coding 同学的长文技术分享

项目:Figma Agent Kit · 稳定版 v1.0.0 · MIT

文档站:chinacarlos.github.io/figma-agent...

仓库:github.com/ChinaCarlos...
先说明定位(避免误解):

「Desktop 插件 + 本地 MCP 桥」这条技术路线并非我们首创 。社区里已有多套本地 Figma ↔ Agent 桥接实践;本文介绍的是我们在参考、学习这些开源方案之后 ,按自己的工程目标改造、重组并开源 的实现------Figma Agent Kit


Figma Desktop ↔ 本地 MCP ↔ Cursor / Claude Code / Codex ... 实时读写当前画布


写在前面:这篇想讲清楚什么

过去一年,「AI 能写代码」已经不再新鲜;真正卡住交付效率的,往往是 设计和代码之间那一截

  • Agent 看不到你正在改的 Figma 选区;
  • 官方 / 商业 Figma MCP 能力常伴随席位、套餐或用量门槛;
  • 截图口述又丢结构、丢 Auto Layout、丢真实节点树。

社区其实已经给出过一条清晰路径:用 Figma Desktop 插件摸画布,用本地进程把能力暴露成 MCP ,让 Cursor 等 Agent 直接调用。我们不是从零发明这条路,而是在调研现有开源项目后,基于自身需求做了一版可维护、可发版、文档较完整的改造实现------Figma Agent Kit (Figma Desktop 插件 + npm 包 figma-agent-mcp),把 Cursor / Claude Code / Codex / Qoder / CodeBuddy / Trae 等接到当前打开的设计稿

本文会按这个顺序展开(可收藏跳读):

  1. 背景与行业现状(含 商业 Figma MCP 的成本门槛
  2. 构思:参考社区方案后,我们如何选型与改造
  3. 能给开发者 / 设计师带来什么收益
  4. 本仓库的实现方案与端到端架构
  5. 技术实现要点(选举、MsgPack、RPC、双 AI 路径等)
  6. 完整使用流程(配图)
  7. 插件 + MCP + Cursor Skill:通用 1:1 UI 还原工作流
  8. 适合谁 / 不适合谁
  9. 开源地址、文档、致谢与参与方式
  10. 写在最后

目标不是「又一篇 README 翻译」,也不是「踩一捧一」,而是:把改造动机、架构取舍、上手路径,以及「怎么把工具链接到真实还原流程」讲清楚,方便你复现、对比、提 Issue。


一、背景:设计与代码之间,还差「最后一公里」

1.1 AI Coding 提速了,交付链路却仍断裂

AI Coding 把「写函数、改组件、补测试」提速了很多。但真实业务里,大量时间耗在:

  • 对着设计稿猜圆角、间距、字号;
  • 活动页 / 运营 H5 改一版文案,设计改完开发再对一次;
  • Agent 生成了一版 UI,却和 Figma 里「当前这一帧」对不上。

核心矛盾很简单:

模型很强,但缺一个「摸得到当前画布」的标准工具接口。

1.2 常见做法及其代价

痛点 常见做法 代价
Agent 读不懂当前稿 粘贴截图 / 口头描述 丢精度、难迭代、难回归
Agent 改不动图层 只读导出 / 人工改稿 闭环断在设计侧
要结构化节点信息 Figma REST / 导出 JSON Token、权限、不是「当前选区」
要官方 MCP 体验 Figma 官方 / 商业 MCP 要钱、席位与用量限制
多窗口同时用 Agent 各自起进程抢本地端口 桥不稳定、难排查

我们想要的体验只有一句话:

打开 Figma Desktop → 打开 Cursor → 对 Agent 说「看看当前选中的 Frame,把标题改成 xxx」→ 画布立刻变。

这不是再做一个设计工具,而是:把你已经在用的 AI 编辑器,接到你正在编辑的那份稿。

1.3 重点:Figma MCP「要钱」,把很多人挡在门外

近一年年 MCP(Model Context Protocol)把「给 Agent 接工具」标准化了。Figma 生态里也迅速出现了官方或商业向的 MCP 能力------体验上很香,但对个人开发者、小团队、学生、侧项目往往有真实门槛:

flowchart TB subgraph pain [真实门槛] A[按席位 / 套餐收费] B[云端文件与权限绑定] C[用量或功能分层] D[公司采购流程慢] end subgraph result [结果] E[个人与小团队用不起或不愿付] F[想试一把设计稿进 Agent 的人被劝退] G[学习与开源社区缺少可复现底座] end A --> E B --> E C --> F D --> G

这不是否定官方产品------企业级安全、合规、云协作本来就该有人做。

问题是:「我想在本机、对着当前打开的稿、用 Cursor 试一把」 这件事,不该一上来就被付费墙挡住。

在这样的背景下,继续采用社区已验证的「本地桥」方向,对我们更务实:不替代官方商业产品,而是提供一条可自托管、默认可审计的补充路径。

对本仓库,我们把工程目标定成:

维度 本仓库的取舍
费用 MIT,npm / GitHub 可直接安装
数据 桥流量默认 localhost;MCP 工具路径不为读写而经 REST 上传整份文档
能力 面向当前打开稿的读写工具集(具体以文档工具表为准)
生态 标准 stdio MCP,尽量不绑死单一 IDE
工程 插件与 MCP 同版本发版、双语文档站、可复现的 CI

一句话(尽量严谨):

商业 Figma MCP 可以很好,也可能伴随成本与采购门槛;社区本地桥路线解决的是另一类需求------先能在本机复现、默认可审计、便于二次改造。我们做的是其中一份开源实现,不是唯一答案。


二、构思:参考现有开源,再决定怎么改造

2.0 站在社区肩膀上(重要)

「用插件访问画布 + 本地进程暴露给 Agent」在开源社区里已经反复出现。调研阶段我们能明显看到几类共性:

  • Desktop(或插件)侧调用 Figma Plugin API;
  • 本机 WebSocket / HTTP 做桥;
  • 再包一层 MCP(或同类工具协议)给 Cursor 等宿主。

Figma Agent Kit 不是宣称发明了上述架构。

我们做的是:阅读、对比现有开源实践后,按自己的维护目标重写/改造一版,并补齐发版、文档、多客户端说明等「能长期用」的部分。若你正在用其他优秀的本地 Figma MCP / 桥项目,完全可以继续用;本文只介绍 本仓库 的取舍,欢迎对照阅读,也欢迎指出我们文档里表述不严谨的地方。

flowchart LR Community[社区已有_本地桥实践] -->|学习与对照| Goals[我们的工程目标] Goals --> Rebuild[改造_重组_文档化] Rebuild --> Kit[Figma_Agent_Kit_本仓库]

2.1 三条技术路线怎么选(对本仓库而言)

flowchart LR subgraph opt1 [方案 A] R1[Figma REST / 云 API] end subgraph opt2 [方案 B] R2[浏览器插件劫持 Web] end subgraph opt3 [方案 C] R3[Desktop Plugin API + 本地桥 + MCP] end opt1 -.->|快照感强 / Token / 非当前选区| X1[与目标偏差大] opt2 -.->|易碎 / 标签休眠断 WS| X2[维护成本高] opt3 --> Y[更贴近_当前画布_本地_标准MCP]
  1. 纯 REST / Official API

    强依赖云端文件与 Token,模型偏「文档快照」,对「当前打开页、当前选区」往往不友好。

  2. 浏览器插件劫持

    脆弱、易随 Figma Web 改版失效;标签休眠还可能弄断 WebSocket。

  3. Figma Desktop Plugin API + 本地桥 + MCP(本仓库采用,亦为社区常见方向)

    • 更贴近实时画布能力;
    • 桥默认留在本机;
    • Agent 侧走标准 MCP,换编辑器时主要换宿主配置。

2.2 本仓库如何拆包:插件 + MCP,版本一起发

在社区常见的「两端分离」之上,我们把交付形态固定成:

组件 分发 职责
figma-agent-plugin GitHub Releases ZIP 桥客户端、面板 UI、可选 AI 重命名/分组、3× 切图
figma-agent-mcp npm stdio MCP + HTTP/WS 桥(含多进程时的 Leader / Follower 处理)

插件侧负责调用 Figma Plugin API;MCP 侧负责被 Agent 调用;中间用本地 WebSocket(本实现里业务帧为 MessagePack)连接。

这是本仓库的模块划分,同类开源项目里也常见类似拆分,细节实现并不相同。

插件面板:绿色「MCP Bridge 已连接」= Agent 侧已经摸得到当前文件


三、能带来什么收益?开发者 × 设计师

这一章专门回答:「我为什么要装它?」

3.1 给开发者的收益

mindmap root((开发者收益)) 还原效率 读真实节点树 少猜间距圆角 选区级上下文 Agent 闭环 读写图层 改文案结构 导出切图到仓库 成本与可控 可用开源栈降低订阅门槛 默认 localhost 多 IDE 一套配置 工程友好 37 个标准工具 MsgPack 传 PNG 与插件同版本
收益 具体表现
还原更快 Agent 直接 get_selection / get_node,拿到结构而不是糊图
改稿可闭环 文案、填充、Auto Layout、创建分组等可走写工具,少来回甩锅
降低商业 MCP 门槛 个人 / 小团队可先用开源本地栈跑通工作流(不排斥日后采购官方方案)
隐私默认更好 桥在本机;公司稿不必为了「让 Agent 看看」先同步到第三方
多编辑器复用 Cursor 配一次 MCP,换 Claude Code / Codex 仍是同一套 npx
切图进仓库 save_screenshots + 压缩,和插件 3× 切图基准对齐

典型 Prompt 例子:

  • 「读取当前选中 Frame,用结构化方式描述层级,并标出可疑的绝对定位。」
  • 「把标题改成『春季上新』,字号保持设计稿原样。」
  • 「把当前选区按 3× PNG 导出到 ./assets/hero。」

3.2 给设计师的收益

设计师不一定写 MCP 配置,但插件本身也能单独创造价值:

收益 具体表现
图层卫生 可选 AI 视觉重命名 ,少 Rectangle 128Group 99
结构整理 可选 视觉分组,在副本上整理嵌套,降低给开发的「垃圾层」成本
切图交付 面板内 1× 预览 + 3× PNG / ZIP,不用另开一堆导出设置
中英界面 团队里设计偏中文、开发偏英文也能各自切换
和开发对齐 开发用 Agent 读的就是你正在看的那一帧,减少「你截的不是这一版」

导出切图:1× 预览、文件名、单张下载与 ZIP(3×)

可选:配置 OpenAI 兼容 API,用于插件内重命名 / 分组(与 MCP 桥路径分离)

3.3 给「设计工程 / 小组」的收益

  • 同一份真相:稿在 Desktop,Agent 读的也是这份,不再「飞书图床 + 过期截图」。
  • 流程可复制 :新同学按文档装插件 + npx,十分钟级上手。
  • 可审计:MIT,代码在 GitHub,桥协议公开,方便安全评审。
  • 和付费方案可并存:公司买了官方 MCP 也没关系------本地开源桥适合敏感稿、离线演示、个人实验。
flowchart LR Design[设计师改稿] --> Desktop[Figma_Desktop] Desktop --> Plugin[Figma_Agent_Kit_插件] Plugin -->|localhost_桥| MCP[figma_agent_mcp] MCP -->|stdio| Dev[开发者_Agent] Dev -->|读写工具| Plugin Plugin -->|切图_ZIP| Assets[交付资产] Dev -->|代码_PR| Repo[业务仓库]

四、实现方案:本仓库端到端长什么样

下列架构与时序描述的是 Figma Agent Kit 当前实现。社区其他项目可能端口、编码、选举策略不同------请以各自文档为准,勿默认「所有本地桥都长这样」。

4.1 总览

flowchart LR Agent[AI_Agent] -->|stdio_MCP| McpProc[figma_agent_mcp] McpProc -->|Election| Role{Leader_or_Follower} Role -->|WS_MsgPack| PluginUI[Plugin_UI] PluginUI -->|postMessage| PluginMain[Plugin_main] PluginMain --> FigmaAPI[Figma_Plugin_API]

在本仓库中,一次典型调用大致是:

  1. Agent 经 stdio MCP 连上 figma-agent-mcp 进程;
  2. 该进程成为 Leader (成功绑定 localhost:PORT)或 Follower(转发到已有 Leader);
  3. 插件 UI 用 MessagePack 连接 Leader 的 WebSocket;
  4. UI 再 postMessage 到插件 main;
  5. main 调用 Figma Plugin API,结果原路返回 Agent。

4.2 Agent → MCP:标准工具面

figma-agent-mcp 是标准 MCP Server。当前稳定版 37 个工具,覆盖:

  • 文档 / 选区 / 节点读写
  • 填充、文本、Auto Layout
  • 创建 / 分组 / 删除
  • 截图与导出
  • Motion(样式、关键帧、时间轴等)

Cursor 配好后,MCP 面板应能看到工具已启用:

Cursor:figma-agent-mcp · 37 tools enabled

4.3 MCP → 插件:本地桥

默认端口来自仓库根目录 bridge.config.json(1998),构建时同步进:

  • MCP 默认端口常量
  • 插件 UI 内嵌地址
  • manifest.json 相关配置

避免「改了一边忘了另一边」这种经典翻车。

flowchart TB CFG[bridge.config.json] --> SYNC[sync-bridge-config.mjs] SYNC --> MCP[MCP_defaultPort] SYNC --> UI[Plugin_UI_ws_url] SYNC --> MAN[manifest.json]

4.4 一次真实调用的时序(RPC)

sequenceDiagram participant Agent participant Tools as tools.ts participant Node as Leader_or_Follower participant Bridge as bridge.ts participant UI as Plugin_UI participant Main as Plugin_main Agent->>Tools: MCP_tool_call Tools->>Node: forwardTool Node->>Bridge: sendRequest Bridge->>UI: MsgPack_request UI->>Main: postMessage_server_request Main->>Main: handleBridgeRequest Main-->>UI: server_response UI-->>Bridge: MsgPack_response Bridge-->>Tools: data Tools-->>Agent: MCP_result

要点:

  • stdout 留给 MCP 协议,日志只打 stderr
  • 截图在桥上是 原始 PNG 字节 (MsgPack bin),不是 base64;
  • Agent 侧 get_screenshot 再按需转 base64。

五、技术实现要点:本仓库里几个关键取舍

再次强调:这些是 工程取舍与实现细节,用于解释「本仓库为什么这样写」,不是声称「业界第一次这么做」。

5.1 Leader / Follower:多窗口下的端口占用

现实:你开 3 个 Cursor 窗口,可能拉起 3 个 MCP 进程;但 一个本地端口通常只能被一个进程成功 listen。本仓库用 Leader / Follower 处理这一约束(具体策略见源码与架构文档)。

sequenceDiagram participant P1 as McpProcess_A participant P2 as McpProcess_B participant Port as localhost_1998 participant Plugin as Plugin_UI P1->>Port: listen_succeed Note over P1: becomes Leader P2->>Port: listen_fail P2->>P1: GET_/ping Note over P2: becomes Follower Plugin->>P1: WS_connect P2->>P1: POST_/rpc_MsgPack P1->>Plugin: WS_forward Plugin-->>P1: response P1-->>P2: MsgPack_result
角色 职责
Leader 绑端口、接插件 WS、提供 /ping /files /rpc
Follower 工具调用 → Leader POST /rpc;发现文件 → GET /files
故障 健康轮询约 3--5s;Leader 挂了 Follower 可再竞选

对需要多窗口同时开 Agent 的场景,这类机制比「假定永远只有一个 MCP 进程」更贴近日常使用;其他开源实现也可能用别的方式解决同一问题。

5.2 本实现为何在业务帧上使用 MessagePack?

flowchart LR subgraph jsonPath [JSON_WS] J1[PNG] --> J2[base64] J2 --> J3[体积约 +33%] end subgraph msgPath [MsgPack_WS] M1[PNG_bytes] --> M2[bin] M2 --> M3[更紧凑] end

在本仓库中,桥业务帧与 Leader↔Follower 的 POST /rpc 使用 MessagePackmsgpackruseRecords: false)------这是我们基于体积与截图传输需求做的选择,并非「本地桥只能用 MsgPack」:

  • 截图可走 bin,相对 base64 更省;
  • 较大节点树通常更紧凑;
  • 逻辑消息形状仍可与 JSON 方案对照理解。

健康检查仍用 JSON(GET /pingGET /files),方便人眼和脚本探活。

5.3 截图与切图两条出口

flowchart TB subgraph plugin [Plugin] ExportAPI[exportAsync] ExportAPI --> Bytes[Uint8Array_PNG] end subgraph bridge [Bridge_MsgPack] Bytes --> Wire[bin_on_WS] end subgraph mcp [MCP] Wire --> GetShot[get_screenshot] Wire --> SaveShot[save_screenshots] GetShot --> B64[base64_for_Agent] SaveShot --> Compress[TinyPNG_style_optional] Compress --> Disk[write_filesystem] end
工具 压缩 典型用途
get_screenshot 给 Agent 看(默认 scale=2)
save_screenshots PNG 默认开 交付切图;scale=3 对齐插件 UI

5.4 两条 AI 路径:别混为一谈

flowchart TB subgraph pathA [MCP路径 --- 无需 LLM Key] Agent2[AI_Agent] --> MCP2[figma_agent_mcp] MCP2 --> Bridge2[localhost_bridge] Bridge2 --> Canvas[Figma_canvas] end subgraph pathB [插件内 AI --- 可选] UI2[Plugin_UI] --> Vision[截图加图层元数据] Vision --> API[OpenAI_兼容接口] API --> Rename[重命名_或_分组] end
  • MCP 桥工具:不需要你在 MCP 里配 LLM Key;读写画布走本地插件。
  • 插件内 AI 重命名 / 分组 :可选;会把截图 + 元数据发到你配置的 API;密钥在 Figma clientStorage

可编辑重命名 / 分组系统提示词(含占位符)

对外沟通时建议拆开讲,避免被理解成「凡是本地桥,任何 AI 功能都保证不出网」------本仓库也不做这种绝对承诺;请以隐私说明与源码路径为准。

5.5 工程:版本锁与发版流水线(本仓库实践)

flowchart LR Dev[改代码] --> Kit[pnpm_release_kit] Kit --> Tag1[figma-agent-mcp-vX.Y.Z] Kit --> Tag2[figma-agent-plugin-vX.Y.Z] Tag1 --> NPM[npm_publish] Tag1 --> GHR1[GitHub_Release_tgz] Tag2 --> GHR2[GitHub_Release_ZIP] Docs[docs变更] --> Pages[GitHub_Pages文档站]

我们要求 MCP 与插件 尽量同版本使用pnpm release:kit:* 一次 bump、打两个 tag、走两套 CI,减少「npm 升了、插件还停在上周」的错配------这是维护策略,不是架构发明。


六、项目架构(开箱可读)

6.1 仓库布局

text 复制代码
figma-agent-kit/
├── bridge.config.json           # 默认端口唯一真相源
├── packages/
│   ├── figma-agent-mcp/         # npm:stdio MCP + 桥 Leader/Follower
│   └── figma-agent-plugin/      # Figma 插件:桥客户端 + AI + 切图
├── docs/ + docs/zh/             # 源文档(中英)
├── docs-site/                   # Rspress → GitHub Pages
├── articles/                    # 技术分享等长文
└── scripts/                     # sync-bridge / sync-docs / release-kit

6.2 模块职责(MCP)

模块 职责
index.ts CLI、选举、MCP stdio
election.ts Leader listen / Follower 挂接 / 接管
leader.ts HTTP /ping /files /rpc + WS
follower.ts 向 Leader 转发
bridge.ts 按 fileKey 的 WS 表、心跳、超时
codec.ts MsgPack
tools.ts / schema.ts 37 工具 + Zod
compress-png.ts save_screenshots 压缩

6.3 模块职责(插件)

模块 职责
bridge/handlers.ts 工具实现(含 Motion、写操作)
bridge/serializer.ts 节点树序列化
ui/ui.html WS 客户端、设置、i18n、切图
rename/* · group/* 可选 AI 重命名 / 分组
export/slices.ts 1× 预览 / 3× PNG

6.4 技术栈一览

技术
MCP TypeScript ESM、@modelcontextprotocol/sdkwsmsgpackr、Zod
插件 TypeScript、Rsbuild、esbuild 注入、Figma Plugin API
文档 Rspress 双语、GitHub Actions → Pages
CI build / pack / tag 发版 / Docs

架构细节与协议字段,见文档站:架构说明 · 桥接协议


七、使用流程:从 0 到第一次成功调用(配图版)

7.1 总流程

flowchart TD A[安装_Figma_Desktop与_Node20] --> B[下载插件_ZIP_1.0.0] B --> C[Import_plugin_from_manifest] C --> D[运行_Figma_Agent_Kit] D --> E[配置编辑器_MCP_npx] E --> F[重启_MCP_看到_37_tools] F --> G[插件显示桥已连接] G --> H[Agent_调用_list_files] H --> I[get_selection] I --> J[写操作或_save_screenshots] J --> K[完成冒烟]

7.2 环境要求

  • Figma Desktop(强烈推荐;浏览器标签可能休眠断 WS)
  • Node.js ≥ 20
  • 任意支持 stdio MCP 的 Agent(Cursor / Claude Code / Codex / Qoder / CodeBuddy / Trae ...)

7.3 Step 1 --- 安装插件

  1. 打开 Releases
  2. 下载 与 MCP 同版本figma-agent-plugin-v1.0.0.zip
  3. 解压
  4. Figma Desktop → Plugins → Development → Import plugin from manifest...
  5. 选择目录里的 manifest.json
  6. 运行 Figma Agent Kit

需要专注看选区时,可进 Mini 模式:

Mini:桥状态 + 当前选区

齿轮菜单可切换语言、进模型 / 提示词设置、检查更新:

7.4 Step 2 --- 配置 MCP(Cursor 示例)

编辑 ~/.cursor/mcp.json(或项目级 .cursor/mcp.json):

json 复制代码
{
  "mcpServers": {
    "figma-agent-mcp": {
      "command": "npx",
      "args": ["-y", "figma-agent-mcp"]
    }
  }
}

自定义端口(必须与插件构建一致):

json 复制代码
"env": { "FIGMA_AGENT_MCP_PORT": "1998" }

Cursor mcp.json 接入 figma-agent-mcp

其他编辑器的复制粘贴配置(Claude Code / Codex / Qoder / CodeBuddy / Trae)见:

chinacarlos.github.io/figma-agent...

7.5 Step 3 --- 冒烟测试

保证:Figma 里插件已开、桥为绿色、MCP 显示 37 tools。然后让 Agent:

  1. 调用 list_files --- 应看到当前文件;
  2. 在 Figma 里选中一个 Frame,调用 get_selection
  3. 再试一个轻量写操作,或 save_screenshots
sequenceDiagram participant U as 你 participant A as Agent participant M as figma-agent-mcp participant P as Plugin participant F as Figma U->>A: 请 list_files A->>M: tools/call list_files M->>P: MsgPack RPC P->>F: Plugin API F-->>P: 文件列表 P-->>M: result M-->>A: MCP result A-->>U: 当前打开的文件是...

通了,你就已经完成「设计稿进 Agent 上下文」的最小闭环。

7.6 日常推荐工作流

角色 建议节奏
设计师 Desktop 改稿 → 需要时用插件切图 / AI 整理图层
开发 Cursor 开着 MCP → 对选区提问 / 改结构 / 导出资产
双人协作 同一文件;开发读选区前先在 Figma 点一下目标 Frame
排障 先看插件灯是否绿 → 再看 MCP 是否 37 tools → 再看端口是否一致

更多排障见文档站 FAQ


八、插件 + MCP + Skill:把「能连上」升级成「能 1:1 还原」

前面几章解决的是:工具链如何连上当前画布

真正接到业务时,还有一道常见鸿沟------

Agent 会调 get_node / save_screenshots,但缺少统一纪律:scope 乱扩、整页一图硬顶、TEXT 漏字、切图烤死接口文案、验收口号先于对照。

因此本仓库额外提供一份 Cursor Agent Skillfigma-ui-restore,把 Figma Agent Kit 插件 + figma-agent-mcp 编成可复用的 通用 UI 1:1 还原流程(不绑定某一活动脚手架)。

路径(克隆仓库后):

text 复制代码
.cursor/skills/figma-ui-restore/SKILL.md

在 Cursor 中可 @figma-ui-restore,或在对话里说「按 Figma 1:1 还原 / 切图落盘 / 对照验收」触发同类意图。

8.1 三件套怎么分工

flowchart LR subgraph human [人] U[给_Figma_URL与确认门] end subgraph skill [Cursor_Skill] S[figma-ui-restore<br/>纪律与步骤清单] end subgraph mcp [figma-agent-mcp] T[list_files_get_node<br/>get_screenshot<br/>save_screenshots] end subgraph plugin [Figma_Agent_Kit_插件] P[Plugin_API_读写画布] end subgraph code [业务仓库] C[落码_assets_验收] end U --> S S -->|约束调用顺序| T T -->|localhost_桥| P S -->|bounds_切图粒度_清单| C P --> C
层级 职责 不负责
插件 摸得到当前文件;执行导出 / 节点读写 不规定你的 React/Vue 目录结构
MCP 把能力变成标准工具,给 Agent 调用 不自动保证「1:1 验收通过」
Skill 规定 scope、TEXT 归类、切图打标、分块对照、验收措辞 不替代业务 PRD / 接口 codegen

一句话:

插件 + MCP = 能力;Skill = 怎么负责任地用这些能力做还原。

8.2 Skill 规定的主流程(strict 默认)

text 复制代码
锁 scope →(确认门)→ list_files → get_node 读结构 → TEXT 全量归类
  → 切图打标 → get_screenshot 基准图 → save_screenshots×3 落盘
  → bounds 落码 → 分块对照 → 验收清单勾完才能说「1:1」
flowchart TD A[用户给 Figma URL] --> B[解析 scopeNodeId] B --> C{实现向确认门?} C -->|未确认| D[禁止 get_node / 切图 / 落码] C -->|已确认| E[list_files → connected fileKey] E --> F[get_node 结构 + bounds] F --> G[3b TEXT 全量归类] G --> H[4 切图打标 skin/whole-btn/panel-bg] H --> I[get_screenshot 基准图] I --> J[save_screenshots scale3] J --> K[bounds 落码] K --> L[分块对照] L --> M{块通过?} M -->|否| K M -->|是| N[验收清单] N --> O{全通过?} O -->|否| K O -->|是| P[可声称 scope 1:1 对照验收]

仅当用户明文 fast 时可压缩部分读结构表述、可省略基准图落盘;不得 跳过 TEXT 清单与切图粒度,不得整页一图兜底。

8.3 几个「专门防翻车」的纪律

纪律 含义
单 scope URL 一个 node-id → 只还原该子树;禁止顺手扫整文件
确认门 未确认前禁止 get_node / save_screenshots / 落码(允许 list_files
connected fileKey list_files,勿只用 URL 里的 fileKey
TEXT 全量清单 每条 TEXT 归入 whole-btn-text / dom-fixed / dynamic 等;未归类不得切图
切图粒度 只导 skin / whole-btn / panel-bg(含 modal-panel-bg);接口会变的文案/图不进 PNG
3× + 压缩 交付切图用 save_screenshotsscale: 3compress: true
bounds 优先 strict 下非对称布局禁止用 flex:1 糊弄
分块对照 一大块不过关,不得进入下一块
验收措辞 清单未全过,禁止写「已 1:1 对照验收」

这些条目与社区里优秀的活动还原规范同源思路;我们将其通用化后写进本仓库 Skill,方便任意前端项目复用,而不是绑死某一业务仓。

8.4 和「只连上 MCP」的日常用法怎么选

你想做的事 建议
问一句「当前选区是什么结构」 直接 Agent + MCP 工具即可
改个文案 / 导出几张图 MCP 工具 + 插件绿灯
按画板做页面/弹窗 1:1 还原并验收 启用 figma-ui-restore Skill,走完整清单
只整理图层命名 / 分组 可用其它 layers 类 Skill(若有);不替代还原 Skill

8.5 在你自己的项目里怎么用

  1. 安装并运行 Figma Agent Kit 插件,配置 figma-agent-mcp(见上文第七章)。
  2. 把本仓库的 .cursor/skills/figma-ui-restore/ 复制到你的业务仓库 .cursor/skills/(或在 monorepo 里用 submodule / 文档约定引用)。
  3. 打开业务仓库,用 Cursor 给出 Figma 链接,说明技术栈与资源目录。
  4. @figma-ui-restore 或明确「按 Skill 做 strict 1:1 还原」。
  5. 要求 Agent 按 Skill 模板输出:TEXT 清单、切图清单、参照父、分块对照、验收结论。

Skill 正文请以仓库内文件为准:

.cursor/skills/figma-ui-restore/SKILL.md

说明:Skill 是 Agent 行为规范,不是 npm 包的一部分;发版 kit 时它随仓库文档/工程资产一起演进。把「能力」和「用法纪律」拆开,是为了让同一套 MCP 既能聊天探稿,也能扛严肃还原。


九、适合谁 / 不适合谁

适合

  • 用 Cursor / Claude 做还原、组件改造、活动页、运营 H5
  • 希望 Agent 对着真图层工作,而不是对着模糊截图猜
  • 在意默认本地、可审计,或希望在采购商业 Figma MCP 之前先跑通工作流
  • 设计师想顺手整理图层名、导出 3× 切图

可以做的事(举例)

  • 结构化解读当前 Frame,标出风险布局
  • 改文案 / 填充 / 部分布局属性
  • 导出 3× PNG 到仓库目录
  • 读 Motion 时间轴 / 关键帧(工具已暴露)

不适合期待的事

  • 替代完整 Design System 工作台
  • 无 Desktop、无本地 Node 的纯云端方案
  • 不装插件就远程操控任意云文件
  • 「完全免费还调用闭源大模型做视觉重命名」------模型费用在你自己的 API Key 上

十、开源地址、文档、致谢

资源 链接
本仓库(欢迎 ⭐ / Issue / PR) github.com/ChinaCarlos...
文档站(中英) chinacarlos.github.io/figma-agent...
UI 还原 Skill github.com/ChinaCarlos...
npm:figma-agent-mcp www.npmjs.com/package/fig...
插件 ZIP github.com/ChinaCarlos...
MCP Release github.com/ChinaCarlos...
Docs Release github.com/ChinaCarlos...
协议 MIT

本地跑文档站:

bash 复制代码
git clone https://github.com/ChinaCarlos/figma-agent-kit.git
cd figma-agent-kit
pnpm install
pnpm dev:docs

一行拉起本仓库的 MCP(需已安装/导入对应版本插件):

bash 复制代码
npx -y figma-agent-mcp

致谢(请读)

Figma Agent Kit 站在社区已有工作之上。

「本地 Figma ↔ Agent 桥接」方向由众多开源作者、文章与仓库共同探索;我们从中学习路线与问题域,再按自己的维护目标改造、重组并补充文档与发版流程。若你的项目曾直接或间接启发本仓库,致谢你们的公开分享------若文中仍有表述不够严谨之处,欢迎开 Issue 指正,我们会改。

我们也明确:

  • 不贬低官方 / 商业 Figma MCP:企业场景下的合规、协作与支持往往是刚需;
  • 不声称本仓库是唯一或「正统」本地桥;
  • 不保证与某一特定第三方开源桥功能一一对等------请以本仓库文档与版本说明为准。

十一、写在最后

如果用一句话收束本文的立场,会是:

AI Coding 的下一公里,不全是更强的模型;本地、可审计、可改造的工具链接口同样重要。社区已经铺过路,我们只是又修了一段更适合自己维护的路基,并把它开源出来。

对本仓库而言,我们更在意这些「能天天用」的部分:多进程下的端口处理、截图链路、版本锁、双语文档、可复现发版,以及把插件 + MCP 编成 figma-ui-restore Skill 的还原纪律------它们不一定炫技,但对真实协作很关键。

若文章对你有用,欢迎:

  1. 给仓库点个 Star ⭐ --- github.com/ChinaCarlos...
  2. 按文档跑通一次 list_filesget_selection
  3. 需要做页面还原时,试一次 @figma-ui-restore 全流程
  4. 把坑与建议提到 Issue;有能力也欢迎 PR

收藏链接

------ 欢迎转载,注明出处与仓库链接即可。

相关推荐
今天AI了吗1 小时前
时序大模型 TimechoAI 实战:从数据接入到智能时序分析全链路指南
人工智能
AI服务老曹1 小时前
多路摄像头AI分析完整流程:硬件选型与GPU/NPU算力估算指南
人工智能
触底反弹1 小时前
🚀 浏览器里跑 1.5B 参数大模型?我用 WebGPU + DeepSeek 做到了
人工智能·面试·typescript
一心只读圣贤书1 小时前
AI 辅助前端国际化实践:从文案梳理到多语言资源治理
前端
无责任此方_修行中1 小时前
搓了一个国产大模型与 AI Agent 比价工具
前端·后端·ai编程
pearbing1 小时前
AI搜索流量密码:8个核心GEO优化打法,拉高品牌曝光优先级
人工智能·geo
品牌测评1 小时前
Token Plan平台分享|七条算力订阅路径拆解
大数据·人工智能·架构
szephyr1 小时前
腾讯云 ADP 智能体的 Skills 配置变更后没有走灰度,直接全量替换出了问题怎么定位?
java·前端·腾讯云·腾讯云adp