MCP server for Figma with write access via Plugin API
This server presents significant definition quality gaps across 24 tools. While many tools have descriptions and some schema presence, the majority lack complete input schemas in the visible code, parameter descriptions are frequently missing or generic, and several tools show no visible schema definitions. The naming is generally sound (verb-focused: figma_alignment, figma_annotations, figma_nodes), but schema completeness is the primary blocker. Only 2 tools (figma_alignment, figma_annotations) show full input schemas with parameter descriptions in the provided source. The remaining 22 tools have descriptions only, with no visible schema definitions in the sample code provided. Per the hard scoring rules, tools without visible schemas must score 0 on schema dimension. This architectural issue, definitions likely residing in separate handler files not shown, means I cannot verify schemas exist. Conservative scoring applies: when schemas are not visible, they score 0.
Align, position, distribute, or spread nodes with professional precision
Create and manage design annotations using Figma native API - annotations are stored directly on nodes and auto-cleanup when nodes are deleted
Configure and manage auto layout (flexbox) on frames and components - comprehensive layout control
Perform boolean operations (union, subtract, intersect, exclude) on vector paths and shapes
Create, manage, and organize components and component sets - comprehensive component system operations
Configure constraint behavior for responsive design - control how nodes resize with their parent
Retrieve dev resource links from components - get URLs configured for development integration
22 of 24 tools lack visible input schemas. Per hard scoring rules, tools without visible schemas must score 0 on schema dimension. Source code only shows complete schemas for figma_alignment and figma_annotations; remaining handlers are not provided. This indicates schemas may exist in handler files but cannot be verified from the sample.
Parameter descriptions missing for 22 tools. Only figma_alignment and figma_annotations show individual parameter descriptions. Missing descriptions force LLMs to guess intent: 'horizontalOperation' without description leaves ambiguity about valid enum values and when to use each.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 35 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 41 | - | v1 |
Add and manage visual effects - shadows, blurs, background blurs with full property control
Configure and execute exports of design assets to various formats (PNG, SVG, PDF, etc.)
Add, manage, and remove fill colors and gradients with advanced paint and pattern support
Query and manage fonts - access available fonts from the font database with search and filtering capabilities
Manage document hierarchy - move, reparent, and organize nodes within the document structure
Import and manage images - add image fills with proper scaling and positioning
Create and manage component instances - instantiate components and manage overrides
Get measurements and positioning information - retrieve size, position, and layout metrics for nodes
Create, update, duplicate, and delete nodes - comprehensive node management with property control
Create and manage pages - add, duplicate, and organize pages within the document
Check the connection status of the Figma plugin - monitor plugin health and connectivity
Manage current selection - select, deselect, and query selected nodes in the canvas
Add and manage stroke colors, gradients, and stroke properties with advanced paint support
Create and manage design styles - manage text styles, color styles, and style libraries
Create and manage text - add text nodes with comprehensive typography and formatting control
Create and manage variables - define and link design variables for flexible design systems
Create and edit vector paths - define custom vector shapes with control points and curves
Generic descriptions lacking specificity. Tool descriptions like 'Configure and manage auto layout (flexbox) on frames and components' and 'Perform boolean operations (union, subtract, intersect, exclude) on vector paths and shapes' lack WHEN/WHERE/WHAT details that guide LLM tool selection. State WHAT the tool does, WHEN to use it, and any prerequisites.' Current descriptions are too brief (40-50 chars) to properly disambiguate from similar tools.
No output schemas documented. For a server with 24 tools performing complex mutations (alignment, layout, effects, etc.), absence of documented return types means LLMs cannot infer what fields they'll receive or what downstream tools they can chain to. This blocks composition pattern compliance.
No visible error recovery guidance. The error handling in src/mcp-server.ts returns YAML-formatted errors without recovery context. Per pattern:recovery-guide, error responses should tell the LLM what to do next: 'User not found. Try search_users() with a partial name.' Current implementation: catches errors, dumps them as YAML with isError=true. No guidance on retryability, alternatives, or corrective actions.
WRITE tools lack confirmation/dry-run patterns. 14 WRITE tools (delete, create, modify) have no visible confirmation or dry-run support. Per pattern:confirmation-request, 'Irreversible operations (delete, send, publish) should support a dry-run or confirmation step. Agents make mistakes, a confirm_before_execute pattern prevents catastrophic errors.' figma_nodes, figma_pages, figma_components, figma_hierarchy all perform destructive operations without visible safeguards.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Per spec alignment (2026-07-28), current MCP encourages tool annotations to guide agent behavior. figma_alignment is clearly destructive/non-idempotent but lacks destructiveHint. figma_measurements is read-only but lacks readOnlyHint. These enable safer, more informed agent planning.