Figma Automation via Rube MCP
Automate Figma operations through Composio's Figma toolkit via Rube MCP.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Figma connection via
RUBE_MANAGE_CONNECTIONS with toolkit figma
- Always call
RUBE_SEARCH_TOOLS first to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLS responds
- Call
RUBE_MANAGE_CONNECTIONS with toolkit figma
- If connection is not ACTIVE, follow the returned auth link to complete Figma auth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Get File Data and Components
When to use: User wants to inspect Figma design files or extract component information
Tool sequence:
FIGMA_DISCOVER_FIGMA_RESOURCES - Extract IDs from Figma URLs [Prerequisite]
FIGMA_GET_FILE_JSON - Get file data (simplified by default) [Required]
FIGMA_GET_FILE_NODES - Get specific node data [Optional]
FIGMA_GET_FILE_COMPONENTS - List published components [Optional]
FIGMA_GET_FILE_COMPONENT_SETS - List component sets [Optional]
Key parameters:
file_key: File key from URL (e.g., 'abc123XYZ' from figma.com/design/abc123XYZ/...)
ids: Comma-separated node IDs (NOT an array)
depth: Tree traversal depth (2 for pages and top-level children)
simplify: True for AI-friendly format (70%+ size reduction)
Pitfalls:
- Only supports Design files; FigJam boards and Slides return 400 errors
ids must be a comma-separated string, not an array
- Node IDs may be dash-formatted (1-541) in URLs but need colon format (1:541) for API
- Broad ids/depth can trigger oversized payloads (413); narrow scope or reduce depth
- Response data may be in
data_preview instead of data
2. Export and Render Images
When to use: User wants to export design assets as images
Tool sequence:
FIGMA_GET_FILE_JSON - Find node IDs to export [Prerequisite]
FIGMA_RENDER_IMAGES_OF_FILE_NODES - Render nodes as images [Required]
FIGMA_DOWNLOAD_FIGMA_IMAGES - Download rendered images [Optional]
FIGMA_GET_IMAGE_FILLS - Get image fill URLs [Optional]
Key parameters:
file_key: File key
ids: Comma-separated node IDs to render
format: 'png', 'svg', 'jpg', or 'pdf'
scale: Scale factor (0.01-4.0) for PNG/JPG
images: Array of {node_id, file_name, format} for downloads
Pitfalls:
- Images return as node_id-to-URL map; some IDs may be null (failed renders)
- URLs are temporary (valid ~30 days)
- Images capped at 32 megapixels; larger requests auto-scaled down
3. Extract Design Tokens
When to use: User wants to extract design tokens for development
Tool sequence:
FIGMA_EXTRACT_DESIGN_TOKENS - Extract colors, typography, spacing [Required]
FIGMA_DESIGN_TOKENS_TO_TAILWIND - Convert to Tailwind config [Optional]
Key parameters:
file_key: File key
include_local_styles: Include local styles (default true)
include_variables: Include Figma variables
tokens: Full tokens object from extraction (for Tailwind conversion)
Pitfalls:
- Tailwind conversion requires the full tokens object including total_tokens and sources
- Do not strip fields from the extraction response before passing to conversion
4. Manage Comments and Versions
When to use: User wants to view or add comments, or inspect version history
Tool sequence:
FIGMA_GET_COMMENTS_IN_A_FILE - List all file comments [Optional]
FIGMA_ADD_A_COMMENT_TO_A_FILE - Add a comment [Optional]
FIGMA_GET_REACTIONS_FOR_A_COMMENT - Get comment reactions [Optional]
FIGMA_GET_VERSIONS_OF_A_FILE - Get version history [Optional]
Key parameters:
file_key: File key
as_md: Return comments in Markdown format
message: Comment text
comment_id: Comment ID for reactions
Pitfalls:
- Comments can be positioned on specific nodes using client_meta
- Reply comments cannot be nested (only one level of replies)
5. Browse Projects and Teams
When to use: User wants to list team projects or files
Tool sequence:
FIGMA_GET_PROJECTS_IN_A_TEAM - List team projects [Optional]
FIGMA_GET_FILES_IN_A_PROJECT - List project files [Optional]
FIGMA_GET_TEAM_STYLES - List team published styles [Optional]
Key parameters:
team_id: Team ID from URL (figma.com/files/team/TEAM_ID/...)
project_id: Project ID
Pitfalls:
- Team ID cannot be obtained programmatically; extract from Figma URL
- Only published styles/components are returned by team endpoints
Common Patterns
URL Parsing
Extract IDs from Figma URLs:
1. Call FIGMA_DISCOVER_FIGMA_RESOURCES with figma_url
2. Extract file_key, node_id, team_id from response
3. Convert dash-format node IDs (1-541) to colon format (1:541)
Node Traversal
1. Call FIGMA_GET_FILE_JSON with depth=2 for overview
2. Identify target nodes from the response
3. Call again with specific ids and higher depth for details
Known Pitfalls
File Type Support:
- GET_FILE_JSON only supports Design files (figma.com/design/ or figma.com/file/)
- FigJam boards (figma.com/board/) and Slides (figma.com/slides/) are NOT supported
Node ID Formats:
- URLs use dash format:
node-id=1-541
- API uses colon format:
1:541
Quick Reference
| Task |
Tool Slug |
Key Params |
| Parse URL |
FIGMA_DISCOVER_FIGMA_RESOURCES |
figma_url |
| Get file JSON |
FIGMA_GET_FILE_JSON |
file_key, ids, depth |
| Get nodes |
FIGMA_GET_FILE_NODES |
file_key, ids |
| Render images |
FIGMA_RENDER_IMAGES_OF_FILE_NODES |
file_key, ids, format |
| Download images |
FIGMA_DOWNLOAD_FIGMA_IMAGES |
file_key, images |
| Get component |
FIGMA_GET_COMPONENT |
file_key, node_id |
| File components |
FIGMA_GET_FILE_COMPONENTS |
file_key |
| Component sets |
FIGMA_GET_FILE_COMPONENT_SETS |
file_key |
| Design tokens |
FIGMA_EXTRACT_DESIGN_TOKENS |
file_key |
| Tokens to Tailwind |
FIGMA_DESIGN_TOKENS_TO_TAILWIND |
tokens |
| File comments |
FIGMA_GET_COMMENTS_IN_A_FILE |
file_key |
| Add comment |
FIGMA_ADD_A_COMMENT_TO_A_FILE |
file_key, message |
| File versions |
FIGMA_GET_VERSIONS_OF_A_FILE |
file_key |
| Team projects |
FIGMA_GET_PROJECTS_IN_A_TEAM |
team_id |
| Project files |
FIGMA_GET_FILES_IN_A_PROJECT |
project_id |
| Team styles |
FIGMA_GET_TEAM_STYLES |
team_id |
| File styles |
FIGMA_GET_FILE_STYLES |
file_key |
| Image fills |
FIGMA_GET_IMAGE_FILLS |
file_key |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
1---2name: figma-automation3description: Automate Figma tasks via Rube MCP (Composio): files, components, design tokens, comments, exports. Always search tools first for current schemas.4---5
6# Figma Automation via Rube MCP
7
8Automate Figma operations through Composio's Figma toolkit via Rube MCP.
9
10## Prerequisites
11
12- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
13- Active Figma connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `figma`
14- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas
15
16## Setup
17
18**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
19
20
211. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
222. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `figma`
233. If connection is not ACTIVE, follow the returned auth link to complete Figma auth
244. Confirm connection status shows ACTIVE before running any workflows
25
26## Core Workflows
27
28### 1. Get File Data and Components
29
30**When to use**: User wants to inspect Figma design files or extract component information
31
32**Tool sequence**:
331. `FIGMA_DISCOVER_FIGMA_RESOURCES` - Extract IDs from Figma URLs [Prerequisite]
342. `FIGMA_GET_FILE_JSON` - Get file data (simplified by default) [Required]
353. `FIGMA_GET_FILE_NODES` - Get specific node data [Optional]
364. `FIGMA_GET_FILE_COMPONENTS` - List published components [Optional]
375. `FIGMA_GET_FILE_COMPONENT_SETS` - List component sets [Optional]
38
39**Key parameters**:
40- `file_key`: File key from URL (e.g., 'abc123XYZ' from figma.com/design/abc123XYZ/...)
41- `ids`: Comma-separated node IDs (NOT an array)
42- `depth`: Tree traversal depth (2 for pages and top-level children)
43- `simplify`: True for AI-friendly format (70%+ size reduction)
44
45**Pitfalls**:
46- Only supports Design files; FigJam boards and Slides return 400 errors
47- `ids` must be a comma-separated string, not an array
48- Node IDs may be dash-formatted (1-541) in URLs but need colon format (1:541) for API
49- Broad ids/depth can trigger oversized payloads (413); narrow scope or reduce depth
50- Response data may be in `data_preview` instead of `data`
51
52### 2. Export and Render Images
53
54**When to use**: User wants to export design assets as images
55
56**Tool sequence**:
571. `FIGMA_GET_FILE_JSON` - Find node IDs to export [Prerequisite]
582. `FIGMA_RENDER_IMAGES_OF_FILE_NODES` - Render nodes as images [Required]
593. `FIGMA_DOWNLOAD_FIGMA_IMAGES` - Download rendered images [Optional]
604. `FIGMA_GET_IMAGE_FILLS` - Get image fill URLs [Optional]
61
62**Key parameters**:
63- `file_key`: File key
64- `ids`: Comma-separated node IDs to render
65- `format`: 'png', 'svg', 'jpg', or 'pdf'
66- `scale`: Scale factor (0.01-4.0) for PNG/JPG
67- `images`: Array of {node_id, file_name, format} for downloads
68
69**Pitfalls**:
70- Images return as node_id-to-URL map; some IDs may be null (failed renders)
71- URLs are temporary (valid ~30 days)
72- Images capped at 32 megapixels; larger requests auto-scaled down
73
74### 3. Extract Design Tokens
75
76**When to use**: User wants to extract design tokens for development
77
78**Tool sequence**:
791. `FIGMA_EXTRACT_DESIGN_TOKENS` - Extract colors, typography, spacing [Required]
802. `FIGMA_DESIGN_TOKENS_TO_TAILWIND` - Convert to Tailwind config [Optional]
81
82**Key parameters**:
83- `file_key`: File key
84- `include_local_styles`: Include local styles (default true)
85- `include_variables`: Include Figma variables
86- `tokens`: Full tokens object from extraction (for Tailwind conversion)
87
88**Pitfalls**:
89- Tailwind conversion requires the full tokens object including total_tokens and sources
90- Do not strip fields from the extraction response before passing to conversion
91
92### 4. Manage Comments and Versions
93
94**When to use**: User wants to view or add comments, or inspect version history
95
96**Tool sequence**:
971. `FIGMA_GET_COMMENTS_IN_A_FILE` - List all file comments [Optional]
982. `FIGMA_ADD_A_COMMENT_TO_A_FILE` - Add a comment [Optional]
993. `FIGMA_GET_REACTIONS_FOR_A_COMMENT` - Get comment reactions [Optional]
1004. `FIGMA_GET_VERSIONS_OF_A_FILE` - Get version history [Optional]
101
102**Key parameters**:
103- `file_key`: File key
104- `as_md`: Return comments in Markdown format
105- `message`: Comment text
106- `comment_id`: Comment ID for reactions
107
108**Pitfalls**:
109- Comments can be positioned on specific nodes using client_meta
110- Reply comments cannot be nested (only one level of replies)
111
112### 5. Browse Projects and Teams
113
114**When to use**: User wants to list team projects or files
115
116**Tool sequence**:
1171. `FIGMA_GET_PROJECTS_IN_A_TEAM` - List team projects [Optional]
1182. `FIGMA_GET_FILES_IN_A_PROJECT` - List project files [Optional]
1193. `FIGMA_GET_TEAM_STYLES` - List team published styles [Optional]
120
121**Key parameters**:
122- `team_id`: Team ID from URL (figma.com/files/team/TEAM_ID/...)
123- `project_id`: Project ID
124
125**Pitfalls**:
126- Team ID cannot be obtained programmatically; extract from Figma URL
127- Only published styles/components are returned by team endpoints
128
129## Common Patterns
130
131### URL Parsing
132
133Extract IDs from Figma URLs:
134```
1351. Call FIGMA_DISCOVER_FIGMA_RESOURCES with figma_url
1362. Extract file_key, node_id, team_id from response
1373. Convert dash-format node IDs (1-541) to colon format (1:541)
138```
139
140### Node Traversal
141
142```
1431. Call FIGMA_GET_FILE_JSON with depth=2 for overview
1442. Identify target nodes from the response
1453. Call again with specific ids and higher depth for details
146```
147
148## Known Pitfalls
149
150**File Type Support**:
151- GET_FILE_JSON only supports Design files (figma.com/design/ or figma.com/file/)
152- FigJam boards (figma.com/board/) and Slides (figma.com/slides/) are NOT supported
153
154**Node ID Formats**:
155- URLs use dash format: `node-id=1-541`
156- API uses colon format: `1:541`
157
158## Quick Reference
159
160| Task | Tool Slug | Key Params |
161|------|-----------|------------|
162| Parse URL | FIGMA_DISCOVER_FIGMA_RESOURCES | figma_url |
163| Get file JSON | FIGMA_GET_FILE_JSON | file_key, ids, depth |
164| Get nodes | FIGMA_GET_FILE_NODES | file_key, ids |
165| Render images | FIGMA_RENDER_IMAGES_OF_FILE_NODES | file_key, ids, format |
166| Download images | FIGMA_DOWNLOAD_FIGMA_IMAGES | file_key, images |
167| Get component | FIGMA_GET_COMPONENT | file_key, node_id |
168| File components | FIGMA_GET_FILE_COMPONENTS | file_key |
169| Component sets | FIGMA_GET_FILE_COMPONENT_SETS | file_key |
170| Design tokens | FIGMA_EXTRACT_DESIGN_TOKENS | file_key |
171| Tokens to Tailwind | FIGMA_DESIGN_TOKENS_TO_TAILWIND | tokens |
172| File comments | FIGMA_GET_COMMENTS_IN_A_FILE | file_key |
173| Add comment | FIGMA_ADD_A_COMMENT_TO_A_FILE | file_key, message |
174| File versions | FIGMA_GET_VERSIONS_OF_A_FILE | file_key |
175| Team projects | FIGMA_GET_PROJECTS_IN_A_TEAM | team_id |
176| Project files | FIGMA_GET_FILES_IN_A_PROJECT | project_id |
177| Team styles | FIGMA_GET_TEAM_STYLES | team_id |
178| File styles | FIGMA_GET_FILE_STYLES | file_key |
179| Image fills | FIGMA_GET_IMAGE_FILLS | file_key |
180
181## When to Use
182This skill is applicable to execute the workflow or actions described in the overview.
183
184## Limitations
185- Use this skill only when the task clearly matches the scope described above.
186- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
187- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.