用途
Figma Automation 用于通过 Rube MCP(Composio 的 Figma 工具包)自动化执行 Figma 相关任务,包括文件与组件读取、图片导出、设计令牌提取、评论与版本管理,以及团队项目浏览。
前置条件
- 必须已连接 Rube MCP(RUBE_SEARCH_TOOLS 可用)。
- 需通过 RUBE_MANAGE_CONNECTIONS 建立并激活 Figma 连接(toolkit 为 figma)。
- 每次操作前应先调用 RUBE_SEARCH_TOOLS 获取当前工具 schema。
设置步骤
- 获取 Rube MCP:在客户端配置中添加 MCP 服务器地址 https://rube.app/mcp ,无需 API 密钥。
- 确认 RUBE_SEARCH_TOOLS 有响应,以验证 Rube MCP 可用。
- 调用 RUBE_MANAGE_CONNECTIONS,toolkit 设为 figma。
- 若连接状态不是 ACTIVE,按返回的授权链接完成 Figma 授权。
- 确认连接状态为 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:
- 用 figma_url 调用 FIGMA_DISCOVER_FIGMA_RESOURCES。
- 从响应中提取 file_key、node_id、team_id。
- 将短横线格式节点 ID(1-541)转换为冒号格式(1:541)。
节点遍历
- 以 depth=2 调用 FIGMA_GET_FILE_JSON 获取概览。
- 从响应中识别目标节点。
- 用特定 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 |