Skip to main content
Glama
Adobe XD MCP

Adobe XD MCP

by srayan-uxd

xd_export_svg

Export selected Adobe XD layers as one self-contained SVG with embedded vectors, images, and effects, so a group or drawing imports into Figma as a single vector.

Instructions

Export one or more layers as ONE self-contained SVG (vectors, gradients, shadows, masks and images embedded), so an illustration, icon or any drawing can be imported into Figma as a single vector instead of dozens of pieces. Pass the layer ids of a group, or the parts of a merged drawing from xd_infer_layout. Only the selected layers are drawn (no page background). Use saveTo to write the SVG to a folder inside the allowed roots; otherwise it is returned inline (up to 600k characters).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "file": "<file>",
      "artboard": "<artboard>",
      "ids": "<ids>"
    },
    "name": "xd_export_svg"
  }
}

Input Schema

NameRequiredDescriptionDefault
idsYesLayer ids from xd_export_artboard, or the parts list of a merged drawing
fileYesAbsolute path to a .xd file
saveToNoOptional absolute folder (inside the allowed roots); the SVG is saved there and its path returned
paddingNoExtra pixels around the drawing
artboardYesArtboard id or name

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that assets are embedded (self-contained output), that background is excluded, that saveTo must target a folder inside allowed roots, and that inline output is capped at 600k characters. Gaps remain around failure modes (e.g. what happens when inline output exceeds the cap) and whether the layer must belong to the named artboard.

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

Conciseness5/5

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

A single front-loaded paragraph: purpose and motivation first, then input requirements, then output/save behavior. Every clause carries information an agent needs, with no restating of the tool name or filler.

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

Completeness4/5

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

For a 5-parameter, no-output-schema, no-annotation export tool, the description covers intent, input sources, embedding scope, and both return paths including a size ceiling. What is missing is edge-case behavior (oversized SVG handling, mismatched ids/artboard) which would matter for reliable invocation.

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

Parameters4/5

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

Schema coverage is already 100%, so 3 is the baseline, but the description adds meaning the schema does not: the `ids` payload is either group layer ids or the `parts` of a merged drawing from xd_infer_layout, and `saveTo` swaps the return channel from inline to a written file. The 600k inline limit also contextualizes the saveTo parameter. It says nothing extra about `padding` beyond the schema.

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?

States a specific verb and resource ("Export one or more layers as ONE self-contained SVG") and immediately scopes the output format: embedded vectors, gradients, shadows, masks and images. The framing "imported into Figma as a single vector instead of dozens of pieces" distinguishes it from per-layer or per-artboard export siblings.

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

Usage Guidelines4/5

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

Gives concrete input routing: pass the layer ids of a group, or the `parts` of a merged drawing from xd_infer_layout, and states only the selected layers are drawn with no page background. It also explains the saveTo-versus-inline decision. It stops short of explicitly contrasting with xd_export_artboard or xd_export_component, so the agent must infer the boundary from the sibling names.

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