Model Context Protocol server for Figma integration
Two tools with complete schemas and descriptions, but quality is uneven. get_figma_data has a vague description ('When the nodeId cannot be obtained...') that doesn't clearly state what the tool does or when to use it. download_figma_images has better clarity but both tools lack output schema documentation. Parameters are well-typed with Zod and mostly described, but descriptions could be more actionable. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles. Error handling returns structured responses but lacks recovery guidance.
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
get_figma_data description is confusing and doesn't clearly state primary purpose. 'When the nodeId cannot be obtained, obtain the layout information...' is a conditional statement, not a clear action description. Should be: 'Fetch Figma file structure and design metadata. Optionally retrieve a specific node by ID and traverse to a specified depth.'
No output schemas documented for either tool. LLMs cannot plan downstream operations or extract fields without knowing the response structure. get_figma_data returns YAML-formatted metadata/nodes/globalVars; download_figma_images returns success/failure with file list. Both should have explicit schema documentation.
No tool annotations despite clear risk profiles. download_figma_images is WRITE (destructive/side-effect); get_figma_data is READ_ONLY. Missing destructiveHint and readOnlyHint annotations prevent agents from reasoning about safety and retry semantics.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | <=2025-11-25 | v2 |
Error messages lack recovery guidance. Both tools return isError=true with a message, but do not suggest next steps. E.g., 'Error fetching file: 404 Not Found' should be 'File not found. Verify the fileKey is correct (format: abc123def456) or call list_files() to discover available files.'
download_figma_images localPath parameter description warns against 'special character escaping' but does not specify which characters are forbidden or what escaping means. Should clarify: 'Absolute filesystem path (no URL encoding; use native OS separators: / on Unix, \ on Windows).'