Skip to main content
Glama
LeoGCode

figma-reader-mcp

by LeoGCode

figma_changes

Read-only

List top-level Figma layers created or edited since a date or duration, with newest edit times and per-layer edited node counts.

Instructions

Top-level layers created or edited since a date or duration, from Figma's edit times per node. A top-level layer is a page's child or a child of its sections, rolled up from everything under it: lastEditedAt is the newest time in it, editedNodes how many of its nodes were created or edited at or after since, created whether the layer itself was; page and path say where it is. Newest first; the editedNodes beside the list counts each such node once. This is edit metadata from one snapshot: it shows nothing deleted (figma_diff lists removals) and never what an edit was, only when. A node that records no time counts only where Figma also moved an ancestor's; undatedNodes counts those, and text layers are among them in every export seen. byPage counts each page's layers and editedNodes, every page counted, excluded ones too; page or exclude_pages (default: the project's excludePages, echoed as excludedPages) narrow the list and its counts before the limit, which is shared between pages so one page cannot crowd out the rest. Where path does not split on ' / ' into its names, pathIds follows it: one id per name, page first. Dated by exportedAt and account, or fileModifiedAt for a file read from disk, as the server's instructions say (figma-reader help on the command line).

Input Schema

NameRequiredDescriptionDefault
fileYesA local .fig path, a Figma file key or a figma.com/design/... URL (see the server's instructions, or figma-reader help)
pageNoOnly layers on this page; a name no page has is an error listing the pages
limitNoDefault 50
sinceYesAn ISO-8601 date (2026-10-01, midnight UTC) or date and time (2026-10-01T09:30:00Z; local time without an offset), or a duration back from now: 30m, 12h, 7d, 2w. The result's since is the instant it was read as
refreshNoExport the live file again rather than read a local or cached copy (see the server's instructions, or figma-reader help)
exclude_pagesNoPages to leave out, by name, before the limit: their changes neither fill a list nor count in counts, and byPage still counts them. Default: excludePages in the project's .figma-reader.json, unless page is given; an empty list covers every page

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.2

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare readOnlyHint/openWorldHint; the description goes well beyond them, disclosing that results are a single-snapshot edit view that shows nothing deleted and never reveals what an edit was, only when. It also explains rolling-up semantics, undated-node handling, shared limit behavior across pages, and count-scoping rules for page/exclude_pages.

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

Conciseness3/5

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

Purpose is front-loaded, but the definition is one dense block of unusually long clauses mixing result-field semantics, counting rules, and repeated pointers to 'the server's instructions (figma-reader help)' that appear three times. Almost every sentence carries information, yet the packing makes key constraints hard to extract.

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?

With no output schema, the description carries the output burden and largely does so, naming lastEditedAt, editedNodes, created, page, path, pathIds, undatedNodes, byPage, and excludedPages. Residual gaps remain around exact shapes of byPage/pathIds entries, but an agent has enough to call it and interpret results.

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 real meaning: the returned 'since' is the instant the value was read as, exclude_pages defaults to the project's excludePages and is echoed as excludedPages, and the limit is shared across pages so one page cannot crowd out others. It also clarifies page/path/pathIds interplay beyond the schema's text.

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?

Opens with a specific verb+resource+scope: 'Top-level layers created or edited since a date or duration, from Figma's edit times per node.' It then defines what a top-level layer is and explicitly distinguishes itself from the sibling figma_diff ('figma_diff lists removals'). An agent can tell this apart from figma_search or figma_get_tree without opening a schema.

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?

States its operating context clearly (edit metadata from one snapshot, since a date/duration) and routes deletions to figma_diff. It does not, however, state when to prefer it over options like figma_search or figma_diff for non-removal history, so the when-not side is only partially covered.

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