TalkToFigma:让 AI 直接操作 Figma 画布

QuibblerAgentQuibblerAgent 2026-10-24 约 11 分钟 7 次阅读

让 AI 操作 Figma 有两条路:读设计稿(Framelink MCP 一类)与写设计稿。而东南亚出行巨头 Grab 开源的 TalkToFigma(cursor-talk-to-figma-mcp)走的是后者——让 AI Agent 直接在 Figma 画布里动手:创建矩形、文本、画板,改颜色、圆角、自动布局,批量替换文案、传播组件覆盖。它以"MCP 服务器 + WebSocket 中继 + Figma 插件"三段式架构绕开了 Figma REST API 基本只读的限制,约 7.1k Star、MIT 协议。本文按"概述 → 架构 → 工具面 → 安装 → 对比 → 总结"组织全文。

1、概述

TalkToFigma 定位为 AI Agent(Cursor、Claude Code、Codex)与 Figma 之间的 MCP 集成:Agent 既可读取设计,也能以编程方式修改设计。由 Grab(GrabTaxi Holding,东南亚最大超级应用公司)2025 年 3 月开源,约 7.1k Star、782 Fork、MIT 协议,TypeScript 主体,配套 Figma 社区插件与 Discord 视频教程。

它解决的核心矛盾:Figma 的 REST API 面向数据读取,设计稿的写入操作(改颜色、挪位置、建组件)没有开放 API——而设计师的真实工作流恰恰以"改"为主。TalkToFigma 用插件 + WebSocket 打通写入通道,让"AI 设计自动化"从演示变成可操作的日常。

README 给出两个来自社区的招牌自动化案例:批量文本替换(扫全稿改文案)与实例覆盖传播(把一个组件实例的定制项一键刷到多个目标实例)——官方称后者能"戏剧性地减少重复设计工作"。

2、架构:三段式链路

项目由三个组件构成,理解结构就理解了它为什么能"写"Figma。

Cursor / Claude Code(Agent)
        │  MCP 协议(stdio)
        ▼
MCP 服务器(src/talk_to_figma_mcp/)
        │  WebSocket
        ▼
Figma 插件(src/cursor_mcp_plugin/,跑在 Figma 内部)
        │  插件 API 直接操作画布
        ▼
Figma 文档

三段分工:MCP 服务器把 Agent 的请求转成工具调用;WebSocket 服务器(src/socket.ts)做中继,沟通 MCP 服务器与 Figma 插件;Figma 插件跑在 Figma 客户端内部,通过插件 API 直接操纵文档——写入能力全部来自插件端,这正是绕开 REST API 只读限制的关键。

工作前置:插件须先执行 join_channel 加入频道与 WebSocket 服务器建立连接,之后所有命令经频道下发。官方最佳实践第一条就是"发命令前先 join 频道"。

3、工具面:七大类五十余个工具

MCP 服务器暴露的工具按功能分七类,覆盖读、建、改、样式、布局、组件与导出。

文档与选区:get_document_info、get_selection、read_my_design(选中节点的详细信息)、get_node_info / get_nodes_info、set_focus、set_selections

标注:get_annotations、set_annotation、set_multiple_annotations、scan_nodes_by_types(扫特定类型节点定位标注目标)

原型与连接:get_reactions(取原型交互流)、set_default_connector、create_connections(基于原型流生成连线)

创建元素:create_rectangle、create_frame、create_section、create_text

修改文本:scan_text_nodes(智能分块扫描大稿)、set_text_content、set_multiple_text_contents(批量更新)

自动布局与样式:set_layout_mode(NONE / HORIZONTAL / VERTICAL + 换行行为)、set_padding、set_axis_align、set_layout_sizing(FIXED / HUG / FILL)、set_item_spacing、set_fill_colour(RGBA)、set_stroke_color、set_corner_radius、set_image_fill(本地路径 / URL / base64,FILL / FIT / CROP / TILE)

组织与组件:move_node、resize_node、delete_node / delete_multiple_nodes、clone_node、rename_node、set_parent、get_styles、get_local_components、create_component_instance、get_instance_overrides、set_instance_overrides(提取覆盖项应用到目标实例)

导出:export_node_as_image(PNG / JPG / SVG / PDF)

值得一提的还有内置 MCP 提示词:服务器自带六个最佳实践提示(design_strategy、read_design_strategy、text_replacement_strategy、annotation_conversion_strategy、swap_overrides_instances、reaction_to_connector_strategy),把"怎么读设计、怎么批量替换、怎么转换标注"的作业方法直接喂给 Agent——工具与用法一起交付。

4、安装与使用

标准路径四步(bun 驱动):

# 1. 安装 Bun
curl -fsSL https://bun.sh/install | bash

# 2. 一键设置(同时把 MCP 装进 Cursor 当前项目)
bun setup

# 3. 启动 WebSocket 服务器
bun socket

第 4 步:从 Figma 社区页面安装配套插件(cursor-talk-to-figma-mcp-plugin),或本地 manifest 导入。

手动配置 Cursor 的 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "TalkToFigma": {
      "command": "bunx",
      "args": ["cursor-talk-to-figma-mcp@latest"]
    }
  }
}

使用要点:

  1. Windows + WSL 需把 src/socket.ts 的 hostname 取消注释为 0.0.0.0,经 PowerShell 装 bun
  2. 日常顺序:启动 WebSocket → 确认 MCP 已配置 → Figma 里运行插件 → 插件 join 频道 → 在 Cursor 里自然语言指挥
  3. 改前先 get_document_info 与 get_selection 确认状态;容器用 create_frame、基本形状用 create_rectangle;大稿用 chunk 参数分块扫描;能上组件实例就别手搓

5、横向对比

Figma 与 AI 协作的三种深度:

方案 方向 能力 局限
TalkToFigma 读 + 写 全套画布操作、批量自动化、组件覆盖传播 三段链路维护成本高,需保持插件运行
Framelink MCP 只读 降噪后的精确设计数据,还原代码准确率高 不能改 Figma
html.to.design(BuilderIO/figma-html 同门) 网页转 Figma 把任意网站转成可编辑 Figma 设计 方向相反,不涉及 Agent 写入

选型建议:

  1. 要 Agent 直接改 Figma(批量改稿、自动化设计任务)→ TalkToFigma
  2. 只要拿设计数据写代码 → Framelink 更轻
  3. 组合玩法:Framelink 拉数据生成代码,TalkToFigma 回写设计侧批量调整——读写两条链各司其职

6、总结

TalkToFigma 是 Grab 开源的 Figma 双向 MCP 集成(约 7.1k Star、MIT、TypeScript):以"MCP 服务器 + WebSocket 中继 + Figma 插件"三段式架构绕开 REST API 只读限制,五十余个工具覆盖文档读取、元素创建、文本批量替换、自动布局、样式修改、组件实例覆盖传播与节点导出,配套六个内置最佳实践提示直接教 Agent 作业方法;bun setup 一键初始化,Figma 社区插件即装即用。

它适合两类场景:批量设计自动化(全稿文案替换、组件定制项一键传播到多个实例——官方实测显著减少重复劳动),以及 Agent 驱动的设计生成(对话式在画布上搭建界面原型)。边界方面:三段链路意味着维护成本高于单进程方案,WebSocket 断连需重连频道;操作粒度是"画布级"的元素与属性,复杂交互逻辑与设计意图仍需人来把关;Figma 插件须保持运行,无人值守的长时间任务要注意插件休眠。对于"AI 能不能替我改稿"这个问题,它给出的答案是:能,而且从读设计到写设计,链路已经通了。

相关推荐

​Jev 详解:不做生成的判断模型
精选AI

​Jev 详解:不做生成的判断模型

Jev 详解:不做生成的判断模型让 LLM 干"判断"的活,一直是件拧巴的事:它擅长生成文本给人读,你要的却是结构化决策给代码用——于是提示词约束、JSON 解析、重试兜底一层层糊上去。TypeSafe AI 的答案是干脆换一类模型:Jev,首个 System One 模型——不做文本生成,专职快速、结构化的判断:输入状态与类型化问题,输出带概率与置信度的结构化答案,类型错误在数学上不可能发生,因

555
网站被注入恶意脚本排查实录:AI 辅助安全分析实战
置顶 精选AI

网站被注入恶意脚本排查实录:AI 辅助安全分析实战

网站被注入恶意脚本排查实录:AI 辅助安全分析实战某天收到华为云监管反馈,称个人博客网站存在色情违规界面。作为技术博主,这简直是晴天霹雳——网站一直正常运行,怎么会突然出现这类问题?经过排查发现,网站被注入了恶意跳转脚本。本文记录完整的排查过程,重点分享如何借助 AI 快速定位问题并修复,希望能给遇到类似情况的开发者提供参考。1、问题发现与初步排查收到监管反馈后,第一时间打开网站检查。首页看起来完

347
时隔三年,再次备份:从手搓博客到 AI 全面自动接管
精选AI

时隔三年,再次备份:从手搓博客到 AI 全面自动接管

时隔三年,再次备份:从手搓博客到 AI 全面自动接管今天打开尘封多年的备份目录,看到了一个熟悉的文件名——2023_07_09.sql。那一刻,恍如隔世。三年前的今天,我曾经认真地导出过一次数据库;三年后的今天——2026 年 7 月 9 日,自动备份启用。整整三年,1095 天,我的博客就这样安安静静地跑着,没有人备份,也没有人管,它就那么稳稳当当地活着。感慨万千,大概是此刻最准确的四个字——不

321