MCP server that lets an agent write design specs onto a Figma canvas
Server has 5 tools with basic descriptions but critical gaps in schema completeness and parameter documentation. Tool names follow verb_noun convention (figma_status, render_screen, create_variables, list_screens, delete_screen) which is good. However, most tools lack detailed input parameter schemas, only render_screen and create_variables show partial schema structure (generic 'object' type with minimal field documentation). No output schemas are documented. Error handling is minimal; no recovery guidance provided. Parameter descriptions are absent or generic. The server is STDIO-only, which caps protocol readiness at 50 regardless of definition quality.
Create or update a Figma variable collection of colours. Run this before rendering screens so the design tokens exist as real variables.
Remove a screen previously rendered by this bridge, by its key.
Check whether the Figma plugin is connected and which file it has open. Call this first if anything seems wrong.
List the screens this bridge has rendered into the current file, with their keys.
Render a screen onto the Figma canvas from a typed spec. Frames become auto-layout frames, text becomes real text nodes. Re-rendering the same 'key' replaces the previous version in place rather than duplicating it.
Input schemas are missing or incomplete. figma_status and list_screens have empty {} schemas with no parameter documentation. render_screen and create_variables show only generic 'object' type with vague descriptions ('ScreenSpec', 'VariableSpec') but no actual field definitions, types, or constraints visible in source.
No output schemas documented. LLMs cannot predict what fields render_screen, create_variables, or list_screens return, forcing them to guess at downstream field names and types. This breaks tool chaining.
Parameter descriptions are missing or generic. delete_screen accepts 'key' with description 'The key of the screen to delete' but no format, length, or example guidance. render_screen's 'spec' parameter description is just 'ScreenSpec - contains key, name, width, background, x, y, and root node tree', not actionable for an LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
No error recovery guidance. If the plugin is not connected, figma_status returns an error but provides no actionable next step. If render_screen fails due to invalid spec, the LLM has no guidance on what to fix.
Destructive tool (delete_screen) lacks confirmation or dry-run support. An agent could accidentally delete all screens without a safety mechanism.