Skip to main content
Glama
southleft

figma-console-mcp

by southleft

figma_diff_versions

Compare two Figma file versions to reveal page-structure changes and optional per-component deep diffs, including property and metadata updates.

Instructions

Diff two versions of a Figma file. Always returns a cheap page-structure diff (added/removed/renamed pages, 2 API calls). Pass component_ids to additionally get per-node deep diffs at depth=2 (added/removed children, name/description changes, componentPropertyDefinitions changes for COMPONENT_SETs, boundVariables deltas) — costs 2 API calls per scoped node. Use 'current' for to_version to diff against HEAD. v1.25.0: when the Desktop Bridge plugin is connected, description and Dev Mode annotation changes are ALSO tracked via a session buffer and surfaced under scoped_nodes[].metadata_changes[] and unscoped_metadata_changes[] — Figma REST omits these from version snapshots so they're otherwise invisible. STILL NOT tracked: instances of components on the canvas, raw layout properties (layoutSizingHorizontal/Vertical, unbound paddings/widths), raw visual properties (cornerRadius, unbound fills), variable VALUE changes, style content, and metadata edits made while the plugin was disconnected. See scope_coverage and notes[] for the full coverage map and complementary tools.

Input Schema

NameRequiredDescriptionDefault
modeNoOutput verbosity. summary=counts only, standard=names+counts (default), detailed=full property/binding details.standard
fileUrlNoFigma file URL. Uses current URL if omitted.
to_versionYesThe later version_id to compare to. Use 'current' for HEAD.
from_versionYesThe earlier version_id to compare from. Get from figma_get_file_versions.
component_idsNoOptional. Node IDs (typically COMPONENT_SETs) to diff in detail. If omitted, falls back to the current Figma selection. If neither is available, only the page-structure diff is returned. Use figma_get_design_system_kit or figma_search_components to discover IDs explicitly.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.46.0

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so thoroughly: it discloses API-call costs, exactly what is returned by default, what additional detail `component_ids` unlocks, and the special Desktop Bridge session-buffer behavior for metadata changes. It also lists what remains untracked, which is strong behavioral disclosure for a diff tool.

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?

The description is front-loaded with the core purpose and each clause generally earns its place by covering cost, coverage, or limitations. It is dense and somewhat long for a single paragraph, but the complexity of the tool and the importance of the exclusions justify most of the length.

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

Completeness5/5

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

There is no output schema, so the description must explain return behavior, and it does: default page-structure diff, optional per-node deep diffs, metadata changes via the Desktop Bridge, and explicit coverage gaps. Combined with the cost and limitation details, an agent has enough information to call the tool correctly and interpret the result.

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 100%, so the baseline is 3, but the description adds meaningful semantics beyond the schema for `component_ids`: it explains that deep diffs run at depth=2, what kinds of changes are included for COMPONENT_SETs, and that each scoped node costs 2 API calls. It does not add much for `mode`, `fileUrl`, or `from_version` beyond the schema, which keeps it from being a 5.

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

Purpose5/5

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

The description opens with a specific verb and resource: "Diff two versions of a Figma file." It clearly distinguishes the core operation from sibling version tools by explaining the page-structure baseline and the optional per-node deep diff, so an agent can identify what this tool does without opening the schema.

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

Usage Guidelines3/5

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

The description gives clear in-tool usage guidance, such as using `current` for `to_version` and passing `component_ids` for deep diffs, and it enumerates important coverage exclusions. However, it never explicitly names when to use this tool versus close siblings like `figma_get_changes_since_version` or `figma_generate_changelog`; it only points vaguely to complementary tools via `notes[]`.

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

Deploy Server

Other Tools