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.

Layerbridge

NPM · LAYERBRIDGE · SCANNED SEP 20

Read, edit and export the Figma file open in a local plugin. No REST API, no rate limits.

Available components

67 Trust /100
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 Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 36 of 106 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability68
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 16209 tokens (~139/item across 116 items; 116 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage93
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 78% 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 10 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_style" 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 116 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

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

How do I install the Layerbridge MCP server?

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

npm · layerbridge

# add to Claude Code
claude mcp add muradyf-layerbridge -- npx -y layerbridge
// .cursor/mcp.json
{
  "mcpServers": {
    "muradyf-layerbridge": {
      "command": "npx",
      "args": [
        "-y",
        "layerbridge"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "muradyf-layerbridge": {
      "command": "npx",
      "args": [
        "-y",
        "layerbridge"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add muradyf-layerbridge -- npx -y layerbridge
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "muradyf-layerbridge": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "layerbridge"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add muradyf-layerbridge --command npx --arg -y --arg layerbridge
# ~/.hermes/config.yaml
mcp_servers:
  muradyf-layerbridge:
    command: "npx"
    args: ["-y", "layerbridge"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "muradyf-layerbridge": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "layerbridge"
      ]
    }
  }
}
# add to Vellum
assistant mcp add muradyf-layerbridge -t stdio -c npx -a -y layerbridge
// mcp.json
{
  "mcpServers": {
    "muradyf-layerbridge": {
      "command": "npx",
      "args": [
        "-y",
        "layerbridge"
      ]
    }
  }
}
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.

  • 17 Sept 26 0
    • Security disclosure: unverified → fail functional
  • 16 Sept 26 0
    • Security disclosure: fail → unverified functional
  • 15 Sept 26 +15
    • Malware scan: unverified → pass security
  • 14 Sept 26 52

    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 20 Sept 2026 · Analysed npm/layerbridge@0.3.0

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 →

Dependencies 106 packages
Packages resolved 106
Stale 36
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 116 exposed · ~16,209 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
get_annotations ~77

Read Dev Mode annotations in a subtree (default: current page), with the file's annotation categories.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
nodeIdstringFigma node ID, e.g. '4029:12345'

No output schema declared.

No examples provided.

get_board ~146

FigJam: read a board as compact JSON — stickies (text, colour, author, position), shapes with text, connectors (what they join, label, line type), sections with their children, tables (cell text), code blocks, text and stamps, plus a count of every layer type. Only works when the plugin runs in a FigJam file.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
maxItemsintegerStop listing after this many items (default 500); counts still cover everything
pageIdstringA page other than the current one

No output schema declared.

No examples provided.

get_code_context ~385

Design-to-code context for one layer, read in a single walk. format "json" (default) returns a compact tree — each layer's flex/grid layout (mode, gap, padding, justify/align, fixed/hug/fill sizing, absolute position with constraints), a ref into a deduped styles table (fills, strokes, radius, effects, opacity) and textStyles table, text with mixed-style segments, component instances with variant and property values, icons collapsed to { type: ICON, assetHint }, image fills as imageRef — plus tokens used and assets to export. Every variable-bound value carries the variable name, its CSS custom property (the same name export_tokens writes) and the resolved value. "jsx-tailwind" and "html-css" return starter code built from that tree, headed by the tokens, components, icons and images it needs.

NameTypeReqDescription
expandInstancesbooleanRead inside component instances instead of treating each as a component placeholder (default false; the requested layer is always read)
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
formatstring"json" (default), "jsx-tailwind" or "html-css"
includeHiddenbooleanInclude layers turned off in the design (default false)
inlineSvgMaxBytesintegerInline each icon's SVG when it is at most this many bytes (default 0: never; up to 60 icons)
maxDepthintegerLevels of children to read; deeper layers are summarised with a childCount. Default: no limit
maxNodesintegerStop after this many layers (default 3000)
nodeIdstringyesFigma node ID, e.g. '4029:12345'

No output schema declared.

No examples provided.

get_design_context ~96

Get the design context for the current selection or page. Returns a summarized tree structure optimized for understanding the current design context. When multiple files are connected, specify fileKey.

NameTypeReqDescription
depthnumberHow many levels deep to traverse the node tree (default 2)
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.

No output schema declared.

No examples provided.

get_dev_resources ~81

Dev resources (links) attached to a layer, optionally its children too.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
includeChildrenboolean
nodeIdstringyesFigma node ID, e.g. '4029:12345'

No output schema declared.

No examples provided.

get_document ~60

Get the current Figma page document tree. When multiple files are connected, specify fileKey.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.

No output schema declared.

No examples provided.

get_fonts ~104

Fonts used in a subtree (default: current page) with how many text layers use each; optionally the fonts available to Figma.

NameTypeReqDescription
familystringFilter available fonts by family
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
includeAvailableboolean
nodeIdstringFigma node ID, e.g. '4029:12345'

No output schema declared.

No examples provided.

get_local_components ~102

List the file's own components and component sets with id, key, description, page and property definitions. Scans every page unless pageId is given.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
includeVariantsbooleanAlso list each variant inside a set (default false)
pageIdstringOnly this page (faster on big files)

No output schema declared.

No examples provided.

get_metadata ~70

Get metadata about the current Figma document including file name, pages, and current page info. When multiple files are connected, specify fileKey.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.

No output schema declared.

No examples provided.

get_motion_styles ~65

List all available animation presets in Figma (Motion API beta). When multiple files are connected, specify fileKey.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.

No output schema declared.

No examples provided.

get_node ~178

Get a specific Figma node by ID. Accepts top-level IDs like '4029:12345' and instance-child IDs like 'I12740:17806;12740:17793'. Never use hyphens. When multiple files are connected, specify fileKey.

NameTypeReqDescription
depthintegerLevels of children to include (default all)
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.
includeHiddenbooleanInclude children the design hides (visible: false). Default false.
nodeIdstringyesThe node ID to fetch. Accepts top-level IDs like '4029:12345' and instance-child IDs like 'I12740:17806;12740:17793'.

No output schema declared.

No examples provided.

get_node_motion ~90

Read a node's current animationStyles, animations, manualKeyframeTracks, and timelines (Motion API beta). When multiple files are connected, specify fileKey.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.
nodeIdstringyesThe node ID to fetch motion properties for

No output schema declared.

No examples provided.

get_nodes ~145

Fetch several nodes in one call. Each result carries its tree (optionally depth-limited), absolute bounds, auto-layout sizing, instance component properties and mixed-text segments. A node that fails is reported in place instead of failing the call. includeHidden keeps layers the design turns off.

NameTypeReqDescription
depthintegerLevels of children to include (default all)
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.
includeHiddenbooleanInclude children the design hides (visible: false). Default false.
nodeIdsarrayyesNode IDs to fetch

No output schema declared.

No examples provided.

get_pages ~64

List the file's pages and which one Figma currently shows. When multiple files are connected, specify fileKey.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.

No output schema declared.

No examples provided.

get_reactions ~70

Read a layer's prototype interactions (triggers and actions).

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
nodeIdstringyesFigma node ID, e.g. '4029:12345'

No output schema declared.

No examples provided.

get_rest_json ~82

A layer in the REST API's JSON shape (exportAsync JSON_REST_V1), without using the REST API.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
nodeIdstringyesFigma node ID, e.g. '4029:12345'

No output schema declared.

No examples provided.

get_screenshot ~356

Export a screenshot of the selected nodes or specific nodes by ID. Returns base64-encoded image data. When multiple files are connected, specify fileKey.

NameTypeReqDescription
allowHiddenbooleanExport even when the node or an ancestor is hidden (default false — hidden nodes are reported instead, since they render nothing)
clipbooleanWhen true, export using Figma's absolute node bounds (REST use_absolute_bounds / plugin useAbsoluteBounds) so PNGs are clipped to the node's logical bounds
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.
formatstringExport format: PNG (default) or SVG or JPG or PDF
nodeIdsarrayOptional list of node IDs to export. Accepts top-level IDs like '4029:12345' and instance-child IDs like 'I12740:17806;12740:17793'. Never use hyphens. If empty, exports the current selection.
scalenumberExport scale for raster formats (default 2)
svgIdAttributebooleanSVG only: write layer names as id attributes (Figma default false)
svgOutlineTextbooleanSVG only: outline text as paths (Figma default true). False keeps <text> elements.
svgSimplifyStrokebooleanSVG only: simplify inside/outside strokes (Figma default true)
timeoutMsnumberMilliseconds one export may take before it is reported as stuck (default 30000). A stuck export almost always means Figma's window is minimized or covered.

No output schema declared.

No examples provided.

get_selection ~60

Get the currently selected nodes in Figma. When multiple files are connected, specify fileKey.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.

No output schema declared.

No examples provided.

get_selection_colors ~47

The colours and colour styles used in the current selection.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.

No output schema declared.

No examples provided.

get_slides ~133

Figma Slides: the deck as rows of slides with id, name, whether it is skipped, its transition and the first few text layers of each. Only works when the plugin runs in a Slides file. Edit a slide's content with the usual tools (create_text, create_frame, set_text_content, …) using the slide id as parentId.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
textNodesPerSlideintegerText layers summarised per slide (default 5, 0 for none)

No output schema declared.

No examples provided.

get_styles ~59

Get all local styles in the document. When multiple files are connected, specify fileKey.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.

No output schema declared.

No examples provided.

get_variable_defs ~87

Get all local variable definitions including variable collections, modes, and variable values. Variables are Figma's system for design tokens (colors, numbers, strings, booleans). When multiple files are connected, specify fileKey.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.

No output schema declared.

No examples provided.

get_viewport ~47

The canvas viewport: centre, zoom and visible bounds.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.

No output schema declared.

No examples provided.

group_nodes ~127

Wrap a list of nodes in a new group. Nodes must share a common parent (or supply parentId explicitly). Returns the new group's node ID.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.
namestringOptional name for the new group
nodeIdsarrayyesNode IDs to group. Must share a common parent.
parentIdstringOptional explicit parent for the new group. Defaults to the shared parent of the input nodes.

No output schema declared.

No examples provided.

health ~105

Diagnose the bridge: server version and role, connected files, and a live test export from the plugin. Use it when calls time out: it tells a dead plugin apart from one node that will not export.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.
nodeIdstringNode to test-export (default: the first visible layer on the current page)

No output schema declared.

No examples provided.

import_html_layers ~253

Import a DOM serialization (JSON produced by html-figma's browser htmlToFigma()) as editable Figma layers inside a new wrapper frame — frames, text, rectangles, and SVG vectors in one call. Source must be a JSON file path inside the MCP server working directory. Optionally append the wrapper into an existing frame/section via parentId. Requires the plugin to be open in the design editor. When multiple files are connected, specify fileKey.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.
namestringOptional name for the wrapper frame (default: 'imported layers')
parentIdstringOptional parent node ID (frame/section) to append the wrapper frame into. x/y become relative to that parent.
sourcestringyesPath to a JSON file containing an html-figma htmlToFigma() layer tree, relative to the MCP server cwd (absolute paths must stay inside it).
xnumberOptional x position of the wrapper frame
ynumberOptional y position of the wrapper frame

No output schema declared.

No examples provided.

import_tokens ~333

Import design tokens into the file's local variables: W3C DTCG JSON (including export_tokens output), CSS custom properties (:root is the default mode; [data-theme="x"], .dark and @media (prefers-color-scheme: dark) are other modes) or Tailwind v4 @theme blocks. Matches existing variables by collection and name, creates what is missing, updates what changed, and sets aliases last. Previews by default — pass dryRun: false to apply. Never deletes; variables the import leaves out are listed as missing.

NameTypeReqDescription
collectionstringPut every token in this collection. Without it, DTCG uses each top-level group as the collection and CSS names are matched to existing variables, falling back to "Tokens".
contentstringThe tokens themselves, instead of a file
deleteMissingbooleanNot implemented: missing variables are only reported, never deleted
dryRunbooleanDefault true: report the plan without changing the file
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
formatstringDefault auto: JSON is DTCG, anything else CSS (which includes @theme blocks). tailwind reads only @theme blocks.
modeMappingobjectRename source modes to Figma mode names, e.g. { "dark": "Dark", ":root": "Light" }
sourcestringPath to a .json or .css file, relative to the server's working directory

No output schema declared.

No examples provided.

import_url ~197

Render a localhost or file URL in Playwright and import the page (or one element, via selector) as editable Figma layers — frames, text, images and SVGs — through import_html_layers. Needs the optional Playwright install.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
namestringName of the wrapper frame (default: the URL's host and path)
parentIdstringFrame or section to put the wrapper in
selectorstringCSS selector of the element to import (default body)
urlstringyesA localhost or file URL (other hosts need FIGMA_BRIDGE_ALLOW_REMOTE_URLS=1)
viewportobjectBrowser window size in CSS pixels (default 1440×900)
xnumber
ynumber

No output schema declared.

No examples provided.

lint_design_system ~396

Lint a frame against the file's design system. Rules: unbound-color (solid fill/stroke with no variable or style; suggests the matching local colour variable in the layer's mode, respecting variable scopes, or paint style — exact first, else nearest by CIEDE2000 within maxDeltaE), unbound-spacing and unbound-radius (auto-layout gap/padding and corner radius not bound to a number variable; suggests one), text-without-style (suggests the nearest text style in the same family), detached-instance, off-scale-spacing / off-scale-radius (against spacingScale/radiusScale, or a scale inferred from the file's number variables), default-name, hidden-layer, empty-frame. Returns issues with node, path, property, value, suggestion and whether fix_design_system can apply it, plus counts per rule and a 0-100 score. Read-only; one scan of the frame.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
includeInstanceChildrenbooleanAlso look inside instances (default false: their insides come from the main component, so lint that instead)
limitintegerMost layers with findings to collect (default 5000)
maxDeltaEnumberColour distance (CIEDE2000) for suggestions (default 5; fixes use 2)
maxIssuesintegerMost issues in the reply (default 300)
nodeIdstringyesFigma node ID, e.g. '4029:12345'
radiusScalearrayAllowed corner radii in px
respectScopesbooleanOnly suggest variables whose scopes allow the property (default true)
rulesarrayRules to run (default all)
spacingScalearrayAllowed spacing values in px

No output schema declared.

No examples provided.

list_files ~38

List all currently connected Figma files. Returns fileKey and fileName for each. Use the fileKey to target a specific file in other tools.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

lock_nodes ~57

Lock or unlock layers.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
lockedbooleanDefault true
nodeIdsarrayyes

No output schema declared.

No examples provided.

navigate_to_page ~114

Switch Figma to a page by pageId or exact pageName. Reads and exports work across pages without this; use it to change what get_document and get_selection see.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.
pageIdstringPage ID, e.g. '0:1'
pageNamestringExact page name, used when pageId is not given

No output schema declared.

No examples provided.

notify ~64

Show a toast message inside Figma.

NameTypeReqDescription
errorboolean
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
messagestringyes
timeoutMsnumber

No output schema declared.

No examples provided.

remove_animation_style ~119

Remove an applied animation style from a node (Motion API beta). If no animationStyleId is provided, removes all styles. When multiple files are connected, specify fileKey.

NameTypeReqDescription
animationStyleIdstringThe ID of the animation style to remove. If omitted, all animation styles are removed.
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.
nodeIdstringyesThe node ID to remove the style from

No output schema declared.

No examples provided.

remove_manual_keyframe_track ~124

Removes the manual Motion keyframe track for a property, paint, or effect field on a node. When multiple files are connected, specify fileKey.

NameTypeReqDescription
fieldobjectyesThe property, paint, or effect field to remove. Example: { type: 'PROPERTY', name: 'TRANSLATION_X' }
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.
nodeIdstringyesThe node ID to remove the track from

No output schema declared.

No examples provided.

remove_reactions ~79

Remove all of a layer's interactions, or the one at index.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
indexinteger
nodeIdstringyesFigma node ID, e.g. '4029:12345'

No output schema declared.

No examples provided.

rename_page ~54

Rename a page.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
namestringyes
pageIdstringyes

No output schema declared.

No examples provided.

rename_variable_mode ~67

Rename a mode in a variable collection.

NameTypeReqDescription
collectionIdstringyes
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
modeIdstringyes
namestringyes

No output schema declared.

No examples provided.

reorder_nodes ~65

Move layers in their parent's stacking order.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
indexinteger
nodeIdsarrayyes
positionstringyes

No output schema declared.

No examples provided.

reorder_slides ~88

Figma Slides: rearrange the deck. Pass every slide id exactly once, grouped into rows in the new order.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
gridarrayyesSlide ids per row, e.g. [['1:2','1:3'],['1:4']]

No output schema declared.

No examples provided.

reparent_nodes ~89

Move one or more nodes into a different parent container. When multiple files are connected, specify fileKey.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.
nodeIdsarrayyesList of node IDs to move
parentIdstringyesDestination parent node ID

No output schema declared.

No examples provided.

run_script ~220

Run JavaScript inside the Figma plugin with `figma` (the Plugin API) in scope, as the body of an async function: use await, and return a JSON-serialisable value. Returns { result, logs (console.log/info/warn/error/debug during the run), durationMs }; nodes in the result become {id, name, type}, cycles are cut and results over ~200KB are truncated. The script can change or delete anything in the file. In Dev Mode only reading works. A timed-out script cannot be stopped and may keep running. Off unless the server runs with FIGMA_BRIDGE_ALLOW_SCRIPTS=1.

NameTypeReqDescription
codestringyesBody of an async function, e.g. "const n = await figma.getNodeByIdAsync('1:2'); return n.name"
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
timeoutMsintegerDefault 10000, max 60000

No output schema declared.

No examples provided.

save_screenshots ~361

Export nodes and save them straight to disk, one node at a time (PNG/SVG/JPG/PDF). Returns metadata only. Hidden nodes and existing files are reported rather than failing the batch; the run stops early if Figma's exports stall. When multiple files are connected, specify fileKey.

NameTypeReqDescription
allowHiddenbooleanExport even when the node or an ancestor is hidden (default false — hidden nodes are reported instead, since they render nothing)
clipbooleanDefault clipping behavior for saved screenshots. When true, PNGs are clipped to the node's logical bounds using Figma's absolute node bounds.
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.
formatstringDefault export format: PNG (default) or SVG or JPG or PDF
itemsarrayyesList of screenshot save operations to execute in batch
overwritebooleanReplace files that already exist (default false — existing files are reported, not touched)
scalenumberDefault export scale for raster formats (default 2)
svgIdAttributebooleanSVG only: write layer names as id attributes (Figma default false)
svgOutlineTextbooleanSVG only: outline text as paths (Figma default true). False keeps <text> elements.
svgSimplifyStrokebooleanSVG only: simplify inside/outside strokes (Figma default true)
timeoutMsnumberMilliseconds one export may take before it is reported as stuck (default 30000). A stuck export almost always means Figma's window is minimized or covered.

No output schema declared.

No examples provided.

save_version ~71

Save a named version to the file's version history. Figma notes very recent edits may not be included.

NameTypeReqDescription
descriptionstring
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
titlestringyes

No output schema declared.

No examples provided.

scan_nodes ~315

Search a node's subtree and return a flat list of matches: id, name, type, visibility, layer path, absolute bounds, bounds relative to the root, text and font for TEXT, component name for INSTANCE. Filter by types, namePattern, textPattern, size, maxDepth; stopAtMatch keeps an icon instance whole. Hidden layers are skipped unless visibleOnly is false.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.
limitintegerMaximum matches returned (default 2000)
maxDepthintegerDo not descend deeper than this
maxSizenumberMatch only nodes whose larger side is at most this many px
minSizenumberMatch only nodes whose larger side is at least this many px
namePatternstringCase-insensitive regular expression the layer name must match
rootIdstringyesNode whose subtree is searched
stopAtMatchbooleanDo not look inside a node that matched — so an icon instance is returned whole, not also as its inner vectors
textPatternstringCase-insensitive regular expression a TEXT node's characters must match
typesarrayNode types to match, e.g. ['INSTANCE','VECTOR','BOOLEAN_OPERATION','TEXT','FRAME']
visibleOnlybooleanSkip hidden layers and everything inside them (default true)

No output schema declared.

No examples provided.

scroll_and_zoom_into_view ~84

Scroll and zoom the Figma viewport so the given nodes are framed in view. Works in both design editor and Dev Mode.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.
nodeIdsarrayyesNode IDs to frame in the viewport

No output schema declared.

No examples provided.

set_annotations ~96

Replace or append a layer's annotations ({ label | labelMarkdown, properties?, categoryId? }). Works in Dev Mode too.

NameTypeReqDescription
annotationsarrayyes
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
modestring
nodeIdstringyesFigma node ID, e.g. '4029:12345'

No output schema declared.

No examples provided.

set_auto_layout ~265

Configure auto-layout on a frame: direction, gap, padding, alignment, sizing modes, wrap. Set layoutMode='NONE' to disable auto-layout on the frame.

NameTypeReqDescription
counterAxisAlignItemsstringAlignment along the counter axis
counterAxisSizingModestringAUTO = hug contents along counter axis
counterAxisSpacingnumberGap between wrapped rows/columns (only when layoutWrap=WRAP)
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.
itemSpacingnumberGap between children along the primary axis (pixels)
layoutModestringAuto-layout direction. 'NONE' disables auto-layout.
layoutWrapstringAllow children to wrap onto multiple rows/columns
nodeIdstringyesThe node ID to update (must be a frame)
paddingBottomnumber
paddingLeftnumber
paddingRightnumber
paddingTopnumber
primaryAxisAlignItemsstringAlignment along the primary axis
primaryAxisSizingModestringAUTO = hug contents along primary axis

No output schema declared.

No examples provided.

set_constraints ~78

Set a layer's resizing constraints.

NameTypeReqDescription
fileKeystringThe fileKey of the Figma file. Required when several files are connected; see list_files.
horizontalstring
nodeIdstringyesFigma node ID, e.g. '4029:12345'
verticalstring

No output schema declared.

No examples provided.

set_effects ~129

Replace a node's effects list (drop/inner shadows, layer/background blurs). Pass an empty array to clear all effects. Each entry mirrors the shape returned by get_node's `effects` field.

NameTypeReqDescription
effectsarrayyesFull replacement list of effects. Pass [] to clear all effects. Each entry is a drop/inner shadow or a layer/background blur.
fileKeystringThe fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.
nodeIdstringyesThe node ID to update

No output schema declared.

No examples provided.

Common questions

What is the Layerbridge MCP server?

Layerbridge is an MCP server listed in the public MCP registry as io.github.muradyf/layerbridge. Read, edit and export the Figma file open in a local plugin. No REST API, no rate limits. This page covers its npm package (layerbridge).

Is the Layerbridge MCP server safe to use?

Layerbridge scores 67 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 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 Layerbridge MCP server expose?

Layerbridge exposes 116 tools: get_local_components, create_component, combine_as_variants, create_instance, swap_component, and 111 more. Their descriptions and schemas cost roughly 16,209 tokens of context every time the server is loaded.

Is the Layerbridge MCP server still maintained?

Layerbridge is still listed as active in the MCP registry. We last reached this channel on 20 September 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 Layerbridge MCP server under?

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