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
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
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 5 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
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.
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
claude mcp add muradyf-layerbridge -- npx -y layerbridge
{
"mcpServers": {
"muradyf-layerbridge": {
"command": "npx",
"args": [
"-y",
"layerbridge"
]
}
}
} {
"servers": {
"muradyf-layerbridge": {
"command": "npx",
"args": [
"-y",
"layerbridge"
]
}
}
} codex mcp add muradyf-layerbridge -- npx -y layerbridge
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"muradyf-layerbridge": {
"type": "local",
"command": [
"npx",
"-y",
"layerbridge"
],
"enabled": true
}
}
} openclaw mcp add muradyf-layerbridge --command npx --arg -y --arg layerbridge
mcp_servers:
muradyf-layerbridge:
command: "npx"
args: ["-y", "layerbridge"] {
"McpServers": {
"muradyf-layerbridge": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"layerbridge"
]
}
}
} assistant mcp add muradyf-layerbridge -t stdio -c npx -a -y layerbridge
{
"mcpServers": {
"muradyf-layerbridge": {
"command": "npx",
"args": [
"-y",
"layerbridge"
]
}
}
} 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.
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 →
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 →
get_annotations ~77
Read Dev Mode annotations in a subtree (default: current page), with the file's annotation categories.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| nodeId | string | – | Figma 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| maxItems | integer | – | Stop listing after this many items (default 500); counts still cover everything |
| pageId | string | – | A 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.
| Name | Type | Req | Description |
|---|---|---|---|
| expandInstances | boolean | – | Read inside component instances instead of treating each as a component placeholder (default false; the requested layer is always read) |
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| format | string | – | "json" (default), "jsx-tailwind" or "html-css" |
| includeHidden | boolean | – | Include layers turned off in the design (default false) |
| inlineSvgMaxBytes | integer | – | Inline each icon's SVG when it is at most this many bytes (default 0: never; up to 60 icons) |
| maxDepth | integer | – | Levels of children to read; deeper layers are summarised with a childCount. Default: no limit |
| maxNodes | integer | – | Stop after this many layers (default 3000) |
| nodeId | string | yes | Figma 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.
| Name | Type | Req | Description |
|---|---|---|---|
| depth | number | – | How many levels deep to traverse the node tree (default 2) |
| fileKey | string | – | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| includeChildren | boolean | – | – |
| nodeId | string | yes | Figma 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| family | string | – | Filter available fonts by family |
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| includeAvailable | boolean | – | – |
| nodeId | string | – | Figma 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| includeVariants | boolean | – | Also list each variant inside a set (default false) |
| pageId | string | – | Only 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| depth | integer | – | Levels of children to include (default all) |
| fileKey | string | – | The fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files. |
| includeHidden | boolean | – | Include children the design hides (visible: false). Default false. |
| nodeId | string | yes | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files. |
| nodeId | string | yes | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| depth | integer | – | Levels of children to include (default all) |
| fileKey | string | – | The fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files. |
| includeHidden | boolean | – | Include children the design hides (visible: false). Default false. |
| nodeIds | array | yes | Node 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The 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).
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| nodeId | string | yes | Figma 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| nodeId | string | yes | Figma 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.
| Name | Type | Req | Description |
|---|---|---|---|
| allowHidden | boolean | – | Export even when the node or an ancestor is hidden (default false — hidden nodes are reported instead, since they render nothing) |
| clip | boolean | – | When true, export using Figma's absolute node bounds (REST use_absolute_bounds / plugin useAbsoluteBounds) so PNGs are clipped to the node's logical bounds |
| fileKey | string | – | The fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files. |
| format | string | – | Export format: PNG (default) or SVG or JPG or PDF |
| nodeIds | array | – | Optional 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. |
| scale | number | – | Export scale for raster formats (default 2) |
| svgIdAttribute | boolean | – | SVG only: write layer names as id attributes (Figma default false) |
| svgOutlineText | boolean | – | SVG only: outline text as paths (Figma default true). False keeps <text> elements. |
| svgSimplifyStroke | boolean | – | SVG only: simplify inside/outside strokes (Figma default true) |
| timeoutMs | number | – | Milliseconds 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| textNodesPerSlide | integer | – | Text 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files. |
| name | string | – | Optional name for the new group |
| nodeIds | array | yes | Node IDs to group. Must share a common parent. |
| parentId | string | – | Optional 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files. |
| nodeId | string | – | Node 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files. |
| name | string | – | Optional name for the wrapper frame (default: 'imported layers') |
| parentId | string | – | Optional parent node ID (frame/section) to append the wrapper frame into. x/y become relative to that parent. |
| source | string | yes | Path to a JSON file containing an html-figma htmlToFigma() layer tree, relative to the MCP server cwd (absolute paths must stay inside it). |
| x | number | – | Optional x position of the wrapper frame |
| y | number | – | Optional 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.
| Name | Type | Req | Description |
|---|---|---|---|
| collection | string | – | Put 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". |
| content | string | – | The tokens themselves, instead of a file |
| deleteMissing | boolean | – | Not implemented: missing variables are only reported, never deleted |
| dryRun | boolean | – | Default true: report the plan without changing the file |
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| format | string | – | Default auto: JSON is DTCG, anything else CSS (which includes @theme blocks). tailwind reads only @theme blocks. |
| modeMapping | object | – | Rename source modes to Figma mode names, e.g. { "dark": "Dark", ":root": "Light" } |
| source | string | – | Path 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| name | string | – | Name of the wrapper frame (default: the URL's host and path) |
| parentId | string | – | Frame or section to put the wrapper in |
| selector | string | – | CSS selector of the element to import (default body) |
| url | string | yes | A localhost or file URL (other hosts need FIGMA_BRIDGE_ALLOW_REMOTE_URLS=1) |
| viewport | object | – | Browser window size in CSS pixels (default 1440×900) |
| x | number | – | – |
| y | number | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| includeInstanceChildren | boolean | – | Also look inside instances (default false: their insides come from the main component, so lint that instead) |
| limit | integer | – | Most layers with findings to collect (default 5000) |
| maxDeltaE | number | – | Colour distance (CIEDE2000) for suggestions (default 5; fixes use 2) |
| maxIssues | integer | – | Most issues in the reply (default 300) |
| nodeId | string | yes | Figma node ID, e.g. '4029:12345' |
| radiusScale | array | – | Allowed corner radii in px |
| respectScopes | boolean | – | Only suggest variables whose scopes allow the property (default true) |
| rules | array | – | Rules to run (default all) |
| spacingScale | array | – | Allowed 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| locked | boolean | – | Default true |
| nodeIds | array | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files. |
| pageId | string | – | Page ID, e.g. '0:1' |
| pageName | string | – | Exact page name, used when pageId is not given |
No output schema declared.
No examples provided.
notify ~64
Show a toast message inside Figma.
| Name | Type | Req | Description |
|---|---|---|---|
| error | boolean | – | – |
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| message | string | yes | – |
| timeoutMs | number | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| animationStyleId | string | – | The ID of the animation style to remove. If omitted, all animation styles are removed. |
| fileKey | string | – | The fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files. |
| nodeId | string | yes | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| field | object | yes | The property, paint, or effect field to remove. Example: { type: 'PROPERTY', name: 'TRANSLATION_X' } |
| fileKey | string | – | The fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files. |
| nodeId | string | yes | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| index | integer | – | – |
| nodeId | string | yes | Figma node ID, e.g. '4029:12345' |
No output schema declared.
No examples provided.
rename_page ~54
Rename a page.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| name | string | yes | – |
| pageId | string | yes | – |
No output schema declared.
No examples provided.
rename_variable_mode ~67
Rename a mode in a variable collection.
| Name | Type | Req | Description |
|---|---|---|---|
| collectionId | string | yes | – |
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| modeId | string | yes | – |
| name | string | yes | – |
No output schema declared.
No examples provided.
reorder_nodes ~65
Move layers in their parent's stacking order.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| index | integer | – | – |
| nodeIds | array | yes | – |
| position | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| grid | array | yes | Slide 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files. |
| nodeIds | array | yes | List of node IDs to move |
| parentId | string | yes | Destination 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.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | Body of an async function, e.g. "const n = await figma.getNodeByIdAsync('1:2'); return n.name" |
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| timeoutMs | integer | – | Default 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.
| Name | Type | Req | Description |
|---|---|---|---|
| allowHidden | boolean | – | Export even when the node or an ancestor is hidden (default false — hidden nodes are reported instead, since they render nothing) |
| clip | boolean | – | Default clipping behavior for saved screenshots. When true, PNGs are clipped to the node's logical bounds using Figma's absolute node bounds. |
| fileKey | string | – | The fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files. |
| format | string | – | Default export format: PNG (default) or SVG or JPG or PDF |
| items | array | yes | List of screenshot save operations to execute in batch |
| overwrite | boolean | – | Replace files that already exist (default false — existing files are reported, not touched) |
| scale | number | – | Default export scale for raster formats (default 2) |
| svgIdAttribute | boolean | – | SVG only: write layer names as id attributes (Figma default false) |
| svgOutlineText | boolean | – | SVG only: outline text as paths (Figma default true). False keeps <text> elements. |
| svgSimplifyStroke | boolean | – | SVG only: simplify inside/outside strokes (Figma default true) |
| timeoutMs | number | – | Milliseconds 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.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | – |
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| title | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files. |
| limit | integer | – | Maximum matches returned (default 2000) |
| maxDepth | integer | – | Do not descend deeper than this |
| maxSize | number | – | Match only nodes whose larger side is at most this many px |
| minSize | number | – | Match only nodes whose larger side is at least this many px |
| namePattern | string | – | Case-insensitive regular expression the layer name must match |
| rootId | string | yes | Node whose subtree is searched |
| stopAtMatch | boolean | – | Do not look inside a node that matched — so an icon instance is returned whole, not also as its inner vectors |
| textPattern | string | – | Case-insensitive regular expression a TEXT node's characters must match |
| types | array | – | Node types to match, e.g. ['INSTANCE','VECTOR','BOOLEAN_OPERATION','TEXT','FRAME'] |
| visibleOnly | boolean | – | Skip 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.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files. |
| nodeIds | array | yes | Node 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.
| Name | Type | Req | Description |
|---|---|---|---|
| annotations | array | yes | – |
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| mode | string | – | – |
| nodeId | string | yes | Figma 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.
| Name | Type | Req | Description |
|---|---|---|---|
| counterAxisAlignItems | string | – | Alignment along the counter axis |
| counterAxisSizingMode | string | – | AUTO = hug contents along counter axis |
| counterAxisSpacing | number | – | Gap between wrapped rows/columns (only when layoutWrap=WRAP) |
| fileKey | string | – | The fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files. |
| itemSpacing | number | – | Gap between children along the primary axis (pixels) |
| layoutMode | string | – | Auto-layout direction. 'NONE' disables auto-layout. |
| layoutWrap | string | – | Allow children to wrap onto multiple rows/columns |
| nodeId | string | yes | The node ID to update (must be a frame) |
| paddingBottom | number | – | – |
| paddingLeft | number | – | – |
| paddingRight | number | – | – |
| paddingTop | number | – | – |
| primaryAxisAlignItems | string | – | Alignment along the primary axis |
| primaryAxisSizingMode | string | – | AUTO = hug contents along primary axis |
No output schema declared.
No examples provided.
set_constraints ~78
Set a layer's resizing constraints.
| Name | Type | Req | Description |
|---|---|---|---|
| fileKey | string | – | The fileKey of the Figma file. Required when several files are connected; see list_files. |
| horizontal | string | – | – |
| nodeId | string | yes | Figma node ID, e.g. '4029:12345' |
| vertical | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| effects | array | yes | Full replacement list of effects. Pass [] to clear all effects. Each entry is a drop/inner shadow or a layer/background blur. |
| fileKey | string | – | The fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files. |
| nodeId | string | yes | The node ID to update |
No output schema declared.
No examples provided.
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.