Model Context Protocol server for Figma integration
Two tools with partial schema coverage. get_figma_data has a complete input schema with descriptions for all parameters (fileKey, nodeId, depth), but the description is vague ('When the nodeId cannot be obtained...'). download_figma_images has a complex nested schema (array of objects with nodeId, imageRef, fileName) but lacks clarity on when imageRef is required vs optional. Neither tool documents output schemas, which is critical for LLM planning. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles (READ_ONLY vs WRITE). Parameter descriptions are present but minimal (10-50 chars), below the 72-char baseline for A+ tools.
Download SVG and PNG images used in a Figma file based on the IDs of image or icon nodes
When the nodeId cannot be obtained, obtain the layout information about the entire Figma file
No output schemas documented for either tool. LLMs cannot plan downstream calls or extract required fields (e.g., node IDs for chaining). get_figma_data should document the structure of returned layout data; download_figma_images should document file paths and success/failure per node.
Tool descriptions are vague and task-focused rather than LLM-optimized. 'When the nodeId cannot be obtained, obtain the layout information...' is a conditional statement, not a clear action description. Should be: 'Fetch layout and structure data from a Figma file. Use when you need to explore the design hierarchy or cannot locate a specific node ID.'
download_figma_images parameter 'imageRef' is marked optional with unclear semantics. Description says 'If a node has an imageRef fill, you must include this variable. Leave blank when downloading Vector SVG images.' This is contradictory (optional but required conditionally). Should clarify: when is imageRef required vs omitted, and what happens if provided incorrectly?
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
No tool annotations despite clear risk profiles. get_figma_data is READ_ONLY; download_figma_images is WRITE (creates files). Annotations (readOnlyHint, destructiveHint) help LLMs reason about safety and idempotency. Missing per spec 2026-07-28.
No error handling guidance. What happens if fileKey is invalid? If a node cannot be found? If file write fails? Responses should guide LLM recovery (e.g., 'Node not found. Call get_figma_data first to discover available nodes.').