Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Figma Vector MCP

NPM · FIGMA-VECTOR-MCP

Let Claude create and edit fully editable vector nodes on the Figma canvas.

Available components

61 Trust /100

Last scanned (23 hours ago)

Scores higher than 36% of npm servers

Category Design and Media

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security80
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects uuid 10.0.0, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 31 of 94 dependencies flagged as unhealthy (1 deprecated). View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability68
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 3967 tokens (~68/item across 58 items; 58 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management3
  • Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage89
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 68% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_node" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 58 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 23 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
    • Stability: unverified → 0.03 ▲ functional
  • 22 Oct 26 46

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 23 Oct 2026 · Analysed npm/figma-vector-mcp@0.3.3

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-w5hq-g745-h8pq CVE-2026-41907 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 94 packages
Packages resolved 94
Deprecated 1
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 58 exposed · ~3,967 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
apply_style ~68

Apply a named document style (paint or text) to a node by style ID.

NameTypeReqDescription
nodeIdstringyesFigma node ID
styleIdstringyesStyle ID from get_styles
styleTypestring–Hint for style type (auto-detected if omitted)

No output schema declared.

No examples provided.

batch_set_properties ~45

Update fill color, stroke color, opacity, position, and/or size on multiple nodes in a single round-trip.

NameTypeReqDescription
operationsarrayyesArray of per-node property updates

No output schema declared.

No examples provided.

boolean_operation ~66

Perform a boolean operation (union, subtract, intersect, exclude) on 2 or more vector nodes.

NameTypeReqDescription
namestring–Name for the resulting node
nodeIdsarrayyesIDs of nodes to combine (order matters for subtract)
operationstringyes–

No output schema declared.

No examples provided.

clone_node ~59

Duplicate a Figma node, optionally repositioning the clone.

NameTypeReqDescription
nodeIdstringyesFigma node ID
parentIdstring–Parent frame/group node ID
xnumber––
ynumber––

No output schema declared.

No examples provided.

create_batch ~69

Execute multiple commands in a single round-trip. Commands run sequentially. Each result includes success/error status. Use this for complex compositions (e.g. place an SVG, add a label, group them) to avoid multiple round-trips.

NameTypeReqDescription
commandsarrayyesOrdered list of commands to execute

No output schema declared.

No examples provided.

create_component ~42

Convert an existing frame or group into a reusable Figma component.

NameTypeReqDescription
namestring–Layer name
nodeIdstringyesFigma node ID

No output schema declared.

No examples provided.

create_ellipse ~80

Create an ellipse (or circle) on the Figma canvas.

NameTypeReqDescription
fillColorobject––
heightnumberyes–
namestring–Layer name
parentIdstring–Parent frame/group node ID
widthnumberyes–
xnumber––
ynumber––

No output schema declared.

No examples provided.

create_frame ~78

Create a Figma frame (container) on the canvas.

NameTypeReqDescription
fillColorobject––
heightnumberyes–
namestring–Layer name
parentIdstring–Parent frame/group node ID
widthnumberyes–
xnumber––
ynumber––

No output schema declared.

No examples provided.

create_instance ~72

Place an instance of a local component on the canvas by component ID.

NameTypeReqDescription
componentIdstringyesID of the source component node
namestring–Layer name
parentIdstring–Parent frame/group node ID
xnumber––
ynumber––

No output schema declared.

No examples provided.

create_mask ~84

Apply a clip mask — maskNode defines the shape, targetNode is clipped to it. Both nodes are grouped.

NameTypeReqDescription
maskNodeIdstringyesID of the node to use as the mask shape (bottom layer)
namestring–Name for the resulting group
targetNodeIdstringyesID of the node to be masked (top layer)

No output schema declared.

No examples provided.

create_page ~30

Create a new page in the Figma document.

NameTypeReqDescription
namestringyesName of the new page

No output schema declared.

No examples provided.

create_path ~119

Create an editable vector from a single SVG path `d` attribute string. Shorthand for simple paths without a full SVG wrapper.

NameTypeReqDescription
dstringyesSVG path data string (the `d` attribute)
fillColorobject–Fill color
namestring–Layer name
parentIdstring–Parent frame/group node ID
strokeColorobject–Stroke color
strokeWeightnumber–Stroke width in pixels
xnumber––
ynumber––

No output schema declared.

No examples provided.

create_polyline ~115

Create an editable vector from an array of [x, y] point pairs. Use closed=true to produce a filled polygon.

NameTypeReqDescription
closedboolean–Close the path into a polygon
namestring–Layer name
parentIdstring–Parent frame/group node ID
pointsarrayyesArray of [x, y] coordinate pairs
strokeColorobject––
strokeWeightnumber––
xnumber––
ynumber––

No output schema declared.

No examples provided.

create_rectangle ~75

Create a rectangle on the Figma canvas.

NameTypeReqDescription
fillColorobject––
heightnumberyes–
namestring–Layer name
parentIdstring–Parent frame/group node ID
widthnumberyes–
xnumber––
ynumber––

No output schema declared.

No examples provided.

create_text ~196

Create a text node on the Figma canvas. Use width to fix the column width and enable text wrapping.

NameTypeReqDescription
fillColorobject––
fontFamilystring––
fontSizenumber––
fontStylestring––
heightnumber–Fixed height in px — clips or scrolls content. Only meaningful when width is also set.
namestring–Layer name
parentIdstring–Parent frame/group node ID
textstringyesText content
textAutoResizestring–Resize behaviour. HEIGHT (default when width set): fix width, grow height. NONE: fixed box. WIDTH_AND_HEIGHT: auto-size both (default).
widthnumber–Fixed column width in px — enables text wrapping. Height grows automatically unless height is also set.
xnumber––
ynumber––

No output schema declared.

No examples provided.

create_vector_from_svg ~105

Place a fully editable vector node on the Figma canvas from an SVG string. Supports any valid SVG including paths, polylines, polygons, circles, and groups. The created node is fully editable in Figma.

NameTypeReqDescription
namestring–Layer name
parentIdstring–Parent frame/group node ID
svgstringyesComplete SVG string including <svg> wrapper
xnumber––
ynumber––

No output schema declared.

No examples provided.

delete_node ~29

Delete a node from the Figma canvas.

NameTypeReqDescription
nodeIdstringyesFigma node ID

No output schema declared.

No examples provided.

duplicate_frame_to_page ~76

Copy a node to a target page at an optional position.

NameTypeReqDescription
nodeIdstringyesFigma node ID
targetPageIdstringyesID of the page to copy the node to
xnumber–X position on target page
ynumber–Y position on target page

No output schema declared.

No examples provided.

export_node_as_png ~64

Export a Figma node as a base64-encoded PNG at the specified pixel scale.

NameTypeReqDescription
nodeIdstringyesFigma node ID
scalenumber–Pixel scale (1 = 1x, 2 = 2x, etc.)

No output schema declared.

No examples provided.

export_node_as_svg ~51

Export a Figma node as an SVG string. Useful for round-tripping: create a vector, modify it in Figma, export back.

NameTypeReqDescription
nodeIdstringyesFigma node ID

No output schema declared.

No examples provided.

find_nodes ~108

Search for nodes by name (case-insensitive contains) and/or type. Scoped to a page (defaults to current page). Recursive by default.

NameTypeReqDescription
pageIdstring–Page ID to search in (defaults to current page)
querystring–Name substring to search for (case-insensitive)
recursiveboolean–Search nested children (default true)
type––Node type(s) to filter by, e.g. 'FRAME', ['TEXT','RECTANGLE']

No output schema declared.

No examples provided.

get_available_fonts ~63

List all fonts available in this Figma environment (system fonts + Figma font agent). Use before create_text to verify a font is loadable. Optionally filter by family name substring.

NameTypeReqDescription
querystring–Filter by family name (case-insensitive contains)

No output schema declared.

No examples provided.

get_components ~18

List all local components in the Figma document.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_document_info ~31

Get information about the current Figma document: name, current page, all pages, and top-level nodes.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_library_components ~43

List components available for use. Returns local document components. Filter by name with optional query.

NameTypeReqDescription
querystring–Filter by component name (case-insensitive contains)

No output schema declared.

No examples provided.

get_node_info ~41

Get detailed information about a specific node by ID: type, position, size, opacity, children.

NameTypeReqDescription
nodeIdstringyesFigma node ID

No output schema declared.

No examples provided.

get_page_list ~19

List all pages in the current Figma document.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_selection ~22

Get the currently selected nodes in Figma, including position and size.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_styles ~35

Get all local paint styles and text styles defined in the Figma document. Use these IDs with apply_style to keep output on-brand.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

group_nodes ~54

Group multiple Figma nodes into a group layer.

NameTypeReqDescription
namestring–Layer name
nodeIdsarrayyesArray of node IDs to group
parentIdstring–Parent frame/group node ID

No output schema declared.

No examples provided.

health_check ~24

Ping the Figma plugin and confirm connectivity. Returns plugin version and current page.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

join_channel ~55

Join a named channel on the Figma Vector MCP socket relay. Must be called before any drawing commands if the channel was not set via env/arg.

NameTypeReqDescription
channelstringyesChannel name (must match the Figma plugin)

No output schema declared.

No examples provided.

list_colors ~19

List all color aliases registered in this document's palette.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

move_node ~47

Move a Figma node to a new position on the canvas.

NameTypeReqDescription
nodeIdstringyesFigma node ID
xnumberyes–
ynumberyes–

No output schema declared.

No examples provided.

register_color ~89

Save a named color alias to the document palette. All RGB values are 0–1. Use resolve_color or list_colors to retrieve.

NameTypeReqDescription
anumber––
aliasstringyesName for this color, e.g. 'brand-blue', 'amber', 'near-black'
bnumberyes–
gnumberyes–
rnumberyes–

No output schema declared.

No examples provided.

register_node ~66

Save a named alias for a node ID, persisted in the Figma document. Use resolve_node to retrieve it later.

NameTypeReqDescription
aliasstringyesSemantic name, e.g. 'background', 'hero-frame'
nodeIdstringyesNode ID to associate with the alias

No output schema declared.

No examples provided.

rename_node ~38

Rename a Figma node.

NameTypeReqDescription
namestringyesNew name for the node
nodeIdstringyesFigma node ID

No output schema declared.

No examples provided.

reorder_node ~78

Change a node's Z-order within its parent. Use action for relative moves or index for an absolute position (0 = bottom of stack).

NameTypeReqDescription
actionstring–Relative reorder action
indexinteger–Absolute stack index (0 = bottom). Overrides action if both provided.
nodeIdstringyesFigma node ID

No output schema declared.

No examples provided.

resize_node ~46

Resize a Figma node to the given width and height.

NameTypeReqDescription
heightnumberyes–
nodeIdstringyesFigma node ID
widthnumberyes–

No output schema declared.

No examples provided.

resolve_color ~44

Look up a color by its registered alias. Returns r, g, b, a values (0–1).

NameTypeReqDescription
aliasstringyesThe color alias to look up

No output schema declared.

No examples provided.

resolve_node ~40

Look up a node ID by its registered alias. Returns the node ID previously saved with register_node.

NameTypeReqDescription
aliasstringyesThe alias to look up

No output schema declared.

No examples provided.

screenshot_current_page ~54

Export the current Figma page as a base64-encoded PNG. Useful for visual verification of the canvas state.

NameTypeReqDescription
scalenumber–Pixel scale (1 = 1×, 2 = 2×)

No output schema declared.

No examples provided.

set_auto_layout ~186

Enable auto-layout on a frame and configure direction, spacing, padding, and alignment. Set direction to NONE to disable auto-layout.

NameTypeReqDescription
counterAxisAlignstring–Alignment along cross axis
counterAxisSizingModestring–Sizing along cross axis — FIXED holds the frame size, AUTO hugs children (default AUTO)
directionstring–Layout direction
nodeIdstringyesFigma node ID
padding––Padding — single number (all sides) or {top, right, bottom, left}
primaryAxisAlignstring–Alignment along main axis
primaryAxisSizingModestring–Sizing along main axis — FIXED holds the frame size, AUTO hugs children (default AUTO)
spacingnumber–Gap between children in pixels
wrapboolean–Enable wrapping (WRAP)

No output schema declared.

No examples provided.

set_blend_mode ~42

Set the blend mode of a node layer.

NameTypeReqDescription
modestringyesFigma blend mode
nodeIdstringyesFigma node ID

No output schema declared.

No examples provided.

set_corner_radius ~104

Set corner radius of a rectangle or frame. Use radius for uniform corners or topLeft/topRight/bottomLeft/bottomRight for individual corners (e.g. pill, tab, card shapes).

NameTypeReqDescription
bottomLeftnumber––
bottomRightnumber––
nodeIdstringyesFigma node ID
radiusnumber–Uniform radius for all corners
topLeftnumber––
topRightnumber––

No output schema declared.

No examples provided.

set_effect ~98

Apply effects (drop shadow, inner shadow, layer blur, background blur) to a node. Use mode REPLACE (default) to overwrite all effects, or APPEND to add to existing ones.

NameTypeReqDescription
effectsarrayyesOne or more effects to apply
modestring–REPLACE overwrites all existing effects (default). APPEND adds to the existing effects array.
nodeIdstringyesFigma node ID

No output schema declared.

No examples provided.

set_fill_color ~74

Set the fill color of a Figma node.

NameTypeReqDescription
anumber––
bnumberyesBlue 0–1
gnumberyesGreen 0–1
nodeIdstringyesFigma node ID
rnumberyesRed 0–1

No output schema declared.

No examples provided.

set_focus ~34

Scroll the Figma viewport to focus on a node and select it.

NameTypeReqDescription
nodeIdstringyesFigma node ID

No output schema declared.

No examples provided.

set_gradient_fill ~193

Apply a gradient fill to a Figma node. Supports LINEAR, RADIAL, ANGULAR (conic), and DIAMOND types. Replaces any existing fills. Stops must be sorted by position (0 → 1).

NameTypeReqDescription
anglenumber–Rotation in degrees — 0 = top→bottom, 90 = left→right (LINEAR and ANGULAR)
centerarray–Focal point [cx, cy] in 0–1 node-relative coordinates (RADIAL and DIAMOND, default [0.5, 0.5])
gradientTransformarray–Raw 2×3 affine gradientTransform matrix — overrides angle/center when provided
nodeIdstringyesFigma node ID
stopsarrayyesAt least 2 colour stops, sorted by position 0→1
typestring–Gradient type

No output schema declared.

No examples provided.

set_image_fill ~108

Set a node's fill to a base64-encoded image. Use with image generation APIs (Replicate, fal.ai) to place rendered imagery directly on canvas.

NameTypeReqDescription
base64stringyesBase64-encoded image data (PNG, JPEG, or WebP)
mimeTypestring––
nodeIdstringyesFigma node ID
opacitynumber––
scaleModestring–How the image is scaled within the node bounds

No output schema declared.

No examples provided.

Install

How do I install the Figma Vector MCP server?

Figma Vector MCP runs locally as an npm package, launched with npx -y figma-vector-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · figma-vector-mcp

# add to Claude Code
claude mcp add workingmodel-figma-vector-mcp -- npx -y figma-vector-mcp
Common questions

What is the Figma Vector MCP server?

Figma Vector MCP is listed in the public MCP registry as io.github.workingmodel/figma-vector-mcp. Let Claude create and edit fully editable vector nodes on the Figma canvas. This page covers its npm package (figma-vector-mcp).

Is the Figma Vector MCP server safe to use?

Figma Vector MCP scores 61 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 23 October 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Figma Vector MCP server expose?

Figma Vector MCP exposes 58 tools: join_channel, health_check, create_vector_from_svg, create_path, create_polyline, and 53 more. Their descriptions and schemas cost roughly 3,967 tokens of context every time the server is loaded.

Is the Figma Vector MCP server still maintained?

Figma Vector MCP is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Figma Vector MCP server under?

Figma Vector MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.