Figma Slots Write Support π§©
Slots went GA at Config 2026 β and as of this release, Figma Console MCP can create, inspect, populate, and reset them programmatically. This closes #29 (the tracker's most-requested feature) and is based on community PR #77 by @simonesalvucci, updated and hardened against the GA Plugin API (live-validated 2026-07-09, including an end-to-end test slotting a real design-system Button instance into a slotted card component).
Added
figma_create_slotβ create a SlotNode inside a component viacreateSlot(); the linked SLOT component property is created automatically and renaming the slot renames the property. Works on standalone COMPONENTs and variant components inside a COMPONENT_SET (the beta-era restriction was lifted at GA).figma_get_slotsβ list slots on a COMPONENT, COMPONENT_SET (aggregated across variants), or INSTANCE: ids, names, property keys, dimensions, layout, current children.figma_append_to_slotβ populate an instance's slot by cloning an existing node (sourceNodeId) or creating new content (nodeType+ properties). Slot content cannot be set viafigma_set_instance_propertiesβ Figma rejects it by design; this tool is the population path. Clones snap to the slot origin in NONE-layout slots so they stay visible.figma_reset_slotβ clear a slot's content on an instance.figma_add_slot_propertyβ retrofit an existing frame as a slot via a manual SLOT property binding; supportsdescriptionandpreferredValues; works with frames inside a set's variant components; preserves the frame's existing property references.figma_add_component_propertynow supports theSLOTtype, plusdescription/preferredValuesoptions.
Changed
figma_add_component_propertyvalidatesdefaultValueupfront: required and non-empty for TEXT, INSTANCE_SWAP, and VARIANT (Figma rejects an empty VARIANT default β live-validated), optional for BOOLEAN, omitted for SLOT.
Fixed
- Desktop Bridge relay:
slotresponse payloads are now forwarded through the ui.html result whitelist (previously dropped forAPPEND_TO_SLOT). APPEND_TO_SLOTno longer empties the slot before validating the source node β a badsourceNodeIdleaves existing slot content untouched, and cloning a main component is rejected before the clone (no more orphaned duplicates).
β οΈ Plugin re-import required
code.js + ui.html changed. In Figma Desktop: Plugins β Development β Import plugin from manifest β ~/.figma-console-mcp/plugin/manifest.json (the MCP server refreshes this folder on startup).
Tool counts: 112 (Local) / 101 (Cloud) / 9 (Remote read-only).
Full changelog: https://github.com/southleft/figma-console-mcp/blob/main/CHANGELOG.md#1350---2026-07-09