MCP server for Figma integration enabling AI assistants to interact with Figma documents and designs
Server has 37 tools with significant quality gaps. Most tools lack input parameter schemas (only 2 of 37 have visible schemas: get_node_info and get_nodes_info). Descriptions are present but generic (avg ~50 chars, well below 194-char baseline). No output schemas documented. Parameter descriptions missing entirely for most tools. Error handling is minimal, tools return raw JSON or generic error strings without recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications. Composition is reasonable (verb_noun naming, single responsibility), but schema and parameter documentation are critically deficient.
Clone a node in Figma
Create an instance of a component in Figma
Create connections between nodes in Figma
Create a new frame in Figma
Create a new rectangle in Figma
Create a new text node in Figma
Delete multiple nodes from Figma
35 of 37 tools have NO input parameter schemas. Only get_node_info, get_nodes_info, and create_rectangle have visible schemas. This violates the critical rule: 'If a tool has NO input schema at all: its schema score MUST be 0.' LLMs cannot validate inputs or understand parameter types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
Delete a node from Figma
Export a node as an image from Figma
Get annotations from nodes in Figma
Get detailed information about the current Figma document
Get instance overrides from a component instance in Figma
Get all local components from the Figma document
Get detailed information about a specific node in Figma
Get detailed information about multiple nodes in Figma
Get reactions from nodes in Figma
Get information about the current selection in Figma
Get all styles from the Figma document
Move a node to a new position in Figma
Get detailed information about the current selection in Figma, including all node details
Resize a node in Figma
Scan and retrieve nodes by specific types in Figma
Scan and retrieve all text nodes in the Figma document
Set an annotation on a node in Figma
Set axis alignment on a frame in Figma
Set the corner radius of a node in Figma
Set a default connector in Figma
Set the fill color of a node in Figma
Set instance overrides on component instances in Figma
Set item spacing on a frame in Figma
Set the layout mode of a frame in Figma
Set layout sizing on a frame in Figma
Set annotations on multiple nodes in Figma
Set text content for multiple text nodes in Figma
Set padding on a frame in Figma
Set the stroke color of a node in Figma
Set the text content of a text node in Figma
Tool descriptions are generic and under 50 characters on average (e.g., 'Set the fill color of a node in Figma'). Baseline is 194 chars. Descriptions lack WHEN to use, prerequisites, or return value hints. This violates pattern:tool-description.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications (READ_ONLY, WRITE, DESTRUCTIVE). LLMs cannot infer which tools are safe to retry or have side effects. Violates pattern:tool-annotation.
Error handling is minimal. Tools return raw JSON or generic error strings ('Error getting document info: ...') without recovery guidance. No categorization of retryable vs fatal errors. Violates pattern:recovery-guide and pattern:error-classification.
No output schemas documented. Tools return JSON.stringify(result) without specifying what fields are in 'result'. LLMs cannot plan downstream tool calls or extract required IDs. Violates pattern:tool and pattern:response-shaper.