news 2026/9/9 12:31:31

使用 goose 接入 Figma Dev Mode MCP Server:把 Figma 设计稿一键转换为前端代码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 goose 接入 Figma Dev Mode MCP Server:把 Figma 设计稿一键转换为前端代码

使用 goose 接入 Figma Dev Mode MCP Server:把 Figma 设计稿一键转换为前端代码

【免费下载链接】goosean open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM项目地址: https://gitcode.com/GitHub_Trending/goose3/goose

这篇技术指南围绕 goose 项目的官方扩展教程(documentation/docs/mcp/figma-mcp.md)展开,讲解如何把 Figma 桌面客户端内置的Dev Mode MCP Server注册为 goose 的streamable_http远程扩展,让 goose 直接"看见"你在 Figma 中打开的图层与画板,并把设计稿转换为 React、Vue、HTML/CSS 等生产可用的前端代码。读完本文,你将掌握在 goose Desktop 与 goose CLI 两种界面下完成配置、理解其底层扩展配置格式,并能够用一句自然语言 Prompt 完成"设计稿转代码"的真实工作流。

前置条件:Figma 订阅与桌面客户端

在开始配置之前,需要先确认两个硬性前提:

  1. Figma 订阅席位:Dev Mode MCP Server 要求你在 Professional、Organization 或 Enterprise 版 Figma 计划中拥有Dev 或 Full 席位,免费版与普通 Viewer 席位无法启用。
  2. Figma 桌面应用:MCP Server 内置于桌面客户端中,因此必须安装并登录 Figma desktop app(官方文档中提供的下载渠道),浏览器版无法启动本地 MCP Server。

从架构上看,整个流程是典型的"本地 MCP 中转"模式:Figma 桌面应用在本机127.0.0.1:3845端口启动一个 MCP over Streamable HTTP 服务,goose 通过添加远程扩展的方式连接该端口,从而在会话中获得 Figma 提供的工具能力。goose 一侧并不需要安装任何 Figma 专用 SDK 或插件包。

快速安装(Quick Install)

如果你已经启用好 MCP Server,最快的方式是走一键安装:

  • goose Desktop:直接使用安装器深链goose://extension?type=streamable_http&url=http%3A%2F%2F127.0.0.1%3A3845%2Fmcp&id=figma&name=Figma&description=Convert%20Figma%20designs%20into%20code%20and%20extract%20design%20context,goose Desktop 会弹出确认对话框,点击确认即可把名为figma、类型为streamable_http、指向http://127.0.0.1:3845/mcp的扩展写入配置。
  • goose CLI:执行goose configure,在扩展类型列表中选择Remote Extension (Streamable HTTP),然后填入 Endpoint URL:
http://127.0.0.1:3845/mcp

这个goose://extension深链的 URL 拼装逻辑可以在文档站组件 documentation/src/components/GooseDesktopInstaller.tsx 中看到:当扩展类型为http时,组件会追加type=streamable_http参数,随后拼接url(经过 URL 编码)、idnamedescription等参数,并支持通过header=追加自定义请求头。也就是说,"Launch the installer" 本质上只是一次把"扩展 ID + 类型 + 端点地址 + 描述"打包成深链的快捷操作,后续落地到配置文件的仍然是标准的 Streamable HTTP 扩展记录。

完整配置步骤

第 1 步:在 Figma 桌面应用中启用 MCP Server

请先遵循 Figma 官方提供的 Guide to the Dev Mode MCP Server 完成启用。启用成功后,goose 所需的 MCP 服务会运行在:

http://127.0.0.1:3845/mcp

备选启用方式:如果按官方说明操作后在桌面应用中找不到Preferences菜单,可以尝试以下路径:

  1. 点击设计文件底部的</>切换按钮(打开开发者模式 / Dev Mode);
  2. 在右侧面板中找到并打开Enable MCP server开关。

这一步非常关键:Figma MCP Server 是随桌面应用进程运行的本地服务,它绑定在回环地址 3845 端口。goose 之所以能获取到你当前打开的文件上下文,正是因为连接的是这台本机服务,而不是云端 API。

第 2 步:把 Figma 添加为 goose 扩展

goose Desktop 图形界面

在 goose Desktop 中打开扩展管理界面,按以下参数填写并添加:

配置项
Extension IDfigma
Extension NameFigma
Typehttp(即 Streamable HTTP)
URLhttp://127.0.0.1:3845/mcp
DescriptionConvert Figma designs into code and extract design context
goose CLI 交互式配置

在终端中运行goose configure,交互流程如下(与文档组件 documentation/src/components/CLIExtensionInstructions.tsx 渲染的向导一致):

  1. 选择要配置的内容:Add Extension
  2. 选择扩展类型:Remote Extension (Streamable HTTP)(官方界面描述为 "Connect to a remote extension via MCP Streamable HTTP");
  3. 为扩展命名,例如figma
  4. 输入 Streamable HTTP endpoint URI:http://127.0.0.1:3845/mcp
  5. 设置工具超时(单位:秒),默认300秒,即示例中使用的timeout={300}
  6. 输入扩展描述:Convert Figma designs into code and extract design context
  7. 当询问Would you like to add custom headers?时选择No(本地 Figma 服务默认无需鉴权头)。
深链一键安装(Desktop)

也可以直接复用快速安装小节中的goose://extension?...深链,一步完成注册,效果与手工添加等价。

第 3 步:理解"Streamable HTTP"扩展到底在配置什么

从 goose 源码来看,Figma 这类"连到本地 HTTP 端点"的扩展统一建模为ExtensionConfig::StreamableHttp,定义见 crates/goose/src/agents/extension.rs。该变体在序列化时的类型标识为streamable_http,核心字段包括:

  • name:扩展唯一名称,用于会话中区分工具来源;
  • description:对模型可见的能力说明;
  • uri:MCP 端点地址,即http://127.0.0.1:3845/mcp
  • envs/env_keys:注入的环境变量(用于服务端需要凭据的场景);
  • headers:随 HTTP 请求携带的自定义头(用于 Bearer Token 等鉴权场景);
  • timeout:工具调用超时(秒),config/extensions.rs中定义了默认常量DEFAULT_EXTENSION_TIMEOUT = 300(见 crates/goose/src/config/extensions.rs);
  • socket:可选的 Unix domain socket 路径,用于 HTTP-over-UDS 传输(本地 Figma 服务默认走 TCP,无需配置);
  • client_id/client_secret_key/scopes:OAuth 相关字段,供需要走授权流程的远程服务使用。

goose configure与 Desktop 安装器最终都会把上述信息写入 goose 全局配置的extensions键下。写入后的 YAML 形如:

extensions: figma: type: streamable_http name: figma description: Convert Figma designs into code and extract design context uri: http://127.0.0.1:3845/mcp timeout: 300

配置的解析与持久化逻辑集中在 crates/goose/src/config/extensions.rs:扩展记录逐条反序列化为ExtensionEntry(包含enabled标志与扁平化的ExtensionConfig),解析失败或对当前平台不可用的条目会被跳过并记录日志;扩展名在写入时还会经name_to_key归一化(见 crates/goose/src/config/extensions.rs),保留字母、数字、_-,空白被剔除,其余字符转为_并统一小写。另外值得注意的是,goose 已不再支持旧的sse类型——配置加载时若发现type: sse,会输出警告'{}': SSE is unsupported, migrate to streamable_http(见 crates/goose/src/config/extensions.rs),因此 Figma 这类新接入的 MCP 一律应使用streamable_http

示例使用:把 Figma 设计稿转换成 React 代码

Figma 扩展是与 Figma 桌面应用协同工作的:它读取的是你桌面端当前打开的设计文件。典型用法包括:

  • 把 Figma 设计稿转换为生产可用的前端代码(React、Vue、HTML/CSS 等);
  • 提取设计令牌(design tokens)、变量,并生成设计系统规则;
  • 抓取设计的视觉参考(图层面板截图),用于多模态模型理解版式。

准备要转换的设计

  1. 在已启用 MCP Server 的 Figma 桌面应用中打开目标设计文件;
  2. 在图层面板(layers panel)中,右键点击任意 Frame 或 Component,选择Copy link to selection,得到形如https://www.figma.com/design/<FILE>/<NAME>?node-id=<NODE>&m=dev的深链。

提示:既可以把上面复制的 Figma 链接直接提供给 goose,也可以什么都不复制,只要 goose 会话运行时你在 Figma 桌面应用中选中了对应元素即可——MCP Server 能直接感知当前选区。

向 goose 发起 Prompt

Convert this to React: https://www.figma.com/design/B6IFM1qjwxJw5fOYJYKRl5/Buttons-?node-id=351-8&m=dev

goose 的执行过程与输出

下面是在 goose Desktop 中一次真实会话的示意(节选自官方文档):goose 先确认已有 Figma 扩展可用,再解析 URL 中的node-id,随后依次调用 Figma MCP Server 暴露的get_code(按节点、目标语言与框架生成代码)与get_image(抓取节点视觉参考)两个工具,最后基于两者的结果产出代码:

manage_extensions action, extension_name get_code nodeId, clientLanguages, clientFrameworks get_image nodeId, clientLanguages, clientFrameworks

goose 生成的 React + Tailwind 组件如下:

const imgImage1 = "http://localhost:3845/assets/e0e0f6accb741cb6cacec2697cef047a7eea7e30.png"; function Component1() { return ( <div className="relative size-full" contenteditable="false">【免费下载链接】goosean open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM项目地址: https://gitcode.com/GitHub_Trending/goose3/goose

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/9 12:31:24

基于OpenBTS 2.8的应急通讯GSM基站搭建实战

简介&#xff1a;一套基于OpenBTS 2.8的GSMS应急通讯系统代码包&#xff0c;面向需自建临时移动通信网络的开发者、应急通信团队及网络技术爱好者&#xff0c;适用于灾害救援、偏远地区信号覆盖和大型活动通信保障等场景。压缩包共2029个文件&#xff0c;大小仅4.45MB&#xff…

作者头像 李华
网站建设 2026/9/9 12:31:18

UG10.0二次开发:uc4650函数与DLL插件开发实战指南

做 UG10.0 二次开发这几年&#xff0c;我一直觉得最容易被新人忽略的&#xff0c;恰恰是那些看起来“老掉牙”的 UC 函数。比如今天要聊的 uc4650&#xff0c;它不是一个多复杂的接口&#xff0c;网上资料也少得可怜&#xff0c;但它在我维护的几个老插件和临时小工具里反复出现…

作者头像 李华
网站建设 2026/9/9 12:28:33

RustDesk 如何用 AppImageBuilder 构建 Linux AppImage 版本?

RustDesk 如何用 AppImageBuilder 构建 Linux AppImage 版本&#xff1f; 【免费下载链接】rustdesk An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer. 项目地址: https://gitcode.com/GitHub_Trending/ru/rustdesk …

作者头像 李华
网站建设 2026/9/9 12:28:30

架构图设计实战:diagrams.net绘图方法论与工程化最佳实践

前几天给一个老客户的系统做架构评审&#xff0c;对方一边翻PPT一边问我&#xff1a;"你们这套系统的核心调用链&#xff0c;图里怎么没画&#xff1f;"我低头看了两秒&#xff0c;确实没画——不是漏了&#xff0c;是因为那张图我已经画得太乱&#xff0c;根本塞不进…

作者头像 李华
网站建设 2026/9/9 12:27:45

skills:前端AI能力即服务的协议桥接层

1. “skills”不是个名词&#xff0c;而是一套前端开发者正在悄悄迁移的工程范式 最近在几个前端技术群和开源协作频道里&#xff0c;频繁看到有人发类似这样的命令&#xff1a; npx skill add dietrichgebert/ponytail 、 npx skills 、 skills.sh &#xff0c;甚至有人…

作者头像 李华
网站建设 2026/9/9 12:27:27

同一个缩写的三个世界:内存纠错、MBIST ECC与SAP ECC年结全解析

同样三个字母&#xff0c;放在不同行业里往往是完全不同的东西。搜“ECC”这个词的人&#xff0c;有做服务器运维的&#xff0c;有做芯片设计验证的&#xff0c;还有在企业里做财务或ERP实施的&#xff0c;大家都觉得自己搜到了正确答案&#xff0c;结果点开内容后一头雾水。“…

作者头像 李华