摘要
1) 一句话总结
这是一个基于 MCP 协议的开源集成项目,通过 WebSocket 桥接 Cursor AI 与 Figma,使开发者能够利用 AI 编程式地读取、操作和修改 Figma 设计稿。
2) 核心要点
- 技术架构:采用 TypeScript 和 Bun 构建,通过 WebSocket 服务器连接 Cursor 的 MCP 服务器与 Figma 插件,实现三端实时通信。
- 开源信息:项目采用 MIT 协议开源,主要源自 Grab 和 Sonny Lazuardi 的 GitHub 仓库。
- 节点与样式控制:支持通过指令获取节点信息、创建元素(矩形、画框、文本),并可调整自动布局(水平/垂直、间距、对齐)及样式(颜色、描边、圆角)。
- 文本与注释管理:针对大型设计稿支持智能分块扫描,可实现文本的批量查找与替换;支持将旧版手动注释批量转换为支持 Markdown 的 Figma 原生注释。
- 组件与原型同步:支持提取组件实例的覆盖属性(Overrides)并一键同步到多个目标实例;可提取原型交互逻辑并用 FigJam 连接线可视化为流程图。
- 内置 AI 策略:提供多种内置 MCP 提示词(Prompts),专门指导 AI 执行设计读取、文本替换、注释转换等复杂任务。
- 使用流程:需本地启动 WebSocket 服务器,在 Cursor 中配置 MCP,并在 Figma 中运行插件加入特定频道(Channel)以建立连接。
3) 风险与不足
- 图像导出限制:目前的图像导出功能(PNG/JPG/SVG/PDF)支持有限,仅能以 Base64 文本形式返回图像数据。
- 操作前置依赖:发送任何命令前必须先加入通信频道;在创建 FigJam 连接线之前,必须先设置默认的连接器样式。
- 异常与状态验证:所有命令均可能抛出异常,官方建议在执行修改前后,必须调用相关接口(如
get_selection或get_node_info)来确认和验证当前状态。 - WSL 兼容性问题:在 Windows WSL 环境下使用时,需要手动修改 WebSocket 源码,放开
0.0.0.0的主机名绑定限制。
功能与定位
这是一个基于模型上下文协议(MCP)的集成项目,用于连接 Cursor AI 和 Figma。它允许 Cursor 的 Agentic AI 与 Figma 进行通信,使开发者能够通过 AI 读取设计稿并对其进行编程式修改。
典型使用场景
- 批量文本替换:在大型设计稿中批量查找并替换文本内容。
- 组件实例属性同步(Override Propagation):将源组件实例的覆盖属性(Overrides)一键同步到多个目标实例,大幅减少重复性设计工作。
- 旧版注释转换:扫描设计稿中的旧版手动注释(如数字标记和描述),并将其批量转换为 Figma 的原生注释。
- 原型连线可视化:提取原型交互逻辑,并使用 FigJam 连接线将其可视化为清晰的流程图。
核心功能
- 文档与节点操作:获取当前文档、选中项或特定节点的详细信息;支持设置焦点、选中多个节点以及移动、调整大小、克隆和批量删除节点。
- 元素创建:支持通过指令创建矩形、画框(Frame)和自定义字体的文本节点。
- 自动布局与样式调整:
- 设置自动布局模式(水平/垂直)、内边距、对齐方式、尺寸模式(FIXED, HUG, FILL)及子元素间距。
- 修改节点的填充色(RGBA)、描边颜色/粗细和圆角半径。
- 文本与注释管理:
- 支持智能分块扫描大型设计稿中的文本,支持单条或批量更新文本内容。
- 获取、创建和批量更新支持 Markdown 格式的注释。
- 组件与样式:获取本地样式和组件信息,创建组件实例,提取并应用实例的覆盖属性。
- 原型与连接:获取带有视觉高亮动画的原型交互(Reactions),设置默认连接器样式,并基于原型流创建 FigJam 连接线。
- 内置 MCP 提示词(Prompts):提供多种内置策略提示词,指导 AI 执行复杂任务(如设计读取策略、文本替换策略、注释转换策略、组件属性替换策略等)。
特色与差异点
- 三端通信架构:系统由 TypeScript MCP 服务器、Figma 插件和 WebSocket 服务器组成,通过 WebSocket 桥接实现 Cursor 与 Figma 的实时交互。
- AI 驱动的编程式设计:将 Figma 的底层操作能力直接暴露给 Cursor AI,使开发者可以通过自然语言或代码指令直接操控 UI 设计。
- 针对大型设计的优化:在文本扫描等操作中支持智能分块(Chunking),并提供批量操作接口(如批量更新文本、批量删除节点)以提升执行效率。
使用方式概览
- 使用 Bun 安装并启动本地 WebSocket 服务器。
- 在 Cursor 的 MCP 配置文件中添加并安装该服务器。
- 在 Figma 中安装并运行对应的 Cursor MCP 插件。
- 通过 Figma 插件加入特定频道(Channel)连接到 WebSocket 服务器,随后即可在 Cursor 中通过 MCP 工具与 Figma 交互。
限制与注意事项
- 导出限制:目前的图像导出功能(支持 PNG、JPG、SVG、PDF)支持有限,当前仅能以 Base64 文本形式返回图像数据。
- 操作前置条件:
- 发送任何命令前必须先加入通信频道(Channel)。
- 创建连接线前,必须先设置默认的连接器样式。
- 异常处理:所有命令均可能抛出异常,官方建议在执行修改前先使用
get_selection或get_document_info确认当前状态,并在操作后使用get_node_info验证更改。 - Windows WSL 支持:在 Windows WSL 环境下使用时,需在 WebSocket 源码配置中手动放开
0.0.0.0的主机名绑定限制。