Skip to main content
Glama
LeoGCode

figma-reader-mcp

by LeoGCode

figma_dev_status

Read-only

Retrieve Figma nodes' development status (Ready for dev, Completed) with change history and filtering by page or status.

Instructions

Dev Mode status: the nodes marked Ready for dev or Completed, and those unmarked since, newest change first. Read off each frame's, section's or component's own status record; each entry has id, type, name, page, path and the fields figma_get_node reports as devStatus: status (ready_for_dev, completed, none, or unknown for a value this decoder has no name for), raw (the value Figma stores: BUILD for Ready for dev, COMPLETED for Completed), previous and previousRaw, changedAt (ISO-8601), and by (a Figma user id) and note when the record has them. status none with a previous status other than none is a mark that came off at changedAt; none with previous none is a record Figma keeps on a node never marked, listed only with status none or any unless a user or note on it says a person left it. With no status given, neverMarked counts those records the listing left out (absent when it left none out); status any lists them. Internal-only pages, soft-deleted nodes and superseded library copies are left out. 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 nodes on this page; a name no page has is an error listing the pages
limitNoDefault 100
statusNoOnly this status: none covers marks that came off as well as records that never said anything else, and any is every record. Default: every node marked now or before (status or previous other than none), and any record with a user or note on it
refreshNoExport the live file again rather than read a local or cached copy (see the server's instructions, or figma-reader help)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.2

TDQS

A3.6/5.0
Behavior4/5

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

Annotations only declare readOnlyHint and openWorldHint, so the description carries real weight and delivers it: ordering (newest change first), exclusions (internal pages, soft-deleted nodes, superseded library copies), default inclusion semantics, neverMarked accounting, and how dating works (exportedAt/account, or fileModifiedAt for a disk read). It adds substantive behavior beyond the safety hints, though the 'see the server's instructions' deferrals are gaps.

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?

The purpose is front-loaded, and the text is information-dense with little filler, but it is a single 130-word paragraph of nested clauses and parentheticals with no structural separation of usage, output fields or constraints, making it hard to scan. Size is large for a 5-parameter tool but mostly load-bearing rather than redundant.

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 takes on return-shape disclosure and enumerates the entry fields (id, type, name, page, path, pathIds, status, raw, previous, previousRaw, changedAt, by, note, neverMarked) plus the exception cases. It is largely complete, but key mechanics such as pagination/limit behavior and refresh/caching semantics are outsourced to external docs rather than explained.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description restates status semantics that the schema's own status description already covers ('none' marks that came off, 'any' is every record, default listing rule), adding only marginal clarification of how 'none' interacts with a prior 'previous' value; it does not document limit, page-exclusion or refresh beyond what the schema says.

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 opening clause names a specific resource and scope: nodes marked Ready for dev or Completed plus those unmarked since, ordered newest change first, and it points at each node's own status record (contrasting with figma_get_node's devStatus view). The verb is implicit rather than stated (it never says 'list'), and the dense clause structure blurs the statement, but an agent can still identify the resource and its filter behavior.

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?

Scope rules are given (internal-only pages, soft-deleted nodes and superseded library copies are left out; default listing covers nodes marked now or before), and figma_get_node is referenced as the per-node alternative. However there is no explicit when-to-use-this-instead-of guidance versus figma_changes, figma_diff or figma_get_node, and operational details are deferred to 'figma-reader help' rather than stated.

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