Skip to main content
Glama

figma_migrate

Swap every instance of one component set for another, matching variants and keeping overrides. Preview the changes first, then apply them in one undo step.

Instructions

Move every instance of one component (set) to another, e.g. from an old Accordion set to the new one, or from one library to another: each instance is swapped to the matching variant (same property values; map renamed properties or values), keeping its overrides. Without approved it only reports what would change (instances per target variant, and the ones with no match). With approved it applies everything in one undo step.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toYesNew component or set
fromYesOld component or set: name, { id } or { key }
targetNoWhere to look: a node id (a frame, section) or 'page' (default: the selection)
approvedNo
valueMapNoRenamed values per (new) property, e.g. { "Hierarchy": { "Primary": "Contained" } }
propertyMapNoRenamed variant properties, old → new, e.g. { "Type": "Hierarchy" }

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the mutation, the dry-run vs apply distinction, single-undo reversibility, override preservation, and what the report contains (instances per target variant plus no-match cases). It omits permission/auth requirements and the exact effect on unmatched instances, so not quite full marks.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core action followed by the variant-matching rule and the dry-run/apply behavior. Dense but every clause carries information; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter mutation tool with no annotations and no output schema, the description covers the key behaviors an agent needs (preview mode, apply mode, override retention, report contents). Missing only auth/prerequisite details and edge-case handling of unmatched instances.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 83% so the schema already documents most parameters, but the description adds meaning beyond it: it ties propertyMap/valueMap to renamed variant properties and values, and clarifies the from/to migration targets and the 'matching variant' semantics. This exceeds the baseline-3 case.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: moving every instance of one component (set) to another, with concrete examples (old Accordion set to new one, library to library). This is unambiguous and hard to confuse with a generic transform tool, though it names no sibling explicitly for differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly explains the two operating modes: without 'approved' it is a dry run that reports changes, and with 'approved' it applies everything in one undo step. This gives strong context for choosing how to call it, but it never names an alternative tool or states when-not to use it (e.g., vs figma_apply_transformations).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.