conductor-figma
Provides tools for creating, modifying, inspecting, and exporting designs in Figma, with built-in design intelligence for grid snapping, type scales, semantic colors, accessibility checks, and component defaults.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@conductor-figma Create a dark hero section with a big heading and a purple CTA button"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
conductor-figma
Design-intelligent MCP server for Figma. 201 tools across 17 categories. Every tool has built-in design intelligence — 8px grid, type scales, semantic colors, accessibility checks, component defaults. Works with Cursor and Claude Code.
npx conductor-figmaHow to use
1. Clone the repo (for the Figma plugin)
git clone https://github.com/lama-assaf/conductor.git2. Import the Figma plugin
Open Figma Desktop:
Go to Plugins → Development → Import plugin from manifest
Navigate to
conductor/figma-plugin/manifest.jsonClick Open
The plugin is now installed. You only need to do this once.
3. Add to Cursor
Open ~/.cursor/mcp.json and add conductor:
{
"mcpServers": {
"conductor": {
"command": "npx",
"args": ["-y", "conductor-figma"]
}
}
}Restart Cursor.
4. Connect and design
Open a Figma file
Run the plugin: Plugins → Development → Conductor
The plugin should show a green dot (Connected)
In Cursor chat, type
@conductorfollowed by any command
Example prompts
@conductor Create a dark hero section with a big heading and a purple CTA button
@conductor Check contrast between #ffffff and #6366f1
@conductor Create a dashboard layout with sidebar, KPI cards, and chart area
@conductor Audit accessibility on my current selection
@conductor Replace all #6366f1 with #3b82f6 across the file
@conductor Export this frame as React + Tailwind code
@conductor Scan my file and show me all off-grid spacing
@conductor Generate a color palette from #6366f1Alternative: use local path (faster startup)
Instead of npx, point directly to the cloned repo:
{
"mcpServers": {
"conductor": {
"command": "node",
"args": ["/path/to/conductor/bin/conductor.js"]
}
}
}Related MCP server: figmind
How it works
You type in Cursor → MCP server (stdio) → WebSocket :3055 → Figma plugin → CanvasCursor starts the MCP server automatically. The server opens a WebSocket on port 3055. The Figma plugin connects to that WebSocket and executes commands on the canvas.
What makes this different
Other MCP servers for Figma are API wrappers. You give exact pixel values, they obey — even when those values are wrong. Conductor applies design rules before anything touches the canvas.
You say "create a button." A typical MCP makes a rectangle. Conductor makes a 44px-tall frame with 20px horizontal padding, 10px radius, 15px Semi Bold text — because that's what a button actually is.
201 tools in 17 categories
Create & Layout (20)
create_frame, create_text, create_rectangle, create_ellipse, create_line, create_svg_node, create_component, create_component_instance, create_component_set, create_smart_component, set_auto_layout, create_section, create_page, create_table_frame, create_form, create_nav_bar, create_card_grid, create_sidebar_layout, create_footer, create_header
Modify & Style (25)
modify_node, set_fill, set_stroke, set_effects, set_image_fill, style_text_range, set_constraints, delete_node, move_to_parent, duplicate_node, group_nodes, ungroup_nodes, resize_node, align_nodes, set_corner_radius, set_opacity, set_blend_mode, set_clip_content, rename_node, lock_node, set_visibility, reorder_node, set_layout_sizing, flatten_node, set_rotation
Vector & Shape (8)
create_vector, boolean_operation, create_polygon, create_star, offset_path, create_arrow, create_icon (35 built-in), create_divider
Read & Inspect (18)
get_selection, get_page_structure, get_node_info, get_nodes_info, find_nodes, get_local_styles, get_local_variables, list_components, list_pages, get_document_info, set_selection, set_focus, get_annotations, set_annotation, list_available_fonts, read_node_css, get_selection_colors, measure_distance
Variables & Tokens (10)
create_variable_collection, create_variable, bind_variable, get_variables, update_variable, delete_variable, create_design_tokens, import_tokens, export_tokens, swap_mode
Export & Code (12)
export_as_svg, export_as_png, export_to_react, export_design_specs, export_assets, screenshot, copy_css, generate_stylesheet, export_color_palette, export_typography, export_component_inventory, export_spacing_tokens
Accessibility & Lint (12)
audit_accessibility, check_contrast, fix_touch_targets, lint_design, fix_spacing, check_naming, suggest_improvements, validate_component, check_consistency, generate_a11y_report, color_blindness_check, responsive_check
Batch Operations (17)
batch_rename, batch_style, batch_replace_text, batch_replace_color, batch_resize, batch_align, batch_delete, batch_duplicate, batch_set_visibility, batch_lock, select_all_by_type, clean_hidden_layers, batch_set_font, batch_round_values, batch_remove_strokes, batch_remove_effects, batch_set_corner_radius
Design System (10)
scan_design_system, create_style_guide, detect_inconsistencies, normalize_design, extract_components, get_design_craft_guide, suggest_color_palette, suggest_type_scale, import_design_system, compare_to_system
Responsive (5)
create_responsive_variant, set_breakpoint, convert_to_responsive, generate_mobile, stack_for_mobile
Typography (10)
type_scale_apply, type_audit, type_set_hierarchy, type_check_measure, type_normalize, type_list_styles, type_pair_suggest, type_replace_font, set_text_content, type_create_style
Color (10)
color_palette_generate, color_extract, color_harmonize, color_darkmode, color_lightmode, color_check_all, color_create_style, color_apply_style, color_replace_global, color_generate_semantic
Prototype & Interaction (10)
create_prototype_link, create_scroll_behavior, set_overflow, create_overlay, set_fixed_position, create_hover_state, create_flow, list_flows, remove_prototype_link, set_transition
Page Management (8)
create_new_page, switch_page, duplicate_page, delete_page, rename_page, sort_pages, merge_pages, page_overview
Library & Components (8)
search_library, list_team_libraries, swap_component, detach_instance, reset_overrides, component_audit, batch_swap_component, publish_components
Annotation & Handoff (10)
annotate_spacing, annotate_colors, annotate_typography, create_measurement, create_spec_sheet, annotate_grid, annotate_hierarchy, create_component_docs, annotate_responsive, create_changelog
Effects & Styles (8)
create_glassmorphism, create_neumorphism, create_noise_texture, set_gradient_fill, create_shadow_system, apply_backdrop_blur, create_border_gradient, remove_all_effects
Design intelligence engine
Every tool queries the intelligence engine before touching Figma:
8px Grid — All spacing values snapped. snap(13) = 16.
Type Scale — 7 ratio presets: Minor Second through Golden Ratio.
Semantic Colors — Full palette from one brand hex. Dark + light modes.
Component Defaults — 18 component types with size variants.
Accessibility — WCAG AA/AAA contrast, 44px touch targets, font minimums.
Font Weights — Auto-resolves "bold" → "Bold", "600" → "Semi Bold".
Layout Intelligence — 13 layout presets: row, column, center, spread, sidebar, grid, form.
Troubleshooting
Plugin says "Disconnected" The MCP server isn't running. Make sure Cursor is open and conductor is configured in mcp.json. Try sending any @conductor message in Cursor chat — that triggers the server to start.
Port 3055 already in use
Kill the old process: kill $(lsof -t -i :3055) 2>/dev/null then restart Cursor.
Cursor shows "Loading tools" forever
Make sure you have the latest version. Run: npx conductor-figma@latest
Or use the local path method for faster startup.
Disclaimer
This software is provided strictly for educational and experimental purposes only. Do your own research (DYOR) before using in any production environment.
This is experimental, open-source software provided "as-is" with absolutely no warranties, representations, or guarantees of any kind — express, implied, or statutory — including but not limited to warranties of merchantability, fitness for a particular purpose, accuracy, reliability, or non-infringement.
The author(s), contributor(s), and maintainer(s) of this project — including the individual known as lama-assaf — shall not be held liable for any direct, indirect, incidental, special, consequential, or punitive damages, losses, costs, or expenses arising from or related to the use, misuse, inability to use, or reliance upon this software, including but not limited to loss of data, loss of revenue, business interruption, or damages to Figma files, design assets, or any other digital property.
This software interacts with third-party services (Figma, Cursor, Claude Code) over which the author has no control. The author assumes no responsibility for any changes, outages, API modifications, or policy updates by these third parties that may affect the functionality of this software.
No data collection, telemetry, or analytics are performed by this software. All operations run locally between your machine and the Figma desktop application. However, the author makes no guarantees regarding data security, privacy, or confidentiality.
This software is not affiliated with, endorsed by, or sponsored by Figma, Inc., Anthropic, PBC, Anysphere (Cursor), or any other company or organization.
Users are solely responsible for ensuring their use of this software complies with all applicable laws, regulations, terms of service, and licensing agreements — including Figma's Terms of Service and API usage policies.
Use at your own risk. Always back up your Figma files before running any automated operations. The author is not responsible for any unintended modifications, deletions, or corruption of design files.
MIT License · Copyright 2026 lama-assaf
Available Tools
203 toolsalign_nodesC
Align multiple nodes relative to each other.
Inputs: nodeIds (required), alignment.
annotate_colorsB
Add color swatch annotations to a frame.
Inputs: nodeId (required).
annotate_gridC
Visualize the underlying grid and spacing system of a frame.
Inputs: nodeId (required), gridSize.
annotate_hierarchyA
Annotate the visual hierarchy: heading levels, reading order, focal points.
Inputs: nodeId (required).
annotate_responsiveC
Annotate breakpoint behavior and responsive rules on a frame.
Inputs: nodeId (required), breakpoints.
annotate_spacingB
Add visual spacing annotations (redlines) to a frame.
Inputs: nodeId (required), showPadding, showGap, showMargin.
annotate_typographyC
Add typography annotations (font, size, weight, line-height) to text nodes.
Inputs: nodeId (required).
apply_backdrop_blurC
Apply background blur (frosted glass effect) to a frame.
Inputs: nodeId (required), amount.
audit_accessibilityA
Run a full accessibility audit on a node tree. Checks contrast, touch targets, font sizes, focus indicators.
Inputs: nodeId (required).
batch_alignC
Align multiple nodes.
Inputs: nodeIds (required), horizontal, vertical.
batch_deleteB
Delete multiple nodes.
Inputs: nodeIds (required).
batch_duplicateB
Duplicate multiple nodes.
Inputs: nodeIds (required), offsetX, offsetY.
batch_lockB
Lock/unlock multiple nodes.
Inputs: nodeIds (required), locked (required).
batch_remove_effectsB
Remove all effects from nodes in a scope.
Inputs: nodeId (required).
batch_remove_strokesC
Remove all strokes from nodes in a scope.
Inputs: nodeId (required).
batch_renameC
Rename multiple nodes using a pattern.
Inputs: nodeIds (required), pattern (required), startNumber.
batch_replace_colorC
Replace a color across all nodes.
Inputs: find (required), replace (required), nodeId.
batch_replace_textA
Find and replace text across multiple text nodes.
Inputs: find (required), replace (required), nodeId, matchCase.
batch_resizeC
Resize multiple nodes.
Inputs: nodeIds (required), width, height, scale.
batch_round_valuesA
Round all dimensions, positions, and spacing to whole pixels.
Inputs: nodeId (required).
batch_set_corner_radiusA
Set corner radius on all frames/rectangles in scope.
Inputs: nodeId (required), radius (required).
batch_set_fontB
Change font family on all text nodes in a scope.
Inputs: fontFamily (required), nodeId.
batch_set_visibilityA
Show/hide multiple nodes.
Inputs: nodeIds (required), visible (required).
batch_styleC
Apply style changes to multiple nodes at once.
Inputs: nodeIds (required), changes (required).
batch_swap_componentA
Swap all instances of one component for another across the file.
Inputs: oldComponentId (required), newComponentId (required).
bind_variableB
Bind a variable to a node property.
Inputs: nodeId (required), property (required), variableId (required).
boolean_operationC
Perform boolean operations on shapes.
Inputs: nodeIds (required), operation.
check_consistencyC
Check for inconsistent colors, fonts, spacing, and radii across a design.
Inputs: nodeId (required).
check_contrastA
Check color contrast ratio between two colors.
Inputs: foreground (required), background (required).
check_namingB
Check layer naming conventions. Flags generic names like "Frame 123", "Group 5".
Inputs: nodeId (required).
color_apply_styleC
Apply a color style to a node.
Inputs: nodeId (required), styleName (required), property.
color_blindness_checkC
Simulate color blindness on a design to check for issues.
Inputs: nodeId (required), type.
color_check_allA
Check WCAG contrast for every text/background pair in a frame.
Inputs: nodeId (required), standard.
color_create_styleC
Create a local color style.
Inputs: name (required), color (required).
color_darkmodeA
Generate a dark mode variant of a frame, mapping all colors intelligently.
Inputs: nodeId (required), brandColor.
color_extractA
Extract all unique colors from a frame and organize by usage frequency.
Inputs: nodeId (required).
color_generate_semanticA
Generate a full semantic color system (bg, surface, border, text, brand, status) from one brand color.
Inputs: brandColor (required), mode.
color_harmonizeB
Generate harmonious colors: complementary, triadic, analogous, split-complementary.
Inputs: baseColor (required), scheme.
color_lightmodeB
Generate a light mode variant of a dark frame.
Inputs: nodeId (required), brandColor.
color_palette_generateC
Generate a full color palette (50-950 shades) from a base color.
Inputs: baseColor (required), steps.
color_replace_globalA
Replace a color across the entire document (all pages).
Inputs: find (required), replace (required).
compare_to_systemC
Compare a design to the established design system and flag deviations.
Inputs: nodeId (required).
component_auditA
Audit components: find detached instances, missing components, unused variants.
Inputs: nodeId.
convert_to_responsiveB
Convert fixed-width designs to responsive auto-layout.
Inputs: nodeId (required).
copy_cssA
Copy CSS properties of a node to clipboard.
Inputs: nodeId (required).
create_arrowC
Create an arrow shape.
Inputs: length (required), direction, strokeWeight, color, +1 more.
create_border_gradientB
Create a gradient border effect using a slightly larger frame behind.
Inputs: nodeId (required), startColor (required), endColor (required), width.
create_card_gridC
Create a grid of cards with proper spacing and alignment.
Inputs: columns, cards, brandColor, parentId.
create_changelogB
Compare two frames and generate a visual changelog showing what changed.
Inputs: beforeNodeId (required), afterNodeId (required).
create_componentB
Create a reusable component from the current selection or a new frame.
Inputs: name (required), description, fromNodeId, width, +2 more.
create_component_docsB
Generate documentation frames for a component showing all variants, props, and usage.
Inputs: componentId (required).
create_component_instanceC
Instantiate an existing component.
Inputs: componentId (required), parentId, overrides.
create_component_setA
Combine component variants into a variant set.
Inputs: name (required), componentIds (required).
create_design_tokensB
Generate a complete design token system from a brand color. Creates color, spacing, radius, and typography collections.
Inputs: brandColor (required), name, withModes.
create_dividerC
Create a horizontal or vertical divider line.
Inputs: direction, length, color, thickness, +1 more.
create_ellipseC
Create a circle or oval.
Inputs: width (required), height (required), name, fill, +2 more.
create_flowB
Create a prototype flow starting point.
Inputs: nodeId (required), name (required).
create_formB
Create a form layout with labeled inputs, validation states, and submit button.
Inputs: fields (required), submitLabel, brandColor, parentId.
create_frameA
Create a frame (screen, section, card, container). Automatically applies auto-layout with design-intelligent defaults.
Inputs: name (required), width, height, direction, +15 more.
create_glassmorphismB
Apply glassmorphism effect: background blur, semi-transparent fill, subtle border.
Inputs: nodeId (required), blur, opacity.
create_headerC
Create a page header/hero with heading, subheading, and CTA.
Inputs: heading, subheading, ctaText, width, +2 more.
create_hover_stateC
Create a hover variant interaction on a component.
Inputs: nodeId (required), hoverVariant (required).
create_iconC
Create a common UI icon from built-in set.
Inputs: icon (required), size, color, parentId.
create_lineC
Create a line or divider.
Inputs: length (required), name, direction, strokeColor, +2 more.
create_measurementB
Create a measurement line between two nodes showing distance.
Inputs: nodeId1 (required), nodeId2 (required), direction.
create_neumorphismA
Apply neumorphism effect: dual shadows (light + dark) with matching background.
Inputs: nodeId (required), intensity.
create_new_pageB
Create a new page in the document.
Inputs: name (required).
create_noise_textureA
Add a subtle noise/grain texture overlay to a frame.
Inputs: nodeId (required), opacity, scale.
create_overlayB
Set up a frame as a modal/overlay in prototype mode.
Inputs: nodeId (required), position, closeOnClickOutside, backgroundDim.
create_pageB
Create a complete page design with multiple sections. Design-intelligent layout, spacing, and typography throughout.
Inputs: type (required), content, brandColor, mode, +1 more.
create_polygonB
Create a regular polygon.
Inputs: sides (required), size (required), fill, name, +1 more.
create_prototype_linkA
Create a prototype navigation link between two frames.
Inputs: fromNodeId (required), toNodeId (required), trigger, transition, +1 more.
create_rectangleC
Create a rectangle shape.
Inputs: width (required), height (required), name, fill, +3 more.
create_responsive_variantC
Create mobile/tablet/desktop variants of a frame.
Inputs: nodeId (required), breakpoints.
create_scroll_behaviorB
Set scroll behavior on a frame.
Inputs: nodeId (required), direction, overflow.
create_sectionC
Create a design-intelligent page section (hero, features, pricing, CTA, testimonials, FAQ, footer, stats, logos, comparison, team).
Inputs: type (required), content, brandColor, mode, +2 more.
create_shadow_systemB
Generate a consistent shadow elevation system (sm, md, lg, xl) as effect styles.
Inputs: baseColor, scale.
create_sidebar_layoutC
Create a sidebar + main content layout with proper proportions.
Inputs: sidebarWidth, totalWidth, brandColor, parentId.
create_smart_componentC
Create a design-intelligent component with proper auto-layout, padding, and sizing. Uses component intelligence defaults.
Inputs: type (required), variant, label, brandColor, +2 more.
create_spec_sheetB
Generate a design specification sheet next to a frame with all measurements, colors, and typography.
Inputs: nodeId (required), position.
create_starC
Create a star shape.
Inputs: outerRadius (required), points, innerRadius, fill, +2 more.
create_style_guideC
Generate a visual style guide page from the current design system.
Inputs: brandColor, mode.
create_svg_nodeB
Create a vector graphic from SVG markup. Use for icons, logos, illustrations.
Inputs: svg (required), name, width, height, +1 more.
create_table_frameB
Create a data table with headers, rows, and proper spacing.
Inputs: columns (required), rows, brandColor, parentId.
create_textB
Create text with design-intelligent typography. Font weight is auto-resolved (e.g. "bold" → "Bold", "600" → "Semi Bold").
Inputs: text (required), fontSize, color, fontFamily, +9 more.
create_variableC
Create a design variable/token.
Inputs: name (required), collectionId (required), value (required), type, +1 more.
create_variable_collectionB
Create a design token collection with modes (e.g. Light/Dark).
Inputs: name (required), modes.
create_vectorB
Draw custom vector paths using SVG-like path data.
Inputs: pathData (required), name, fill, stroke, +2 more.
delete_nodeB
Remove a node from the canvas.
Inputs: nodeId (required).
delete_pageC
Delete a page.
Inputs: pageId (required).
delete_variableC
Delete a variable.
Inputs: variableId (required).
design_from_promptA
Takes any natural language description and generates a complete Figma design. Analyzes mood (minimal, bold, playful, luxury, corporate, techy, organic, brutalist, editorial), detects industry (fintech, health, saas, ecommerce, etc.), picks appropriate colors, spacing density, shadow depth, corner radii, and typography. Then composes a multi-section design with 30-300+ elements.
Inputs: prompt (required), width.
detach_instanceA
Detach a component instance to a regular frame.
Inputs: nodeId (required).
detect_inconsistenciesB
Find design inconsistencies: off-grid spacing, non-standard colors, mismatched fonts.
Inputs: nodeId.
duplicate_nodeC
Duplicate a node.
Inputs: nodeId (required), count, offsetX, offsetY.
duplicate_pageC
Duplicate an entire page.
Inputs: pageId (required), name.
export_as_pngC
Export a node as PNG.
Inputs: nodeId (required), scale.
export_assetsB
Batch export all exportable assets (icons, images) from a node tree.
Inputs: nodeId (required), format, scale.
export_as_svgA
Export a node as SVG markup.
Inputs: nodeId (required).
export_color_paletteC
Export all colors used as a palette.
Inputs: format.
export_component_inventoryC
Export a complete inventory of all components with usage counts.
Inputs: format.
export_design_specsB
Generate design specifications document for developer handoff.
Inputs: nodeId (required), format.
export_spacing_tokensA
Export all spacing values used as a spacing token system.
Inputs: format.
export_tokensA
Export all design tokens as JSON, CSS custom properties, SCSS, or Tailwind config.
Inputs: format.
export_to_reactC
Generate React + Tailwind code from a Figma node tree.
Inputs: nodeId (required), framework, componentName.
export_typographyC
Export all text styles as a typography system.
Inputs: format.
extract_componentsA
Find repeated patterns and suggest component extraction.
Inputs: nodeId (required).
find_nodesB
Search for nodes by name, type, or properties.
Inputs: query, type, withinId.
fix_spacingC
Auto-fix all spacing values to nearest 8px grid value.
Inputs: nodeId (required), grid.
fix_touch_targetsB
Auto-fix all touch targets below 44px in a node tree.
Inputs: nodeId (required).
flatten_nodeC
Flatten a node into a single vector.
Inputs: nodeId (required).
generate_a11y_reportC
Generate a detailed accessibility compliance report.
Inputs: nodeId (required), standard, format.
generate_mobileC
Generate a mobile-optimized version of a desktop design.
Inputs: nodeId (required), width.
generate_stylesheetC
Generate a complete stylesheet from a design file.
Inputs: pageId, format.
get_annotationsA
Get all annotations/comments on the document or a specific node.
Inputs: nodeId.
get_design_craft_guideA
Get the professional design rules: typography, color, spacing, anti-AI-slop patterns. Use this before creating any design.
Inputs: no named parameters.
get_document_infoA
Get document name, pages, and metadata.
Inputs: no named parameters.
get_local_stylesA
Get all local paint, text, and effect styles in the file.
Inputs: no named parameters.
get_local_variablesB
Get all local variable collections and variables.
Inputs: no named parameters.
get_node_infoA
Get detailed properties of a specific node including fills, effects, auto-layout, and text styles.
Inputs: nodeId (required).
get_nodes_infoB
Get detailed properties of multiple nodes.
Inputs: nodeIds (required).
get_page_structureA
Get the full page layer tree with types, names, and hierarchy.
Inputs: depth, pageId.
get_selectionA
Get the currently selected nodes with full properties.
Inputs: no named parameters.
get_selection_colorsB
Extract all colors used in the current selection.
Inputs: no named parameters.
get_variablesB
List all variable collections and their variables.
Inputs: no named parameters.
group_nodesC
Group multiple nodes together.
Inputs: nodeIds (required), name.
import_design_systemC
Import a design system from JSON config and create all tokens, styles, and components.
Inputs: config (required).
import_tokensB
Import design tokens from JSON (W3C Design Token format).
Inputs: json (required), collectionName.
interpret_promptA
Analyzes a design prompt and returns the interpretation without generating anything. Shows what mood, industry, colors, and sections would be used. Good for previewing before generating.
Inputs: prompt (required).
lint_designB
Run design lint rules: spacing consistency, naming conventions, color usage, font sizes, alignment.
Inputs: nodeId (required), rules.
list_available_fontsA
Get all fonts available in the Figma file.
Inputs: no named parameters.
list_componentsC
List all components in the file.
Inputs: pageId.
list_flowsA
List all prototype flows in the file.
Inputs: no named parameters.
list_pagesB
List all pages in the document.
Inputs: no named parameters.
list_team_librariesA
List all available team libraries.
Inputs: no named parameters.
lock_nodeC
Lock/unlock a node.
Inputs: nodeId (required), locked (required).
measure_distanceC
Measure distance between two nodes.
Inputs: nodeId1 (required), nodeId2 (required).
merge_pagesB
Move all content from one page into another.
Inputs: sourcePageId (required), targetPageId (required).
modify_nodeC
Modify properties of any existing node.
Inputs: nodeId (required), x, y, width, +8 more.
move_to_parentC
Move a node into a different parent frame.
Inputs: nodeId (required), parentId (required), index.
normalize_designB
Auto-fix a design to match the implied design system. Snaps spacing, normalizes colors, fixes font weights.
Inputs: nodeId (required), dryRun.
offset_pathC
Offset/expand a vector path.
Inputs: nodeId (required), offset (required).
page_overviewA
Get an overview of all pages: name, frame count, component count.
Inputs: no named parameters.
publish_componentsB
Mark components as ready to publish to team library.
Inputs: componentIds (required).
read_node_cssB
Get CSS representation of a node (for developer handoff).
Inputs: nodeId (required), format.
remove_all_effectsA
Remove all effects (shadows, blurs) from a node.
Inputs: nodeId (required).
remove_prototype_linkC
Remove a prototype connection.
Inputs: nodeId (required).
rename_nodeC
Rename a node.
Inputs: nodeId (required), name (required).
rename_pageC
Rename a page.
Inputs: pageId (required), name (required).
reorder_nodeC
Change z-order of a node.
Inputs: nodeId (required), direction.
reset_overridesB
Reset all overrides on a component instance.
Inputs: nodeId (required).
resize_nodeB
Resize a node with optional constraint preservation.
Inputs: nodeId (required), width, height, preserveAspect.
responsive_checkC
Check if a design handles different viewport widths correctly.
Inputs: nodeId (required), breakpoints.
scan_design_systemB
Scan a file and extract the implied design system: colors, fonts, spacing, components.
Inputs: pageId.
screenshotB
Take a screenshot of the current canvas view or a specific node.
Inputs: nodeId, scale.
search_libraryA
Search for components across local file and team libraries.
Inputs: query (required), scope.
select_all_by_typeC
Select all nodes of a specific type.
Inputs: type, withinId.
set_annotationC
Create or update an annotation with markdown support.
Inputs: nodeId (required), text (required).
set_auto_layoutB
Configure auto-layout on a frame. All spacing is 8px grid-snapped.
Inputs: nodeId (required), direction, padding, paddingTop, +8 more.
set_blend_modeD
Set blend mode.
Inputs: nodeId (required), blendMode.
set_breakpointB
Resize a frame to a standard breakpoint.
Inputs: nodeId (required), breakpoint.
set_clip_contentB
Toggle clip content on a frame.
Inputs: nodeId (required), clip (required).
set_constraintsC
Set responsive constraints on a node.
Inputs: nodeId (required), horizontal, vertical.
set_corner_radiusC
Set corner radius with per-corner control.
Inputs: nodeId (required), radius, topLeft, topRight, +2 more.
set_effectsC
Add shadows, blur, or background blur effects.
Inputs: nodeId (required), shadow, innerShadow, blur, +2 more.
set_fillC
Set fill on a node. Supports solid, linear gradient, radial gradient, and multiple fills.
Inputs: nodeId (required), type, color, gradient, +2 more.
set_fixed_positionA
Pin a layer so it stays fixed during scroll (sticky nav, floating button).
Inputs: nodeId (required), position.
set_focusA
Focus viewport on a specific node.
Inputs: nodeId (required), zoom.
set_gradient_fillA
Set a gradient fill with a simple angle + 2 colors API.
Inputs: nodeId (required), startColor (required), endColor (required), angle.
set_image_fillA
Set an image fill on a node from URL.
Inputs: nodeId (required), url (required), scaleMode.
set_layout_sizingB
Set how a child behaves in auto-layout.
Inputs: nodeId (required), horizontal, vertical.
set_opacityC
Set node opacity.
Inputs: nodeId (required), opacity (required).
set_overflowB
Set overflow clipping on a frame.
Inputs: nodeId (required), clip (required).
set_rotationC
Rotate a node.
Inputs: nodeId (required), angle (required).
set_selectionB
Select nodes and optionally scroll viewport to them.
Inputs: nodeIds (required), zoomToFit.
set_strokeB
Add border/stroke to a node.
Inputs: nodeId (required), color, weight, align, +2 more.
set_text_contentA
Update text content of a text node without changing styles.
Inputs: nodeId (required), text (required).
set_transitionB
Set the default transition for all prototype links on a frame.
Inputs: nodeId (required), transition, duration, easing.
set_visibilityB
Show/hide a node.
Inputs: nodeId (required), visible (required).
sort_pagesC
Sort pages alphabetically or by custom order.
Inputs: order, customOrder.
stack_for_mobileA
Convert horizontal layouts to vertical stacking for mobile.
Inputs: nodeId (required).
style_text_rangeB
Apply mixed styling within a text node. Style specific character ranges differently.
Inputs: nodeId (required), ranges (required).
suggest_color_paletteC
Generate a color palette from a single brand color.
Inputs: brandColor (required), mode.
suggest_improvementsC
AI-powered design improvement suggestions based on the design intelligence engine.
Inputs: nodeId (required).
suggest_type_scaleC
Generate a typography scale.
Inputs: baseSize, ratio.
swap_componentC
Swap one component instance for another.
Inputs: instanceId (required), newComponentId (required), preserveOverrides.
swap_modeA
Switch the active mode on a variable collection.
Inputs: collectionId (required), mode (required).
switch_pageB
Switch to a different page.
Inputs: pageId (required).
type_auditA
Find every unique text style in a page. Flag off-scale sizes, inconsistent weights, and orphaned styles.
Inputs: nodeId.
type_check_measureA
Check line length (45-75 chars optimal), line-height, and letter-spacing for readability.
Inputs: nodeId (required).
type_create_styleB
Create a local text style from a text node.
Inputs: nodeId (required), name (required).
type_list_stylesB
List all text styles with usage count.
Inputs: nodeId.
type_normalizeB
Normalize all text to the nearest type scale value. Fix off-scale sizes.
Inputs: nodeId (required), ratio.
type_pair_suggestB
Suggest font pairings based on currently loaded fonts.
Inputs: primaryFont.
type_replace_fontB
Replace one font family with another across all text nodes.
Inputs: find (required), replace (required), nodeId.
type_scale_applyA
Apply a type scale to all text in a frame. Maps headings, body, and caption sizes to the scale.
Inputs: nodeId (required), ratio, baseSize.
type_set_hierarchyC
Set heading levels with proper size, weight, and line-height ratios.
Inputs: nodeId (required), levels.
ungroup_nodesC
Ungroup a group node.
Inputs: nodeId (required).
update_variableC
Update a variable value.
Inputs: variableId (required), value (required), mode.
validate_componentC
Validate a component follows design system rules.
Inputs: nodeId (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 203 tools
Despite 203 tools, many have distinct purposes, but there is overlap between similar tools like 'batch_replace_color' and 'color_replace_global', or 'fix_spacing' and 'normalize_design'. The high volume increases the chance of an agent selecting a suboptimal tool.
Naming follows a consistent verb_noun snake_case pattern (e.g., 'align_nodes', 'create_frame', 'batch_rename'). A few longer names exist (e.g., 'create_component_docs') but the pattern holds well overall.
203 tools is far beyond typical server scope. While the domain is broad, this count is excessive and likely to overwhelm both agents and users. Most well-designed MCP servers have 3-15 tools.
The tool surface is exceptionally comprehensive, covering creation, manipulation, styling, components, variables, exports, accessibility, audits, and design intelligence. It covers nearly all common Figma operations.
Maintenance
Related MCP Connectors
The Figma MCP server brings Figma design context directly into your AI workflow.
Meta Ads and Google Ads MCP server: 250+ tools for Claude, ChatGPT, Cursor and Codex.
The Canva MCP server connects AI assistants (like Claude, ChatGPT, and Cursor) to Canva's API, enabling them to create and manage designs directly within chat conversations. Key capabilities include generating new designs from prompts, autofilling templates, searching and resizing existing designs, importing files from URLs, exporting designs as PDFs or images, and managing folders and comments without switching between tools.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAn MCP server that gives AI coding tools access to Figma design data for accurate one-shot implementation of designs.49 npm28MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that connects AI clients to Figma, enabling real-time reading, creation, and modification of designs using natural language.MIT
- AlicenseCqualityDmaintenanceA comprehensive MCP server that enables Claude to read, create, edit, and generate code from Figma designs. Supports design tokens, code generation to multiple frameworks, and accessibility checks.1004MIT
- AlicenseCqualityDmaintenanceA design-intelligent MCP server for Figma with 201 tools across 17 categories, featuring built-in design rules like 8px grid, type scales, semantic colors, accessibility checks, and component defaults.20318 npm2MIT