awdr74100/figwright · 上手攻略
- 仓库:awdr74100/figwright
- 链接:https://github.com/awdr74100/figwright
- 分类:AI Coding · 设计协同
- 作者:Tom
- 更新:2026-09-30
一、是什么
Figwright 是一个免费、双向的 Figma MCP(Model Context Protocol)服务器,让 AI 编程代理(Claude Code、Cursor、Codex 等 MCP 客户端)可以直接读写 Figma 设计文件——而不只是"查看"设计图。
核心原理:Figwright 在你的机器上本地运行一个 MCP 服务器,通过 WebSocket 与 Figma 桌面端的插件通信。整个链路跑在本地,不上传任何设计数据。
关键特点: - 免费(Figma 官方 Dev Mode MCP 需要付费 Dev Mode 席位;Figwright 只需免费桌面版) - 双向:不是只读的——115 个工具覆盖读写 Figma 画布 - Provider-first 代码生成:自动识别你的技术栈(React/Vue/纯 CSS 等)和现有组件,生成复用你已有 tokens 和 icons 的代码 - 多代理支持:多个 AI 代理可以同时工作,每个代理操作各自独立的 Figma 文件
二、解决什么问题
传统 Figma + AI 编程流程的痛点:
- 只读限制:官方 Figma MCP(或 Figma 官方 Dev Mode MCP)大多是读图,AI 只能"参考"设计,无法反向写回
- 付费门槛:Figma 官方 MCP 需要 Dev Mode 付费席位(月费 12~15 美元起)
- 代码脱节:即使能读 Figma,生成的代码也是通用 HTML/CSS,与实际项目组件/tokens 脱节
- 代理冲突:多个 AI 代理操作同一个 Figma 文件时,容易互相覆盖彼此的改动
Figwright 通过本地 WebSocket relay + 115 个 MCP 工具,让 AI 代理真正成为 Figma 的"协作者"而非旁观者。
三、快速安装
环境要求
- Node.js:20.19+ 或 22.12+(⚠️ 注意:Node 18/21 和 22.0~22.11 不支持)
- Figma 桌面端:免费版足够(必须使用桌面端,因为插件需要导入)
- MCP 客户端:Claude Code、Cursor、Codex 或其他支持 MCP 的客户端
步骤 1:配置 MCP 客户端
在项目的 .mcp.json 文件中添加(以 Claude Code 为例):
{
"mcpServers": {
"figwright": {
"command": "npx",
"args": ["-y", "@figwright/mcp@latest"]
}
}
}
⚠️ 如果遇到
command not found错误,说明客户端的 PATH 里找不到npx。需要用绝对路径:json { "mcpServers": { "figwright": { "command": "/Users/you/.local/share/fnm/node-versions/v24.x.x/installation/bin/npx", "args": ["-y", "@figwright/mcp@latest"] } } }在终端运行which npx获取本机路径。
步骤 2:安装 Figma 插件
官方暂未上架 Figma Community,需手动导入:
- 进入 GitHub Releases 页面 下载最新插件 zip 并解压
- Figma 桌面端:Menu → Plugins → Development → Import plugin from manifest… → 选择解压出的
manifest.json
步骤 3:验证连接
- 在 Figma 中打开:Plugins → Development → Figwright,插件面板应显示
Connected - 在 AI 客户端中运行:
ping若返回成功响应,说明链路打通。
步骤 4:(可选)安装 Skills 以增强 AI 代理工作流
npx skills add awdr74100/figwright/skills
Skills 包含两个工作流:
| Skill | 用途 |
|---|---|
| figma-codegen | 把 Figma 选区转为框架感知代码,复用现有组件和 tokens |
| figma-build | 根据代码或描述在 Figma 中构建设计,复用文件已有组件和样式 |
⚠️ Skills 需要 @figwright/mcp 服务器已连接,独立安装 Skills 不产生任何工具。
四、核心用法
读取设计上下文(Read)
当选中 Figma 中某个 frame 后,告诉代理:
Code this Figma selection as a React component.
代理会自动调用 get_design_context 获取结构化数据,结合 component_map / token_map / icon_map 将 Figma 数据对接到你的代码库。
核心读取工具:
| 工具 | 作用 |
|---|---|
get_design_context |
获取忠实、去重的设计上下文(布局、字体、变量、组件) |
get_screenshot |
获取视觉参考截图 |
get_component_map |
将 Figma 组件映射到代码库对应组件 |
get_token_map |
将 Figma 变量/Token 映射到代码库 |
get_icon_map |
将 Figma 图标映射到代码库已有图标 |
design_diff |
对比设计变更与代码基准,只更新受影响的部分 |
写入 Figma(Write)
告诉代理:
Build a pricing section in Figma from this spec.
代理调用写工具直接在画布上创建和编辑元素。
核心写入工具:
| 工具 | 作用 |
|---|---|
create_frame / edit_frame |
创建和编辑 Frame |
create_text / edit_text |
创建和编辑文本 |
create_shape / edit_shape |
创建和编辑图形 |
set_auto_layout |
设置自动布局 |
create_component / edit_component |
创建/编辑组件(含 boolean/text/instance-swap 属性) |
set_variables |
操作 Figma 变量 |
apply_batch |
批量应用多个编辑,一次性落盘 |
create_motion |
创建 Motion 动画(关键帧、预设、时间线) |
典型命令速查
# 查看所有可用工具(MCP 客户端连接时会列出完整目录)
# 推荐先确认工具列表是最新的权威目录
ping
# 获取设计上下文(选区)
get_design_context
# 获取截图
get_screenshot
# 批量写入(一次性应用多个编辑)
apply_batch
五、典型适用场景
- Design-to-Code 自动化:设计师在 Figma 调好 UI,AI 代理直接生成对应 React/Vue 组件代码,复用项目已有 tokens 和图标
- Code-to-Design 自动化:产品经理/设计师给出 PRD 描述,AI 代理在 Figma 中快速生成设计稿
- 多代理并行 UI 开发:多个 AI 代理各自操作独立的 Figma 文件,并行开发不同页面/模块
- 设计系统维护:设计 token 变更后,AI 代理自动对比
design_diff并只更新受影响的代码文件 - AI 设计审查:AI 代理读取 Figma 设计,验证实现代码是否忠实于原始设计意图
六、坑与注意
⚠️ 坑点清单
-
Node.js 版本严格限制:仅支持 Node 20.19+ 和 22.12+;Node 18/21 和 22.0~22.11 均不兼容。如果你的项目用其他 Node 版本运行,Figwright server 本身需要独立环境(npx 方式不受项目 Node 版本影响,但环境要装对)
-
必须使用 Figma 桌面端:不支持 Figma Web 版,因为插件需要本地导入和 WebSocket 通信。Figma 免费桌面版即可,无需付费 Dev Mode
-
插件不在 Figma Community:每次更新需手动从 GitHub Releases 下载新 zip 并重新导入,比官方市场插件多一步
-
npx不在 PATH 时连接失败:AI 客户端通常在隔离环境运行,如果找不到npx会报command not found。必须使用绝对路径或配置env.PATH -
多代理写同一文件会冲突:虽然支持多代理,但"一个代理对应一个 Figma 文件"。同一文件被两个代理同时写会互相覆盖——切换标签页不会自动隔离代理
-
写权限依赖 Figma 文件权限:Figma 只读权限下,AI 代理只能读不能写
-
设计变更追踪需手动保存基准:
design_diff需要先保存一个代码基准才能对比,没有自动建立基准的机制 -
Skills 需要手动
npx skills add:Skills 不是装好 Figwright 就自动加载的,需要单独安装且仅在 MCP 连接状态下生效
七、与同类对比
| Figwright | Figma 官方 Dev Mode MCP | Figma REST API + 代理 | |
|---|---|---|---|
| 费用 | 免费 | 需 Dev Mode 付费席位 | 免费 |
| 读写方向 | 双向(读+写) | 主要读取(设计审查) | 需自己封装,读写都复杂 |
| 工具数量 | 115 个 | 较少 | 需要自己实现 |
| 代码生成质量 | Provider-aware,复用项目组件/tokens | 通用代码生成 | 无 |
| 多代理支持 | ✅ 原生支持 | ❌ | ❌ |
| 本地运行 | ✅ 完全本地 | ❌ | ❌(需云端中转) |
| 无需 Figma 桌面端 | ❌ 必须桌面端 | ✅ 官方支持 | ✅ |
| 技能生态 | Skills 体系(可 fork/安装) | 无 | 无 |
结论:如果你是 AI Coding 深度用户(Claude Code / Cursor),需要 AI 代理真正写回 Figma 而不是只读设计,Figwright 是目前免费生态里最完整的方案。Figma 官方 MCP 更适合纯"设计到代码"的单向场景,以及不需要 AI 写回的情况。
八、一句话推荐结论
在 Figma 免费版上实现 AI 代理双向读写设计——Figwright 是目前门槛最低、能力最完整的开源方案,尤其适合 Design-to-Code 自动化流程和 Design System 维护场景。