Available Tools - Detailed Documentation
This guide provides detailed documentation for each tool, including when to use them and best practices.Quick Reference
| Category | Tool | Purpose | Mode |
|---|---|---|---|
| 🧭 Navigation | figma_navigate | Open a Figma URL and start monitoring | All |
figma_get_status | Check browser and monitoring status | All | |
figma_reconnect | Reconnect to Figma Desktop | Local | |
| 📋 Console | figma_get_console_logs | Retrieve console logs with filters | All |
figma_watch_console | Stream logs in real-time | All | |
figma_clear_console | Clear log buffer | All | |
| 🔍 Debugging | figma_take_screenshot | Capture UI screenshots | All |
figma_reload_plugin | Reload current page | All | |
| 🎨 Design System | figma_get_variables | Extract design tokens/variables | All |
figma_get_styles | Get color, text, effect styles | All | |
figma_get_component | Get component data | All | |
figma_get_component_for_development | Component + visual reference | All | |
figma_get_component_image | Just the component image | All | |
figma_get_file_data | File structure with verbosity control | All | |
figma_get_file_for_plugin | File data optimized for plugins | All | |
figma_get_design_system_summary | Overview of design system | Local | |
figma_get_token_values | Get variable values by mode | Local | |
| ✏️ Design Creation | figma_execute | Run Figma Plugin API code | Local |
figma_arrange_component_set | Organize variants with labels | Local | |
figma_set_description | Add component descriptions | Local | |
| 🧩 Components | figma_search_components | Find components by name | Local |
figma_get_component_details | Get component details | Local | |
figma_instantiate_component | Create component instance | Local | |
figma_add_component_property | Add component property | Local | |
figma_edit_component_property | Edit component property | Local | |
figma_delete_component_property | Remove component property | Local | |
| 🔧 Variables | figma_create_variable_collection | Create collections with modes | Local |
figma_create_variable | Create new variables | Local | |
figma_update_variable | Update variable values | Local | |
figma_rename_variable | Rename variables | Local | |
figma_delete_variable | Delete variables | Local | |
figma_delete_variable_collection | Delete collections | Local | |
figma_add_mode | Add modes to collections | Local | |
figma_rename_mode | Rename modes | Local | |
| 📐 Node Manipulation | figma_resize_node | Resize a node | Local |
figma_move_node | Move a node | Local | |
figma_clone_node | Clone a node | Local | |
figma_delete_node | Delete a node | Local | |
figma_rename_node | Rename a node | Local | |
figma_set_text | Set text content | Local | |
figma_set_fills | Set fill colors | Local | |
figma_set_strokes | Set stroke colors | Local | |
figma_create_child | Create child node | Local |
🧭 Navigation & Status Tools
figma_navigate
Navigate to any Figma URL to start monitoring.
Usage:
- Navigation status
- Current URL
- Console monitoring status
figma_get_status
Check browser and monitoring status. In local mode, also validates if Figma Desktop is running with the required --remote-debugging-port=9222 flag.
Usage:
- Setup validation (local mode only):
setup.valid- Whether Figma Desktop is running with debug flagsetup.message- Human-readable statussetup.setupInstructions- Step-by-step setup guide (if invalid)setup.ai_instruction- Guidance for AI assistants
- Browser connection status
- Console monitoring active/inactive
- Current URL (if navigated)
- Number of captured console logs
- Call this tool first when starting a debugging session in local mode
- If
setup.validis false, guide user through setup before using console tools
📋 Console Tools (Plugin Debugging)
figma_get_console_logs
💡 Plugin Developers in Local Mode: This tool works immediately - no navigation required! Just check logs, run your plugin in Figma Desktop, check logs again. AllRetrieve console logs with filters. Usage:[Main],[Swapper], etc. plugin logs appear instantly.
count(optional): Number of recent logs to retrieve (default: 100)level(optional): Filter by log level (default: ‘all’)since(optional): Unix timestamp in milliseconds - only logs after this time
- Array of console log entries with:
timestamp: Unix timestamp (ms)level: ‘log’, ‘info’, ‘warn’, ‘error’, ‘debug’message: The log messageargs: Additional arguments passed to console methodstackTrace: Stack trace (for errors)
figma_watch_console
Stream console logs in real-time for a specified duration.
Usage:
duration(optional): How long to watch in seconds (default: 30, max: 300)level(optional): Filter by log level (default: ‘all’)
- Real-time stream of console logs captured during the watch period
- Summary of total logs captured by level
figma_clear_console
Clear the console log buffer.
Usage:
- Confirmation of buffer cleared
- Number of logs that were cleared
🔍 Debugging Tools
figma_take_screenshot
Capture screenshots of Figma UI.
Usage:
target(optional): What to screenshot'plugin': Just the plugin UI (default)'full-page': Entire scrollable page'viewport': Current visible viewport
format(optional): Image format (default: ‘png’)quality(optional): JPEG quality 0-100 (default: 90)filename(optional): Custom filename
- Screenshot image
- Metadata (dimensions, format, size)
figma_reload_plugin
Reload the current Figma page.
Usage:
- Reload status
- New page URL (if changed)
🎨 Design System Tools
⚠️ All Design System tools require FIGMA_ACCESS_TOKEN configured in your MCP client.
See Installation Guide for setup instructions.
figma_get_variables
Extract design tokens/variables from a Figma file.
Usage:
fileUrl(optional): Figma file URL (uses current if navigated)includePublished(optional): Include published variables (default: true)enrich(optional): Add exports and usage analysis (default: false)export_formats(optional): Code formats to generateinclude_usage(optional): Include usage in styles/componentsinclude_dependencies(optional): Include dependency graph
- Variable collections
- Variables with modes and values
- Summary statistics
- Export code (if
enrich: true) - Usage information (if
include_usage: true)
figma_get_styles
Get all styles (color, text, effects) from a Figma file.
Usage:
fileUrl(optional): Figma file URLenrich(optional): Add exports and usage (default: false)export_formats(optional): Code formats to generateinclude_usage(optional): Show where styles are usedinclude_exports(optional): Include code examples
- All styles (color, text, effect, grid)
- Style metadata and properties
- Export code (if
enrich: true) - Usage information (if requested)
figma_get_component
Get component data in two export formats: metadata (default) or reconstruction specification.
Usage:
fileUrl(optional): Figma file URLnodeId(required): Component node ID (e.g., ‘123:456’)format(optional): Export format -'metadata'(default) or'reconstruction'enrich(optional): Add quality metrics (default: false, only for metadata format)
- Component metadata and documentation
- Properties and variants
- Bounds and layout info
- Token coverage (if
enrich: true) - Use for: Documentation, style guides, design system references
- Complete node tree specification
- All visual properties (fills, strokes, effects)
- Layout properties (auto-layout, padding, spacing)
- Text properties with font information
- Color values in 0-1 normalized RGB format
- Validation of spec against plugin requirements
- Use for: Programmatic component creation, version control, component migration
- Compatible with: Figma Component Reconstructor plugin
figma_get_component_for_development
Get component data optimized for UI implementation, with visual reference.
Usage:
fileUrl(optional): Figma file URLnodeId(required): Component node IDincludeImage(optional): Include rendered image (default: true)
- Component image (rendered at 2x scale)
- Filtered component data with:
- Layout properties (auto-layout, padding, spacing)
- Visual properties (fills, strokes, effects)
- Typography
- Component properties and variants
- Bounds and positioning
figma_get_component_image
Render a component as an image only.
Usage:
fileUrl(optional): Figma file URLnodeId(required): Node ID to renderscale(optional): Scale factor (default: 2)format(optional): Image format (default: ‘png’)
- Image URL (expires after 30 days)
- Image metadata
figma_get_file_data
Get file structure with verbosity control.
Usage:
fileUrl(optional): Figma file URLdepth(optional): Depth of children tree (max: 3)verbosity(optional): Data detail level'summary': IDs, names, types only (~90% smaller)'standard': Essential properties (~50% smaller)'full': Everything
nodeIds(optional): Retrieve specific nodes onlyenrich(optional): Add statistics and metrics
- File metadata
- Document tree (filtered by verbosity)
- Component/style counts
- Statistics (if
enrich: true)
figma_get_file_for_plugin
Get file data optimized for plugin development.
Usage:
fileUrl(optional): Figma file URLdepth(optional): Depth of children (max: 5, default: 2)nodeIds(optional): Specific nodes only
- Filtered file data with:
- IDs, names, types
- Plugin data (pluginData, sharedPluginData)
- Component relationships
- Lightweight bounds
- Structure for navigation
Tool Comparison
When to Use Each Tool
For Component Development:figma_get_component_for_development- Best for implementing UI components (includes image + layout data)figma_get_component_image- Just need a visual referencefigma_get_component- Need full component metadata
figma_get_file_for_plugin- Optimized file structure for pluginsfigma_get_console_logs- Debug plugin codefigma_watch_console- Monitor plugin execution
figma_get_variables- Design tokens with code exportsfigma_get_styles- Traditional styles with code exportsfigma_get_file_data- Full file structure with verbosity control
figma_get_console_logs- Retrieve specific logsfigma_watch_console- Live monitoringfigma_take_screenshot- Visual debuggingfigma_get_status- Check connection health
✏️ Design Creation Tools (Local Mode Only)
⚠️ Requires Desktop Bridge Plugin: These tools only work in Local Mode with the Desktop Bridge plugin running in Figma.
figma_execute
The Power Tool - Execute any Figma Plugin API code to create designs, modify elements, or perform complex operations.
When to Use:
- Creating UI components (buttons, cards, modals, notifications)
- Building frames with auto-layout
- Adding text with specific fonts and styles
- Creating shapes (rectangles, ellipses, vectors)
- Applying effects, fills, and strokes
- Creating pages or organizing layers
- Any operation that requires the full Figma Plugin API
code(required): JavaScript code to execute. Has access tofigmaglobal object.timeout(optional): Execution timeout in ms (default: 5000, max: 30000)
- Whatever the code returns (use
returnstatement) - Execution success/failure status
- Always use
awaitfor async operations (loadFontAsync, getNodeByIdAsync) - Return useful data (node IDs, names) for follow-up operations
- Position elements relative to viewport center for visibility
- Select created elements so users can see them immediately
- Use try/catch for error handling in complex operations
🔧 Variable Management Tools (Local Mode Only)
⚠️ Requires Desktop Bridge Plugin: These tools only work in Local Mode with the Desktop Bridge plugin running in Figma.
figma_create_variable_collection
Create a new variable collection with optional modes.
When to Use:
- Setting up a new design system
- Creating themed variable sets (colors, spacing, typography)
- Organizing variables into logical groups
name(required): Collection nameinitialModeName(optional): Name for the default mode (otherwise “Mode 1”)additionalModes(optional): Array of additional mode names to create
- Created collection with ID, name, modes, and mode IDs
figma_create_variable
Create a new variable in a collection.
When to Use:
- Adding design tokens to your system
- Creating colors, spacing values, text strings, or boolean flags
- Setting up multi-mode variable values
name(required): Variable name (use/for grouping)collectionId(required): Target collection IDresolvedType(required):"COLOR","FLOAT","STRING", or"BOOLEAN"valuesByMode(optional): Object mapping mode IDs to valuesdescription(optional): Variable descriptionscopes(optional): Where variable can be applied
- COLOR: Hex string
"#FF0000"or"#FF0000FF"(with alpha) - FLOAT: Number
16or1.5 - STRING: Text
"Hello World" - BOOLEAN:
trueorfalse
figma_update_variable
Update a variable’s value in a specific mode.
When to Use:
- Changing existing token values
- Updating theme-specific values
- Modifying design system tokens
variableId(required): Variable ID to updatemodeId(required): Mode ID to update value invalue(required): New value (format depends on variable type)
figma_rename_variable
Rename a variable while preserving all its values.
When to Use:
- Reorganizing variable naming conventions
- Fixing typos in variable names
- Moving variables to different groups
variableId(required): Variable ID to renamenewName(required): New name (can include/for grouping)
figma_delete_variable
Delete a variable.
When to Use:
- Removing unused tokens
- Cleaning up design system
- Removing deprecated variables
figma_delete_variable_collection
Delete a collection and ALL its variables.
When to Use:
- Removing entire token sets
- Cleaning up unused collections
- Resetting design system sections
figma_add_mode
Add a new mode to an existing collection.
When to Use:
- Adding theme variants (Dark mode, High Contrast)
- Adding responsive breakpoints (Mobile, Tablet, Desktop)
- Adding brand variants
collectionId(required): Collection to add mode tomodeName(required): Name for the new mode
- Updated collection with new mode ID
figma_rename_mode
Rename an existing mode in a collection.
When to Use:
- Fixing mode names
- Updating naming conventions
- Making mode names more descriptive
collectionId(required): Collection containing the modemodeId(required): Mode ID to renamenewName(required): New name for the mode
🧩 Component Tools (Local Mode Only)
⚠️ Requires Desktop Bridge Plugin: These tools only work in Local Mode with the Desktop Bridge plugin running in Figma.
figma_search_components
Search for components in the current file by name or description.
When to Use:
- Finding existing components to instantiate
- Discovering available UI building blocks
- Checking if a component already exists before creating
query(required): Search term to match against component namesincludeDescription(optional): Include component descriptions (default: true)
- Array of matching components with ID, name, key, and description
figma_get_component_details
Get detailed information about a specific component.
Usage:
componentKey(required): The component’s key identifier
- Full component details including properties, variants, and metadata
figma_instantiate_component
Create an instance of a component on the canvas.
When to Use:
- Adding existing components to your design
- Building compositions from component library
- Creating layouts using design system components
componentKey(required): Component key to instantiatex(optional): X position on canvasy(optional): Y position on canvasoverrides(optional): Property overrides for the instance
- Created instance with node ID
figma_arrange_component_set
Organize component variants into a professional component set with labels and proper structure.
When to Use:
- After creating multiple component variants
- Organizing messy component sets
- Adding row/column labels to variant grids
- Getting the purple dashed border Figma styling
componentSetId(optional): ID of component set to arrange (uses selection if not provided)componentSetName(optional): Find component set by nameoptions(optional): Layout optionsgap: Gap between grid cells (default: 24)cellPadding: Padding inside each cell (default: 20)columnProperty: Property to use for columns (default: auto-detect, usually “State”)
- Arranged component set with:
- White container frame with title
- Row labels (vertically centered)
- Column headers (horizontally centered)
- Purple dashed border (Figma’s native styling)
figma_set_description
Add or update a description on a component, component set, or style.
When to Use:
- Documenting components for developers
- Adding usage guidelines
- Writing design system documentation
nodeId(required): Node ID of component/style to documentdescription(required): Description text (supports markdown)
- Confirmation with updated node info
🔧 Node Manipulation Tools (Local Mode Only)
figma_resize_node
Resize a node to specific dimensions.
Usage:
figma_move_node
Move a node to a specific position.
Usage:
figma_clone_node
Create a copy of a node.
Usage:
- New node ID of the clone
figma_delete_node
Delete a node from the canvas.
Usage:
figma_rename_node
Rename a node.
Usage:
figma_set_text
Set the text content of a text node.
Usage:
figma_set_fills
Set the fill colors of a node.
Usage:
figma_set_strokes
Set the stroke colors of a node.
Usage:
figma_create_child
Create a child node inside a parent.
Usage:
🏷️ Component Property Tools (Local Mode Only)
figma_add_component_property
Add a new property to a component.
Usage:
nodeId(required): Component node IDpropertyName(required): Name for the new propertypropertyType(required):"BOOLEAN","TEXT","INSTANCE_SWAP", or"VARIANT"defaultValue(required): Default value for the property
figma_edit_component_property
Edit an existing component property.
Usage:
figma_delete_component_property
Remove a property from a component.
Usage:
📊 Design System Summary Tools (Local Mode Only)
figma_get_design_system_summary
Get a high-level overview of the design system in the current file.
Usage:
- Component count and categories
- Variable collections and counts
- Style summary (colors, text, effects)
- Page structure overview
figma_get_token_values
Get all variable values organized by collection and mode.
Usage:
- Variables organized by collection
- Values for each mode
- Variable metadata
AI Decision Guide: Which Tool to Use?
For Design Creation
| Task | Tool | Example |
|---|---|---|
| Create UI components | figma_execute | Buttons, cards, modals |
| Create frames/layouts | figma_execute | Auto-layout containers |
| Add text | figma_execute | Labels, headings, paragraphs |
| Create shapes | figma_execute | Icons, decorations |
| Modify existing elements | figma_execute | Change colors, resize |
| Create pages | figma_execute | Organize file structure |
For Variable Management
| Task | Tool |
|---|---|
| Create new token collection | figma_create_variable_collection |
| Add design tokens | figma_create_variable |
| Change token values | figma_update_variable |
| Reorganize token names | figma_rename_variable |
| Remove tokens | figma_delete_variable |
| Add themes (Light/Dark) | figma_add_mode |
| Rename themes | figma_rename_mode |
Prerequisites Checklist
Before using write tools, ensure:- ✅ Running in Local Mode (not Remote SSE)
- ✅ Figma Desktop started with
--remote-debugging-port=9222 - ✅ Desktop Bridge plugin is running in Figma
- ✅
figma_get_statusreturnssetup.valid: true
Error Handling
All tools return structured error responses:"FIGMA_ACCESS_TOKEN not configured"- Set up your token (see installation guide)"Failed to connect to browser"- Browser initializing or connection issue"Invalid Figma URL"- Check URL format"Node not found"- Verify node ID is correct"Desktop Bridge plugin not found"- Ensure plugin is running in Figma"Invalid hex color"- Check hex format (use #RGB, #RGBA, #RRGGBB, or #RRGGBBAA)