Buildwithclaude figma-automation
Automate Figma tasks via Rube MCP (Composio): files, components, design tokens, comments, exports. Always search tools first for current schemas.
git clone https://github.com/davepoon/buildwithclaude
T=$(mktemp -d) && git clone --depth=1 https://github.com/davepoon/buildwithclaude "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/all-skills/skills/figma-automation" ~/.claude/skills/davepoon-buildwithclaude-figma-automation && rm -rf "$T"
plugins/all-skills/skills/figma-automation/SKILL.mdFigma Automation via Rube MCP
Automate Figma operations through Composio's Figma toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/figma
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Figma connection via
with toolkitRUBE_MANAGE_CONNECTIONSfigma - Always call
first to get current tool schemasRUBE_SEARCH_TOOLS
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
respondsRUBE_SEARCH_TOOLS - Call
with toolkitRUBE_MANAGE_CONNECTIONSfigma - 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:
- Extract IDs from Figma URLs [Prerequisite]FIGMA_DISCOVER_FIGMA_RESOURCES
- Get file data (simplified by default) [Required]FIGMA_GET_FILE_JSON
- Get specific node data [Optional]FIGMA_GET_FILE_NODES
- List published components [Optional]FIGMA_GET_FILE_COMPONENTS
- List component sets [Optional]FIGMA_GET_FILE_COMPONENT_SETS
Key parameters:
: File key from URL (e.g., 'abc123XYZ' from figma.com/design/abc123XYZ/...)file_key
: Comma-separated node IDs (NOT an array)ids
: Tree traversal depth (2 for pages and top-level children)depth
: True for AI-friendly format (70%+ size reduction)simplify
Pitfalls:
- Only supports Design files; FigJam boards and Slides return 400 errors
must be a comma-separated string, not an arrayids- 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
instead ofdata_previewdata
2. Export and Render Images
When to use: User wants to export design assets as images
Tool sequence:
- Find node IDs to export [Prerequisite]FIGMA_GET_FILE_JSON
- Render nodes as images [Required]FIGMA_RENDER_IMAGES_OF_FILE_NODES
- Download rendered images [Optional]FIGMA_DOWNLOAD_FIGMA_IMAGES
- Get image fill URLs [Optional]FIGMA_GET_IMAGE_FILLS
Key parameters:
: File keyfile_key
: Comma-separated node IDs to renderids
: 'png', 'svg', 'jpg', or 'pdf'format
: Scale factor (0.01-4.0) for PNG/JPGscale
: Array of {node_id, file_name, format} for downloadsimages
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:
- Extract colors, typography, spacing [Required]FIGMA_EXTRACT_DESIGN_TOKENS
- Convert to Tailwind config [Optional]FIGMA_DESIGN_TOKENS_TO_TAILWIND
Key parameters:
: File keyfile_key
: Include local styles (default true)include_local_styles
: Include Figma variablesinclude_variables
: Full tokens object from extraction (for Tailwind conversion)tokens
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:
- List all file comments [Optional]FIGMA_GET_COMMENTS_IN_A_FILE
- Add a comment [Optional]FIGMA_ADD_A_COMMENT_TO_A_FILE
- Get comment reactions [Optional]FIGMA_GET_REACTIONS_FOR_A_COMMENT
- Get version history [Optional]FIGMA_GET_VERSIONS_OF_A_FILE
Key parameters:
: File keyfile_key
: Return comments in Markdown formatas_md
: Comment textmessage
: Comment ID for reactionscomment_id
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:
- List team projects [Optional]FIGMA_GET_PROJECTS_IN_A_TEAM
- List project files [Optional]FIGMA_GET_FILES_IN_A_PROJECT
- List team published styles [Optional]FIGMA_GET_TEAM_STYLES
Key parameters:
: Team ID from URL (figma.com/files/team/TEAM_ID/...)team_id
: Project IDproject_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 |
Powered by Composio