figma-console-mcp
The most comprehensive MCP server for Figma — design tokens, variables, components, write tools, version history diff, accessibility audits, FigJam, Slides, and more. Local (WebSocket Desktop Bridge plugin) and Cloudflare Workers (paired + remote) modes.
npm · fingerprint 0a2fabde700812d03f28e181 · repository · RSS
121tools
2recorded versions
45dtracked
unchanged 8d
What changed
Changed between 2 September 2026 and 5 October 2026 (first seen 2026-10-05 14:49 UTC)
1 description rewritten, 2 schema or annotation changes with the description left byte-identical.
--- pinned/figma_check_design_parity +++ observed/figma_check_design_parity { "description": "Compare a Figma component's design specs against code-side data to find discrepancies. Returns a parity score, categorized discrepancies, and actionable fix items for both design-side (Figma tool calls) and code-side (file edits). Read the component source code first, then pass the data in codeSpec.", "execution": { - "type": "number" + "type": [ + "number", + "string" + ] }, "maxWidth": { - "type": "number" + "type": [ + "number", + "string" + ] }, "minHeight": { - "type": "number" + "type": [ + "number", + "string" + ] }, "minWidth": { - "type": "number" + "description": "px number or CSS length like '320px'", + "type": [ + "number", + "string" + ] }, "paddingBottom": { "type": "number"
--- pinned/figma_export_tokens +++ observed/figma_export_tokens { - "description": "Export Figma variables to design token files in your codebase. Bidirectional with figma_import_tokens — together they replace Style Dictionary and Tokens Studio's export pipeline for the popular styling methods.\n\nFULLY-IMPLEMENTED OUTPUT FORMATS:\n • dtcg — W3C DTCG JSON. Canonical pivot format. Round-trip safe via `$extensions[\"figma-console-mcp\"]`.\n • css-vars — CSS custom properties with mode-aware selectors (`:root`, `.dark`, `[data-theme=...]`).\n • tailwind-v4 — Tailwind v4 `@theme inline` block. Token-to-namespace mapping (color/*, spacing/*, radius/*, etc.) generates Tailwind utility classes.\n • tailwind-v3 — `tailwind.config.js` theme.extend object grouped under Tailwind's theme keys (colors, spacing, fontFamily, etc.).\n • scss — `$var: value;` declarations. Multi-mode emits a primary variable + a mode-keyed SCSS map for runtime access.\n • ts-module — `export const tokens = { ... } as const` with derived `Tokens` type. Multi-mode tokens emit as `{ Light: ..., Dark: ... }` objects.\n • json-flat — flat key-value JSON (`{\"ds-color-primary\": \"#4085F2\"}`) for custom build scripts.\n • json-nested — nested object JSON mirroring the token path tree.\n • style-dictionary-v3 — SD v3 source format with bare `value`/`type` keys (back-compat for existing SD users).\n • tokens-studio — Tokens Studio multi-file layout (`$themes.json` + `$metadata.json` + per-set files). Preserves Figma collection/mode bindings for round-trip with the TS plugin.\n\nZERO-ARG USAGE: With a tokens.config.json at your project root, just call the tool with no args — it picks up source dir, output formats, modes, prefix, etc. from config. See the response's `suggestedScaffold` payload when no config is detected — present it to the user, write the scaffold via your file tools, then call again.\n\nMERGE STRATEGY: Default `strategy: \"merge\"` only writes tokens that actually changed in Figma since the last sync. Use `dry-run` to preview what would change. Use `replace` to wipe and rewrite (rare; for resetting drift).\n\nDTCG DIALECT (`dtcgDialect`, applies to dtcg/json-flat/json-nested outputs): legacy (default): hex-string colors, maximum compatibility (Style Dictionary v4, Tokens Studio). 2025: DTCG 2025.10 object colors/dimensions (Style Dictionary v5+). figma_import_tokens accepts BOTH dialects regardless of this setting.\n\nROUND-TRIP SAFETY: Figma variable IDs are preserved in DTCG `$extensions[\"figma-console-mcp\"]` so renames on either side don't create duplicates. The same metadata enables non-destructive incremental sync via figma_import_tokens. Variable scopes (when non-default) and per-platform codeSyntax (when set) are stashed there too and round-trip through import.", + "description": "Export Figma variables to design token files in your codebase. Bidirectional with figma_import_tokens — together they replace Style Dictionary and Tokens Studio's export pipeline for the popular styling methods.\n\nFULLY-IMPLEMENTED OUTPUT FORMATS:\n • dtcg — W3C DTCG JSON. Canonical pivot format. Round-trip safe via `$extensions[\"figma-console-mcp\"]`.\n • css-vars — CSS custom properties with mode-aware selectors (`:root`, `.dark`, `[data-theme=...]`).\n • tailwind-v4 — Tailwind v4 `@theme inline` block. Token-to-namespace mapping (color/*, spacing/*, radius/*, etc.) generates Tailwind utility classes.\n • tailwind-v3 — `tailwind.config.js` theme.extend object grouped under Tailwind's theme keys (colors, spacing, fontFamily, etc.).\n • scss — `$var: value;` declarations. Multi-mode emits a primary variable + a mode-keyed SCSS map for runtime access.\n • ts-module — `export const tokens = { ... } as const` with derived `Tokens` type. Multi-mode tokens emit as `{ Light: ..., Dark: ... }` objects.\n • json-flat — flat key-value JSON (`{\"ds-color-primary\": \"#4085F2\"}`) for custom build scripts.\n • json-nested — nested object JSON mirroring the token path tree.\n • style-dictionary-v3 — SD v3 source format with bare `value`/`type` keys (back-compat for existing SD users).\n • tokens-studio — Tokens Studio multi-file layout (`$themes.json` + `$metadata.json` + per-set files). Preserves Figma collection/mode bindings for round-trip with the TS plugin.\n\nZERO-ARG USAGE: With a tokens.config.json at your project root, just call the tool with no args — it picks up source dir, output formats, modes, prefix, etc. from config. See the response's `suggestedScaffold` payload when no config is detected — present it to the user, write the scaffold via your file tools, then call again.\n\nWRITE SAFETY: Export REPLACES the contents of each target file with the current Figma state — it does not merge into it. Under the default `strategy: \"merge\"` the tool refuses to write (and changes nothing) when overwriting an existing DTCG file would delete tokens it does not manage: tokens added by hand, or tokens from collections outside this export. It also refuses when a requested collectionId is not in the file it read, or when the export is empty — both usually mean a different file is active in Figma than you intended. Variables deleted in Figma are removed from the file as normal. Use `dry-run` to preview, `replace` to overwrite unconditionally. Generated files record the Figma file they came from (a `Source: Figma file <key>` header line; `figmaFileKey` in DTCG), and the default strategy also refuses to overwrite a file that was generated from a DIFFERENT Figma file. Plain-JSON formats (json-flat, json-nested, style-dictionary-v3, tokens-studio) cannot carry that record — pin `figmaFile` in tokens.config.json for a hard guarantee. Every response includes `source` (the Figma file name/key the data was read from) — check it.\n\nDTCG DIALECT (`dtcgDialect`, applies to dtcg/json-flat/json-nested outputs): legacy (default): hex-string colors, maximum compatibility (Style Dictionary v4, Tokens Studio). 2025: DTCG 2025.10 object colors/dimensions (Style Dictionary v5+). figma_import_tokens accepts BOTH dialects regardless of this setting.\n\nROUND-TRIP SAFETY: Figma variable IDs are preserved in DTCG `$extensions[\"figma-console-mcp\"]` so renames on either side don't create duplicates. The same metadata enables non-destructive incremental sync via figma_import_tokens. Variable scopes (when non-default) and per-platform codeSyntax (when set) are stashed there too and round-trip through import.", "execution": { "taskSupport": "forbidden" }, - "description": "Filesystem path to write the output file(s) to. Relative paths resolve against the project root (the directory containing tokens.config.json) or cwd if no config. When omitted, the output is returned inline in the response (suitable for the AI to inspect or write via its own file tools).", + "description": "Where to write the output. Treated as a DIRECTORY by default — each generated file (e.g. tokens.tokens.json, tokens.css) is written inside it and the directory is created if missing. Treated as a FILE when it is an existing file or ends in a token-file extension (.json, .css, .scss, .less, .ts, .js): the export must then produce exactly ONE file (one format, no splitByMode/splitByCollection — combine with collectionIds to re-export a single collection into e.g. typography.tokens.json), which is written at exactly that path, overwriting it. A file path combined with a multi-file export is rejected with an explanatory error before anything is written. End the path with '/' to force directory handling. Relative paths resolve against the project root (the directory containing tokens.config.json) or cwd if no config. When omitted, the output is returned inline in the response (suitable for the AI to inspect or write via its own file tools).", "type": "string" }, "prefix": { - "description": "How to handle existing output files. 'merge' (default) diffs against current contents and writes only changed tokens, preserving code-only additions. 'replace' wipes and rewrites. 'dry-run' computes the diff and reports what would change without writing.", + "description": "How to handle existing output files. Export always replaces a target file's contents with the current Figma state — it does not merge token-by-token. 'merge' (default) is the SAFE mode: it refuses to write, leaving the file untouched, if overwriting an existing DTCG file would delete tokens the export does not manage (hand-added tokens, or tokens from collections not included in this export). 'replace' overwrites unconditionally. 'dry-run' reports what would be written without writing.", "enum": [ "merge", "replace",
--- pinned/figma_generate_component_doc +++ observed/figma_generate_component_doc { "description": "Generate AI-complete component documentation from a Figma component. Produces structured markdown with anatomy, per-variant color tokens, typography, content guidelines (parsed from Figma description), design annotations (animation timings, interaction specs, accessibility notes from Dev Mode), icon mapping, spacing tokens, and design-code parity analysis. Merges Figma design data with optional code-side info (CVA definitions, sub-component APIs, source files). Output works with any docs platform. For richest output, read the component source code first and pass codeInfo. Pass history: { figma: true, git: true } to add an ongoing '## History' section: per-version design changes pulled from Figma version history and scoped to this component, plus recent git commits touching its source files.", "execution": { + "storybookUrl": { + "description": "URL of a running Storybook (or the component's story) to link from the doc. Without it, a stories file in sourceFiles is linked as \"Stories source\", not \"Storybook\".", + "type": "string" + }, "subComponents": { "description": "Sub-components that compose this component (e.g., AlertTitle, AlertDescription)", "items": {
Current tools
Show all 121 tool fingerprints
figjam_auto_arrange
figjam_create_code_block
figjam_create_connector
figjam_create_section
figjam_create_shape_with_text
figjam_create_stickies
figjam_create_sticky
figjam_create_table
figjam_get_board_contents
figjam_get_connections
figma_add_component_property
figma_add_mode
figma_add_shape_to_slide
figma_add_slot_property
figma_add_text_to_slide
figma_analyze_component_set
figma_append_to_slot
figma_arrange_component_set
figma_audit_component_accessibility
figma_audit_design_system_report
figma_batch_create_variables
figma_batch_update_variables
figma_blame_node
figma_capture_screenshot
figma_check_design_parity
figma_clear_console
figma_clone_node
figma_create_child
figma_create_component_set
figma_create_slide
figma_create_slot
figma_create_variable
figma_create_variable_collection
figma_delete_comment
figma_delete_component_property
figma_delete_node
figma_delete_slide
figma_delete_variable
figma_delete_variable_collection
figma_diagnose
figma_diff_versions
figma_ds_analyze
figma_ds_extract_component
figma_ds_extract_tokens
figma_ds_scaffold
figma_ds_setup_storybook
figma_ds_status
figma_ds_verify
figma_duplicate_slide
figma_edit_component_property
figma_execute
figma_execute_across_files
figma_export_tokens
figma_focus_slide
figma_generate_changelog
figma_generate_component_doc
figma_get_annotation_categories
figma_get_annotations
figma_get_changes_since_version
figma_get_comments
figma_get_component
figma_get_component_details
figma_get_component_for_development
figma_get_component_for_development_deep
figma_get_component_image
figma_get_console_logs
figma_get_design_changes
figma_get_design_system_kit
figma_get_design_system_summary
figma_get_file_at_version
figma_get_file_data
figma_get_file_for_plugin
figma_get_file_versions
figma_get_focused_slide
figma_get_library_component_by_key
figma_get_library_components
figma_get_library_variables
figma_get_selection
figma_get_slide_content
figma_get_slide_grid
figma_get_slide_transition
figma_get_slots
figma_get_status
figma_get_styles
figma_get_text_styles
figma_get_token_values
figma_get_variables
figma_import_library_variable
figma_import_tokens
figma_instantiate_component
figma_lint_design
figma_list_open_files
figma_list_slides
figma_move_node
figma_navigate
figma_post_comment
figma_reconnect
figma_reload_plugin
figma_rename_mode
figma_rename_node
figma_rename_variable
figma_reorder_slides
figma_reset_slot
figma_resize_node
figma_scan_code_accessibility
figma_search_components
figma_set_annotations
figma_set_description
figma_set_fills
figma_set_image_fill
figma_set_instance_properties
figma_set_slide_background
figma_set_slide_transition
figma_set_slides_view_mode
figma_set_strokes
figma_set_text
figma_setup_design_tokens
figma_skip_slide
figma_take_screenshot
figma_update_variable
figma_watch_console
Watch this server yourself
If you run this server, put the proxy in front of it. It pins these exact fingerprints on first connect and stops the session if they move.
npx -y mcp-pin@0.2.3 -- <your figma-console-mcp command>
Or subscribe to this page's RSS feed to be told when it changes.
Badge
The badge states one fact about time and nothing else. It never claims a server is safe.
[](https://mcp-pin.gautamkhosla.com/servers/887a16d7eda469c9.html)