Skip to content

Releases: arinspunk/claude-talk-to-figma-mcp

1.0.0 - Stable Release

Choose a tag to compare

@arinspunk arinspunk released this 18 Apr 15:37

Added

  • 🤖 Multi-Agent / Parallel Execution: Added a server-side FIFO command queue to the WebSocket relay. This allows multiple AI agents (e.g. Claude Code sub-agents or Cursor parallel processes) to work on the same Figma file simultaneously without blocking the single-threaded Figma plugin or causing timeouts. Achieves up to ~1.87x speedup for complex generation tasks. (Thanks to mmabas77 - PR #77)
  • 🛡️ Node Info Depth Control: Added depth parameter to get_node_info and get_nodes_info (default 1) to prevent token overflow in giant documents. Children beyond the depth limit return as minimal stubs with a _childrenTruncated: true flag, allowing for progressive disclosure. (Thanks to mmabas77 - PR #90)
  • ✨ Plugin Quality Improvements: Enhanced stability and usability across core tools. (Thanks to mmabas77 - PR #87)
    • Robust layout grids (properly handling STRETCH vs fixed-pixel modes).
    • Enhanced clone_node with parentId support for direct container injection.
    • Smart text wrapping and numeric font weight mapping (mapping 100-900 to Figma styles).
    • Unified styling (fill/stroke) for all basic shape creation tools.
    • Automatic column grids for top-level frames for better alignment.
    • Safe color utilities to prevent accidental black-fills on malformed input data.
  • 🎯 Unicast Response Routing: Responses from Figma are now esively routed to the exact agent that requested them via session tracking, eliminating broadcast noise across multiple connected clients.
  • 🧱 Component Detaching: Added detach_instance tool to convert component instances back into regular frames. (Thanks to hoxinzhen - PR #85)
  • 🎨 Local Style Creation: New tools to create and manage reusable styles in Figma's local library. (Thanks to Kejsaren - PR #83)
    • create_text_style – Create typography styles (font, size, spacing, etc).
    • create_paint_style – Create reusable SOLID color styles.
    • create_effect_style – Create reusable shadow and blur styles.
  • ✨ Prototype Interaction Tools: Added two new tools for managing Figma prototype logic. (Thanks to ravszmig - PR #82)
    • set_reactions – Programmatically configure triggers (CLICK, HOVER, etc.), actions (NAVAY, BACK), and transitions. Includes smart logic to handle overlay position and background behavior.
    • get_reactions – Inspect and debug existing interactions on any node.
  • 🛡️ Robust Type Coercion: Implementation of Zod-based coercion helpers (coerce.number(), coerceBoolean, coerceJson) to guarantee that all tools correctly handle parameters sent as strings (common in MCP/WebSocket environments). (Thanks to ehs208 - PR #79)
  • 🛠️ Integration & DX Fixes:
    • **Fixed get_pages\ automatic figma.loadAllPagesAsync()` to prevent "unloaded page" runtime errors.
    • parentId in Components: Added parentId support to create_component_from_node for deterministic container injection via the relay server.
    • Plugin Compatibility: Fixed syntax errors in code.js to ensure support for diverse Figma plugin execution environments.

Changed

  • ⚠️ Breaking Changes for Standependence: To guarantee race-condition-free parallel execution, implicit page caching has been completely ripped out:
    • set_current_page is now completely blocked and deprecated by the server.
    • State-altering creation tools (e.g. create_frame, create_rectangle, create_text) now strictly require the parentId argument explicitly to declare where elements should be instantiated.
    • Updated tool descriptions to explicitly guide LLMs towards using the parentId.

v0.9.2

Choose a tag to compare

@arinspunk arinspunk released this 28 Feb 16:37

[0.9.2] - 2026-02-28

Fixed

  • 🔧 Zod compatibility: Updated zod dependency from ^3.24.0 to ^3.25.0 to align with @modelcontextprotocol/sdk@latest (v1.27.1+) which requires zod: "^3.25 || ^4.0". This resolves the Cannot read properties of undefined (reading '_zod') error that caused tools/list to fail and prevented all 54 tools from loading in Claude Desktop and Cursor (#80, #81).

v0.9.1

Choose a tag to compare

@arinspunk arinspunk released this 28 Feb 11:20

Added

  • 🗒️ FigJam Support: Six new tools for reading and writing FigJam boards (Thanks to Rob Dearborn)
    • get_figjam_elements – read all stickies, connectors, shapes-with-text, sections, and stamps on the current page
    • create_sticky – create a sticky note with text and colour (yellow, pink, green, blue, purple, red, orange, teal, gray, white)
    • set_sticky_text – update the text on an existing sticky note
    • create_shape_with_text – create a labelled FigJam shape (SQUARE, ELLIPSE, ROUNDED_RECTANGLE, DIAMOND, TRIANGLE_UP, TRIANGLE_DOWN, PARALLELOGRAM_RIGHT, PARALLELOGRAM_LEFT)
    • create_connector – draw an arrow or line between two nodes (by ID) or between canvas positions, with configurable line style and arrowheads
    • create_section – create a labelled colour region for grouping board content
  • 🖼️ Image Manipulation Tools: Complete image handling support for Figma nodes (Thanks to ehs208 - PR #61)
    • set_image_fill: Apply images from URL or base64 data with scaleMode options (FILL, FIT, CROP, TILE).
    • get_image_from_node: Extract image metadata (hash, scaleMode, rotation, filters).
    • replace_image_fill: Replace existing images while preserving transforms and filters.
    • apply_image_transform: Adjust image position, scale, rotation (90° increments), and scaleMode.
    • set_image_filters: Apply 7 types of color/light adjustments (exposure, contrast, saturation, temperature, tint, highlights, shadows).
  • 📐 Coordinate Consistency: Added localPosition support to get_node_info and get_nodes_info (batch) for full parity with local coordinate transforms (Thanks to ehs208 - PR #57).
  • 📝 Fixed-Width Text: Added width parameter to create_text tool for better layout control and wrapping (Thanks to leeyc09 - PR #59).

Fixed

  • 🔄 Image Features:
    • Image rotation properly implemented (90-degree increments) inside node fills (#61).
    • Image filters are now preserved when replacing images using replace_image_fill (#61).
  • 🎯 Coordinate System: Fixed mismatch between get_node_info and move_node by clarifying and unifying local vs global coordinate usage across all tools (Thanks to ehs208 - PR #57).
  • ⚡ Performance & Stability:
    • Optimized get_nodes_info using a high-performance native batch implementation in the plugin.
    • Fixed plugin race condition by awaiting setCharacters in text node creation (#59).
    • Pinned zod dependency to ^3.24.0 to resolve installation failures in containerized/fresh environments (#59).
  • 🐳 Docker: Fixed Dockerfile to run as a network bridge (WebSocket server) and added comprehensive setup documentation (Thanks to ehs208 - PR #56).

Notes

  • Image Handling: apply_image_transform rotates the image fill inside the node boundary; to rotate the entire node, use rotate_node. External URLs are subject to the allowedDomains list in manifest.json.
  • API Parity: Standardized x/y descriptions across all creation and modification tools to explicitly reference local coordinates.

v0.9.0

Choose a tag to compare

@arinspunk arinspunk released this 20 Feb 19:27

Changelog

📖 Commands | 🚀 Installation | 🛠️ Contributing | 🆘 Troubleshooting | 📜 Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

[0.9.0] - 2026-02-20

Added

  • 🛠️ 20 New Tools: Massive expansion of Figma capabilities including:
    • Transformation: rotate_node, reorder_node, convert_to_frame.
    • Properties: set_node_properties (visibility, lock, opacity).
    • Visuals: set_gradient, boolean_operation, set_svg, get_svg, set_image.
    • Layout & Guides: set_grid, get_grid, set_guide, get_guide.
    • Documentation: set_annotation, get_annotation.
    • Variables: get_variables, set_variable, apply_variable_to_node, switch_variable_mode.
    • Pages: duplicate_page.
      (Thanks to mmabas77 - PR #76)
  • 🌓 Dark Mode: Added a dark and light mode toggle to the plugin UI for better integration with Figma's themes.
  • 📋 Enhanced Clipboard: The plugin now copies the full connection instruction instead of just the channel name, making it easier to paste into Claude.

Fixed

  • ⚡ Error propagation: Error responses from Figma now resolve immediately instead of waiting for the 60s timeout. The WebSocket message handler in websocket.ts now robustly checks for errors at both the root level (myResponse.error) and nested inside the result (myResponse.result.error).
  • 🎨 UI Refinement: Adjusted plugin dimensions and mode selector opacity for a cleaner look. Structured the UI script into a class for better maintainability.

[0.8.2] - 2026-02-15

Added

  • 🔄 Component Variants: New set_instance_variant tool to change variant properties without recreating the instance. Preserves instance overrides like text and colors. (Thanks to ehs208 - PR #50)
  • 📁 Custom Installation Path: The launcher now supports an optional second argument to specify a custom installation directory (e.g., npx claude-talk-to-figma-mcp ./my-folder).
  • 🇰🇷 Korean Localization: Added UX/UI specialist prompt in Korean (prompts/prompt-ux-ui-specialist-ko.md). (Thanks to ehs208 - PR #54)

Fixed

  • 📡 Channel Reliability: Added verification via ping when joining a channel to prevent false success messages and ensure the Figma plugin is active. (Thanks to ehs208 - PR #52)
  • 🔗 Channel Verification: Fixed join_channel accepting invalid channel codes. Now verifies connection by sending a ping after join, providing fast feedback (12s timeout) instead of waiting for first command to timeout (60s). Added internal ping command for connection verification.

[0.8.1] - 2026-02-11

Added

  • 🎨 Selection Colors: New set_selection_colors tool to recursively change colors of all vector nodes within the current selection. Ideal for coloring icon sets. (Thanks to mmabas77 - PR #49)
  • 📝 Enhanced Text Alignment: Added full support for horizontal and vertical text alignment (Top/Middle/Bottom and Left/Center/Right/Justified). (Thanks to mmabas77 - PR #49)
  • 🌍 RTL Support: Improved text alignment handling for Right-to-Left languages like Arabic. (Thanks to mmabas77 - PR #49)

Fixed

  • 🚀 Setup Command: Fixed incorrect MCP server command in configure-claude.js and README.md that was causing connection failures. (Thanks to ehs208 - PR #47)
  • 🛡️ Type Safety: Added missing set_selection_colors to FigmaCommand union type to resolve TypeScript compilation errors.

[0.8.0] - 2026-02-01

Added

  • 🚀 Unified Launcher: New npx claude-talk-to-figma-mcp command that handles repository setup, dependencies, and execution in a single step.
  • 🛠️ Smart Bootstrapping: Automated Bun detection and installation prompts for an optimized experience.

Fixed

  • 🛡️ Type Safety: Updated FigmaCommand union types to include all new tools, resolving TypeScript compilation errors during CI/CD.
  • 🏗️ CI/CD Permissions: Fixed 403 errors in GitHub Actions by granting explicit write permissions for DXT package releases.

[0.7.0] - 2026-01-31

Added

  • 🎨 Text Styles: New set_text_style_id tool to apply local text styles to nodes (Thanks to Rob Dearborn - PR #43)
  • 🏷️ Rename Node: New rename_node tool for better document organization (Thanks to Beomsu Koh - PR #36)
  • 📑 Page Management: Comprehensive suite of tools for managing document pages: create_page, delete_page, rename_page, get_pages, and set_current_page (Thanks to sk (kovalevsky) - PR #32)

Fixed

  • 🚀 Performance: Optimized component lookup using findAllWithCriteria to resolve initialization timeouts (Thanks to Rob Dearborn - PR #42)
  • 📸 SVG Export: Corrected format parameter handling for SVG exports and increased timeouts for large exports (Thanks to sk (kovalevsky) - PR #32)
  • 🛡️ Validation: Improved Zod validation for join_channel by making the channel parameter strictly mandatory (Thanks to Timur - PR #29)

[0.6.1] - 2025-08-02

Fixed

  • set_stroke_color Tool: Corrected a validation rule that incorrectly rejected a strokeWeight of 0. This change allows for the creation of invisible strokes, aligning the tool's behavior with Figma's capabilities. (Thanks to Taylor Smits - PR #16)

[0.6.0] - 2025-07-15

Added

  • 🚀 DXT Package Support: Complete implementation of Anthropic's Desktop Extensions format for Claude Desktop
  • 📦 Automated CI/CD Pipeline: GitHub Actions workflow for automatic DXT package generation and release distribution
  • 🔧 DXT Build Scripts: New npm scripts for DXT packaging (pack, build:dxt, sync-version)
  • 📋 .dxtignore Configuration: Optimized package exclusions for minimal DXT file size (11.6MB compressed)
  • 🎯 Dual Distribution Strategy: NPM registry for developers + DXT packages for end users

Changed

  • ⚡ Installation Experience: Reduced setup time from 15-30 minutes to 2-5 minutes via one-click DXT installation
  • 📖 Documentation: Enhanced README with comprehensive DXT installation instructions and troubleshooting
  • 🏗️ Build Process: Improved version synchronization between package.json and manifest.json
  • 🔄 Release Workflow: Automated DXT package attachment to GitHub releases

Technical Details

  • Added @anthropic-ai/dxt@^0.2.0 development dependency for DXT packaging
  • Implemented robust error handling and validation in CI/CD pipeline
  • Enhanced build artifacts with 90-day retention for testing and rollback capabilities
  • Established quality gates ensuring DXT packages only build after successful test suites

Credits

[0.5.3] - 2025-06-20

Added

  • Added Windows-specific build command (build:win: tsup) for improved cross-platform compatibility
  • Enhanced build process to support development on Windows systems without chmod dependency

Fixed

  • Resolved Windows build compatibility issues where chmod command would fail on Windows systems
  • Improved developer experience for Windows users by providing dedicated build script

Changed

  • Separated Unix/Linux build process (with executable permissions) from Windows build process
  • Updated installation documentation to reflect platform-specific build commands

[0.5.2] - 2025-06-19

Fixed

  • Fixed critical opacity handling bug in set_stroke_color where a: 0 (transparent) was incorrectly converted to a: 1 (opaque)
  • Fixed stroke weight handling where strokeWeight: 0 (no border) was incorrectly converted to strokeWeight: 1
  • Resolved problematic || operator usage that affected falsy values in color and stroke operations

Added

  • Extended applyDefault() utility function to handle stroke weight defaults safely
  • Added FIGMA_DEFAULTS.stroke.weight constant for centralized stroke configuration
  • Comprehensive test suite for set_stroke_color covering edge cases and integration scenarios
  • Enhanced validation for RGB components in stroke operations

Changed

  • Improved architectural consistency by applying the same safe defaults pattern from set_fill_color to set_stroke_color
  • Enhanced separation of concerns between MCP layer (business logic) and Figma plugin (pure translator)
  • Re...
Read more

v0.8.2

Choose a tag to compare

@arinspunk arinspunk released this 15 Feb 17:36

Added

  • 🔄 Component Variants: New set_instance_variant tool to change variant properties without recreating the instance. Preserves instance overrides like text and colors. (Thanks to ehs208 - PR #50)
  • 📁 Custom Installation Path: The launcher now supports an optional second argument to specify a custom installation directory (e.g., npx claude-talk-to-figma-mcp ./my-folder).
  • 🇰🇷 Korean Localization: Added UX/UI specialist prompt in Korean (prompts/prompt-ux-ui-specialist-ko.md). (Thanks to ehs208 - PR #54)

Fixed

  • 📡 Channel Reliability: Added verification via ping when joining a channel to prevent false success messages and ensure the Figma plugin is active. (Thanks to ehs208 - PR #52)
  • 🔗 Channel Verification: Fixed join_channel accepting invalid channel codes. Now verifies connection by sending a ping after join, providing fast feedback (12s timeout) instead of waiting for first command to timeout (60s). Added internal ping command for connection verification.

v0.8.1

Choose a tag to compare

@arinspunk arinspunk released this 11 Feb 18:19

Added

  • 🎨 Selection Colors: New set_selection_colors tool to recursively change colors of all vector nodes within the current selection. (Thanks to mmabas77)
  • 📝 Enhanced Text Alignment: Added full support for horizontal and vertical text alignment. (Thanks to mmabas77)
  • 🌍 RTL Support: Improved text alignment handling for Right-to-Left languages like Arabic. (Thanks to mmabas77)

Fixed

  • 🚀 Setup Command: Fixed incorrect MCP server command in setup scripts. (Thanks to ehs208)
  • 🛡️ Type Safety: Fixed TypeScript compilation errors after PR integration.
  • ⚡ Performance: Optimized plugin performance with chunked processing to prevent timeouts.

v0.8.0

Choose a tag to compare

@arinspunk arinspunk released this 03 Feb 21:15

Unified Launcher and smart bootstrapping

v0.7.0 - Text Styles, Rename Node & Page Management

Choose a tag to compare

@arinspunk arinspunk released this 01 Feb 18:31

Added

  • 🎨 Text Styles: New set_text_style_id tool to apply local text styles to nodes (PR #43)
  • 🏷️ Rename Node: New rename_node tool for better document organization (PR #36)
  • 📑 Page Management: Comprehensive suite of tools: create_page, delete_page, rename_page, get_pages, and set_current_page (PR #32)

Fixed

  • 🚀 Performance: Optimized component lookup resolving timeouts (PR #42)
  • 📸 SVG Export: Corrected format parameter handling for SVG exports (PR #32)
  • 🛡️ Validation: Mandatory channel validation for join_channel (PR #29)

0.6.1 - Tool fix

Choose a tag to compare

@arinspunk arinspunk released this 06 Aug 05:29

🚀 Tool Fix

✨ What's New

  • 🔧 The set_stroke_color tool now correctly accepts a strokeWeight of 0 for creating invisible strokes.

⚡ Installation

🆘 Need Help?

Credits: Taylor Smits for Tool fix

v0.6.0 - DXT Package Support

Choose a tag to compare

@arinspunk arinspunk released this 15 Jul 20:30

🚀 One-Click Installation with DXT Support

Quick Install: Download claude-talk-to-figma-mcp-0.6.0.dxt.zip → Double-click → Auto-install in Claude Desktop

✨ What's New

  • 🎯 DXT Package Support: One-click installation
  • 🔧 Production Pipeline: Automated CI/CD builds for reliable releases
  • 📦 Optimized Package: 12.6MB | 5,705 files | Production-ready

📋 Installation Options

  1. Recommended: Download .dxt file below and double-click
  2. Advanced: Manual installation via source code

🆘 Need Help?

Credits: Taylor Smits for DXT implementation