Gives AI coding agents access to Figma design data, providing layout, styling, and content information for implementing designs.
The Figma MCP server demonstrates good definition quality with two well-named, verb-first tools backed by detailed parameter schemas using Zod validation. Both tools have substantive descriptions (>100 chars). Tool names (get_figma_data, download_figma_images) clearly convey intent. Parameters are extensively described with regex patterns, enums, and format constraints. However, output schemas are not explicitly documented in the visible code, limiting visibility into what downstream tools receive. Error handling is present (validation rejection capture, path traversal checks) but recovery guidance in error messages is not visible in the provided code snippet. The download tool exhibits particularly sophisticated parameter engineering with conditional requirements (imageRef vs gifRef vs nodeId rendering), though this complexity could confuse LLMs without clearer conditional documentation. No security issues detected, credentials are not exposed as parameters.
Download SVG and PNG images used in a Figma file based on the IDs of image or icon nodes. Images will be saved relative to the server's image directory.
Get comprehensive Figma file data including layout, content, visuals, and component information
Output schemas not documented. Code shows input validation via Zod but does not expose what fields/structure the tools return. LLMs cannot plan downstream calls or extract correct fields without seeing return types.
download_figma_images has conditional parameter logic (imageRef vs gifRef vs nodeId rendering) that is documented in descriptions but not formally encoded. The description states 'Leave blank when downloading Vector SVG images or animated GIFs (use gifRef instead)', this is implicit dependency documentation. Should clarify in parameter descriptions which combinations are valid and which are mutually exclusive.
Error handling visible for validation rejection (path traversal check) and parameter validation, but recovery guidance text not shown in code excerpt. The rejection capture mechanism exists (captureValidationReject) but the full error messages to the LLM (via rejectionDetails function) are not visible. Cannot assess whether error messages guide the agent to next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 78 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 53 | - | v1 |
get_figma_data has an optional 'depth' parameter with minimal documentation ('OPTIONAL. Do NOT use unless explicitly requested by the user.'). Does not explain what depth values are valid (numeric range, what happens at depth=0, depth=10, etc.). LLMs cannot reason about appropriate values without constraints.