Skip to main content
Glama
dynstat

Figma Dash MCP Server

by dynstat

batch_create

Create multiple Figma elements in a single round-trip. Supports nested children to build full component trees with one API call.

Instructions

Create MULTIPLE Figma elements in a SINGLE round-trip.
THIS IS THE PRIMARY TOOL — use it for ALL designs.

════════════════════════════════════════════════════════════
KEY CAPABILITY: supports NESTED CHILDREN inside frames.
This lets you build full component trees in one call:

  {
    "type": "frame", "name": "Card", "x":100,"y":100,"width":320,"height":200,
    "fill":"#1E1E2E", "cornerRadius":16,
    "children": [
      {"type":"rectangle","x":0,"y":0,"width":320,"height":4,"fill":"#7C3AED"},
      {"type":"text","content":"Hello","x":16,"y":20,"fontSize":18,"color":"#FFFFFF"},
      {"type":"ellipse","x":270,"y":12,"width":40,"height":40,"fill":"#3B82F6"}
    ]
  }

Children x/y are RELATIVE to their parent frame.
Nesting works to any depth.
════════════════════════════════════════════════════════════

── SCREENSHOT → FIGMA WORKFLOW ────────────────────────────────────────────
Share any screenshot or describe any UI. The AI will:
  1. Analyze the layout, colors, typography, spacing
  2. Generate a complete `elements` array representing the design
  3. Fire ONE batch_create call → complete Figma reproduction

── Supported types ────────────────────────────────────────────────────────
  "frame"      container / artboard (supports children)
  "rectangle"  box, card, button, divider, progress bar
  "ellipse"    circle, avatar, badge dot, arc/donut ring segment
  "vector"     ANY curved/custom shape via SVG path string (waves, icons, charts)
  "text"       any text content
  "line"       horizontal separator

── Shape properties ───────────────────────────────────────────────────────
  fill / hexColor  hex    solid fill color e.g. "#1A1D2E"
  fillOpacity      0–1    fill alpha (0.05–0.15 for glass)
  noFill           bool   transparent fill (for stroke-only rings)
  gradient         dict   {angle:0-360, stops:[{color,position,opacity}]}
  cornerRadius     int    rounded corners px (frame/rect only)
  stroke           hex    border color
  strokeWidth      int    border px
  strokeOpacity    0–1    border alpha (0.1–0.25 for glass)
  opacity          0–1    node opacity
  name             str    layer name

── Ellipse arc properties (for donut/pie segments) ────────────────────────
  arcStartAngle   float  degrees, 0=top(12 o'clock), clockwise
  arcEndAngle     float  degrees, 0=top(12 o'clock), clockwise
  arcInnerRadius  float  0=full pie, 0.5–0.8=donut ring

── Vector / SVG path properties ───────────────────────────────────────────
  pathData        str    SVG path string (M,L,C,Q,A,Z commands)
  windingRule     str    'NONZERO' (default) | 'EVENODD'

── Effects ────────────────────────────────────────────────────────────────
  shadow         {color,x,y,blur,spread,opacity}
  innerShadow    {color,x,y,blur,spread,opacity}
  blur           float   layer blur radius
  backgroundBlur float   frosted glass (use with fillOpacity < 1)

── Text properties ────────────────────────────────────────────────────────
  content / text   str   text characters
  color / hexColor hex   text fill color
  fontSize         int   10–14 caption, 16–20 body, 24–48 heading, 56+ hero
  fontStyle        str   Regular|Medium|SemiBold|Bold|ExtraBold|Light|Italic
  textAlign        str   left|center|right
  letterSpacing    float px spacing (1–4 for uppercase labels)
  lineHeight       float px line height

── Glassmorphism recipe ──────────────────────────────────────────────────
{
  "type":"rectangle",
  "fill":"#FFFFFF", "fillOpacity":0.08, "cornerRadius":16,
  "stroke":"#FFFFFF", "strokeOpacity":0.12, "strokeWidth":1,
  "backgroundBlur":20,
  "shadow":{"color":"#000000","x":0,"y":8,"blur":32,"spread":0,"opacity":0.4}
}

── Wave / Area Chart recipe ────────────────────────────────────────────────
{
  "type":"vector",
  "pathData":"M 0,120 C 50,60 90,140 140,80 C 190,20 240,100 290,50 L 290,160 L 0,160 Z",
  "x":0,"y":0,"width":300,"height":160,
  "gradient":{"angle":180,"stops":[{"color":"#8B5CF6","position":0,"opacity":0.9},{"color":"#1C1E2A","position":1,"opacity":0}]},
  "shadow":{"color":"#7C3AED","x":0,"y":0,"blur":24,"spread":0,"opacity":0.7}
}

── Multi-color Donut Ring recipe ───────────────────────────────────────────
Stack three ellipses at the same x/y with different arc angles and stroke colors:
{"type":"ellipse","x":50,"y":250,"width":160,"height":160,"noFill":true,
 "stroke":"#10B981","strokeWidth":16,"arcStartAngle":0,"arcEndAngle":120,"arcInnerRadius":0.68}
{"type":"ellipse","x":50,"y":250,"width":160,"height":160,"noFill":true,
 "stroke":"#F59E0B","strokeWidth":16,"arcStartAngle":130,"arcEndAngle":230,"arcInnerRadius":0.68}
{"type":"ellipse","x":50,"y":250,"width":160,"height":160,"noFill":true,
 "stroke":"#7C3AED","strokeWidth":16,"arcStartAngle":240,"arcEndAngle":350,"arcInnerRadius":0.68}

Returns: {success:bool, nodeIds:[...], count:int, errors:[...]}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
elementsYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses nested children support, relative coordinate behavior, and the return structure {success, nodeIds, count, errors}. It also reveals that elements support any depth and that x/y are relative to parent frames. Since no annotations are provided, this is substantial disclosure of behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-organized with clear sections, code examples, and recipes. It front-loads the primary purpose and key capability, then details properties systematically. While lengthy, every section provides actionable information for an agent to construct valid batch_create calls.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high complexity of the tool (multiple element types, nested children, many optional properties), the description covers all necessary dimensions: supported types, properties, recipes, and return format. With no output schema, it explains what the tool returns. The inclusion of 'errors' in the return value also anticipates failure cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only defines 'elements' as an array of objects with no property descriptions (0% coverage). The tool description compensates extensively by documenting all supported element types (frame, rectangle, ellipse, vector, text, line), their properties, and providing multiple copy-paste recipes with concrete JSON examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Create MULTIPLE Figma elements in a SINGLE round-trip' and declares it 'THE PRIMARY TOOL — use it for ALL designs,' clearly specifying the verb+resource and distinguishing it from sibling single-element creation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'THIS IS THE PRIMARY TOOL — use it for ALL designs,' providing clear when-to-use guidance. It also describes the screenshot→Figma workflow, indicating the intended use case, and differentiates from sibling tools by emphasizing multi-element creation and nesting.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dynstat/figma-dash-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server