SuperAPI AI 工具集

figma-automation

设计与创作

查看项目

更新于 10-15 07:58

技能介绍

用途

Figma Automation 用于通过 Rube MCP(Composio 的 Figma 工具包)自动化执行 Figma 相关任务,包括文件与组件读取、图片导出、设计令牌提取、评论与版本管理,以及团队项目浏览。

前置条件

  • 必须已连接 Rube MCP(RUBE_SEARCH_TOOLS 可用)。
  • 需通过 RUBE_MANAGE_CONNECTIONS 建立并激活 Figma 连接(toolkit 为 figma)。
  • 每次操作前应先调用 RUBE_SEARCH_TOOLS 获取当前工具 schema。

设置步骤

  1. 获取 Rube MCP:在客户端配置中添加 MCP 服务器地址 https://rube.app/mcp ,无需 API 密钥。
  2. 确认 RUBE_SEARCH_TOOLS 有响应,以验证 Rube MCP 可用。
  3. 调用 RUBE_MANAGE_CONNECTIONS,toolkit 设为 figma。
  4. 若连接状态不是 ACTIVE,按返回的授权链接完成 Figma 授权。
  5. 确认连接状态为 ACTIVE 后再运行工作流。

主要能力与工作流

1. 获取文件数据与组件

适用场景:检查 Figma 设计文件或提取组件信息。

工具顺序:

  • FIGMA_DISCOVER_FIGMA_RESOURCES:从 Figma URL 提取 ID(前置)。
  • FIGMA_GET_FILE_JSON:获取文件数据(默认简化)(必需)。
  • FIGMA_GET_FILE_NODES:获取特定节点数据(可选)。
  • FIGMA_GET_FILE_COMPONENTS:列出已发布组件(可选)。
  • FIGMA_GET_FILE_COMPONENT_SETS:列出组件集(可选)。

关键参数:

  • file_key:来自 URL 的文件键(如 figma.com/design/abc123XYZ/... 中的 abc123XYZ)。
  • ids:逗号分隔的节点 ID(不是数组)。
  • depth:树遍历深度(2 表示页面和顶层子级)。
  • simplify:True 为 AI 友好格式(体积减少 70% 以上)。

注意事项:

  • 仅支持 Design 文件;FigJam 白板和 Slides 会返回 400 错误。
  • ids 必须是逗号分隔字符串,不是数组。
  • URL 中节点 ID 可能为短横线格式(1-541),API 需要冒号格式(1:541)。
  • 过宽的 ids/depth 可能触发超大负载(413);应缩小范围或降低深度。
  • 响应数据可能在 data_preview 而非 data 中。

2. 导出与渲染图片

适用场景:将设计资产导出为图片。

工具顺序:

  • FIGMA_GET_FILE_JSON:查找要导出的节点 ID(前置)。
  • FIGMA_RENDER_IMAGES_OF_FILE_NODES:将节点渲染为图片(必需)。
  • FIGMA_DOWNLOAD_FIGMA_IMAGES:下载渲染后的图片(可选)。
  • FIGMA_GET_IMAGE_FILLS:获取图片填充 URL(可选)。

关键参数:

  • file_key:文件键。
  • ids:逗号分隔的节点 ID。
  • format:'png'、'svg'、'jpg' 或 'pdf'。
  • scale:PNG/JPG 的缩放因子(0.01-4.0)。
  • images:用于下载的 {node_id, file_name, format} 数组。

注意事项:

  • 图片以 node_id 到 URL 的映射返回;部分 ID 可能为 null(渲染失败)。
  • URL 是临时的(约 30 天有效)。
  • 图片上限为 32 兆像素;更大的请求会自动缩小。

3. 提取设计令牌

适用场景:为开发提取设计令牌。

工具顺序:

  • FIGMA_EXTRACT_DESIGN_TOKENS:提取颜色、排版、间距(必需)。
  • FIGMA_DESIGN_TOKENS_TO_TAILWIND:转换为 Tailwind 配置(可选)。

关键参数:

  • file_key:文件键。
  • include_local_styles:包含本地样式(默认 true)。
  • include_variables:包含 Figma 变量。
  • tokens:提取得到的完整令牌对象(用于 Tailwind 转换)。

注意事项:

  • Tailwind 转换需要完整令牌对象,包括 total_tokens 和 sources。
  • 在传给转换前不要剥离提取响应中的字段。

4. 管理评论与版本

适用场景:查看或添加评论,或检查版本历史。

工具顺序:

  • FIGMA_GET_COMMENTS_IN_A_FILE:列出文件所有评论(可选)。
  • FIGMA_ADD_A_COMMENT_TO_A_FILE:添加评论(可选)。
  • FIGMA_GET_REACTIONS_FOR_A_COMMENT:获取评论反应(可选)。
  • FIGMA_GET_VERSIONS_OF_A_FILE:获取版本历史(可选)。

关键参数:

  • file_key:文件键。
  • as_md:以 Markdown 格式返回评论。
  • message:评论文本。
  • comment_id:用于反应的评论 ID。

注意事项:

  • 评论可通过 client_meta 定位到特定节点。
  • 回复评论不能嵌套(仅一层回复)。

5. 浏览项目与团队

适用场景:列出团队项目或文件。

工具顺序:

  • FIGMA_GET_PROJECTS_IN_A_TEAM:列出团队项目(可选)。
  • FIGMA_GET_FILES_IN_A_PROJECT:列出项目文件(可选)。
  • FIGMA_GET_TEAM_STYLES:列出团队已发布样式(可选)。

关键参数:

  • team_id:来自 URL 的团队 ID(figma.com/files/team/TEAM_ID/...)。
  • project_id:项目 ID。

注意事项:

  • 团队 ID 无法通过程序获取;需从 Figma URL 提取。
  • 团队端点仅返回已发布的样式/组件。

常见模式

URL 解析

从 Figma URL 提取 ID:

  1. 用 figma_url 调用 FIGMA_DISCOVER_FIGMA_RESOURCES。
  2. 从响应中提取 file_key、node_id、team_id。
  3. 将短横线格式节点 ID(1-541)转换为冒号格式(1:541)。

节点遍历

  1. 以 depth=2 调用 FIGMA_GET_FILE_JSON 获取概览。
  2. 从响应中识别目标节点。
  3. 用特定 ids 和更高 depth 再次调用获取详情。

已知限制

  • 文件类型支持:GET_FILE_JSON 仅支持 Design 文件(figma.com/design/ 或 figma.com/file/);不支持 FigJam 白板(figma.com/board/)和 Slides(figma.com/slides/)。
  • 节点 ID 格式:URL 使用短横线格式 node-id=1-541;API 使用冒号格式 1:541。

快速参考

任务 工具 Slug 关键参数
解析 URL FIGMA_DISCOVER_FIGMA_RESOURCES figma_url
获取文件 JSON FIGMA_GET_FILE_JSON file_key, ids, depth
获取节点 FIGMA_GET_FILE_NODES file_key, ids
渲染图片 FIGMA_RENDER_IMAGES_OF_FILE_NODES file_key, ids, format
下载图片 FIGMA_DOWNLOAD_FIGMA_IMAGES file_key, images
获取组件 FIGMA_GET_COMPONENT file_key, node_id
文件组件 FIGMA_GET_FILE_COMPONENTS file_key
组件集 FIGMA_GET_FILE_COMPONENT_SETS file_key
设计令牌 FIGMA_EXTRACT_DESIGN_TOKENS file_key
令牌转 Tailwind FIGMA_DESIGN_TOKENS_TO_TAILWIND tokens
文件评论 FIGMA_GET_COMMENTS_IN_A_FILE file_key
添加评论 FIGMA_ADD_A_COMMENT_TO_A_FILE file_key, message
文件版本 FIGMA_GET_VERSIONS_OF_A_FILE file_key
团队项目 FIGMA_GET_PROJECTS_IN_A_TEAM team_id
项目文件 FIGMA_GET_FILES_IN_A_PROJECT project_id
团队样式 FIGMA_GET_TEAM_STYLES team_id
文件样式 FIGMA_GET_FILE_STYLES file_key
图片填充 FIGMA_GET_IMAGE_FILLS file_key