Releases: arinspunk/claude-talk-to-figma-mcp
Releases · arinspunk/claude-talk-to-figma-mcp
Release list
1.0.0 - Stable Release
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
depthparameter toget_node_infoandget_nodes_info(default 1) to prevent token overflow in giant documents. Children beyond the depth limit return as minimal stubs with a_childrenTruncated: trueflag, 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_nodewithparentIdsupport 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_instancetool 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\ automaticfigma.loadAllPagesAsync()` to prevent "unloaded page" runtime errors. parentIdin Components: AddedparentIdsupport tocreate_component_from_nodefor deterministic container injection via the relay server.- Plugin Compatibility: Fixed syntax errors in
code.jsto ensure support for diverse Figma plugin execution environments.
- **Fixed
Changed
⚠️ Breaking Changes for Standependence: To guarantee race-condition-free parallel execution, implicit page caching has been completely ripped out:set_current_pageis now completely blocked and deprecated by the server.- State-altering creation tools (e.g.
create_frame,create_rectangle,create_text) now strictly require theparentIdargument explicitly to declare where elements should be instantiated. - Updated tool descriptions to explicitly guide LLMs towards using the
parentId.
v0.9.2
[0.9.2] - 2026-02-28
Fixed
- 🔧 Zod compatibility: Updated
zoddependency from^3.24.0to^3.25.0to align with@modelcontextprotocol/sdk@latest(v1.27.1+) which requireszod: "^3.25 || ^4.0". This resolves theCannot read properties of undefined (reading '_zod')error that causedtools/listto fail and prevented all 54 tools from loading in Claude Desktop and Cursor (#80, #81).
v0.9.1
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 pagecreate_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 notecreate_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 arrowheadscreate_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
localPositionsupport toget_node_infoandget_nodes_info(batch) for full parity with local coordinate transforms (Thanks to ehs208 - PR #57). - 📝 Fixed-Width Text: Added
widthparameter tocreate_texttool for better layout control and wrapping (Thanks to leeyc09 - PR #59).
Fixed
- 🔄 Image Features:
- 🎯 Coordinate System: Fixed mismatch between
get_node_infoandmove_nodeby clarifying and unifying local vs global coordinate usage across all tools (Thanks to ehs208 - PR #57). - ⚡ Performance & Stability:
- 🐳 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_transformrotates the image fill inside the node boundary; to rotate the entire node, userotate_node. External URLs are subject to theallowedDomainslist inmanifest.json. - API Parity: Standardized
x/ydescriptions across all creation and modification tools to explicitly reference local coordinates.
v0.9.0
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)
- Transformation:
- 🌓 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.tsnow 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_varianttool 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_channelaccepting 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 internalpingcommand for connection verification.
[0.8.1] - 2026-02-11
Added
- 🎨 Selection Colors: New
set_selection_colorstool 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.jsandREADME.mdthat was causing connection failures. (Thanks to ehs208 - PR #47) - 🛡️ Type Safety: Added missing
set_selection_colorstoFigmaCommandunion type to resolve TypeScript compilation errors.
[0.8.0] - 2026-02-01
Added
- 🚀 Unified Launcher: New
npx claude-talk-to-figma-mcpcommand 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
FigmaCommandunion 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_idtool to apply local text styles to nodes (Thanks to Rob Dearborn - PR #43) - 🏷️ Rename Node: New
rename_nodetool 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, andset_current_page(Thanks to sk (kovalevsky) - PR #32)
Fixed
- 🚀 Performance: Optimized component lookup using
findAllWithCriteriato 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_channelby making the channel parameter strictly mandatory (Thanks to Timur - PR #29)
[0.6.1] - 2025-08-02
Fixed
set_stroke_colorTool: Corrected a validation rule that incorrectly rejected astrokeWeightof0. 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.0development 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
- DXT Implementation: Taylor Smits - PR #17
[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
chmodcommand 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_colorwherea: 0(transparent) was incorrectly converted toa: 1(opaque) - Fixed stroke weight handling where
strokeWeight: 0(no border) was incorrectly converted tostrokeWeight: 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.weightconstant for centralized stroke configuration - Comprehensive test suite for
set_stroke_colorcovering 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_colortoset_stroke_color - Enhanced separation of concerns between MCP layer (business logic) and Figma plugin (pure translator)
- Re...
v0.8.2
Added
- 🔄 Component Variants: New
set_instance_varianttool 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_channelaccepting 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 internalpingcommand for connection verification.
v0.8.1
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
v0.7.0 - Text Styles, Rename Node & Page Management
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
0.6.1 - Tool fix
🚀 Tool Fix
✨ What's New
- 🔧 The
set_stroke_colortool now correctly accepts astrokeWeightof 0 for creating invisible strokes.
⚡ Installation
🆘 Need Help?
- 📖 Setup Guide: README.md
- 🐛 Report Issues: GitHub Issues
Credits: Taylor Smits for Tool fix
v0.6.0 - DXT Package Support
🚀 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
- Recommended: Download
.dxtfile below and double-click - Advanced: Manual installation via source code
🆘 Need Help?
- 📖 Setup Guide: README.md
- 🐛 Report Issues: GitHub Issues
Credits: Taylor Smits for DXT implementation