figsnap-mcp

MCPattested
v0.2.0io.github.arimunandarUnknownUpdated 27d agonpmGitHub

The Figma file you have open, as MCP tools. Extract, edit, and keep a saved set.

Works in
ClaudeCursorCopilotGemini

Inferred from the transports this listing declares (stdio). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Attested build
A verified provenance attestation binds this artifact to the listed repository. Nobody has claimed the listing yet — this proves where the code was built, not who stands behind it.
27d agoLast update
Reads these credentials
  • FIGSNAP_MCP_TOKENAPI keyoptional

    The daemon's token. Not normally set: the server reads ~/.figsnap-mcp/agent-token, which the daemon writes itself.

Declared by the author in the official MCP registry. Forge does not store, broker, or ever see these values — the config below is scaffolded with placeholders you fill in locally.

Package
Authorio.github.arimunandar
LicenseUnknown
Version0.2.0
Sourcenpm+mcp-registry
Trust Status
A
85/100Trusted
✓Listed in Forge index+10/10
✓Identity verified · attested build+20/20
—Ed25519 publish signature+0/5
→ Included automatically when the publisher runs `forge publish`
—Domain verification+0/5
→ Publisher: host /.well-known/forge.json on the package homepage with { "publisher": "<github-login>" }
✓npm Trusted Publishing (Sigstore)+5/5
—npm maintainer match+0/5
→ Publisher: add the verified GitHub login to the npm package's maintainers (npm owner add <login>)
✓CVE scan · clean+30/30
✓Static analysis · clean+20/20
Paste into Claude Code, Cursor, or any AI assistant to fix all gaps
StatusIdentity verified
PublisherUnverified
SignatureUnsigned
Domain—
Provenance✓ Sigstore-verified · b10f5f9
Dependencies✓ 60 resolved+ · none vulnerable
Tool surface40 tools · 2 privileged
Security scan✓ Cleanv0.2.0 · todayHow well does this scan work?
EvalsNone
IndexedSep 2, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

40 tools · 2 privileged
Statically extracted from the published packagev0.2.0 · 5h ago

Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.

figma_get_selectionThe layers the designer has selected on the canvas right now, with their ids, names, types and sizes. Start here when the request says "this", "the selected frame", or names nothing at all.

The layers the designer has selected on the canvas right now, with their ids, names, types and sizes. Start here when the request says "this", "the selected frame", or names nothing at all.

No input schema was published for this tool.

figma_get_treeThe top-level layers of the page the designer is looking at. Increase depth to walk further down, but note that a deep page is thousands of rows: prefer figma_get_children on one branch.

The top-level layers of the page the designer is looking at. Increase depth to walk further down, but note that a deep page is thousands of rows: prefer figma_get_children on one branch.

No input schema was published for this tool.

figma_get_childrenThe direct children of one node, by id. The cheap way to explore a page a branch at a time.

The direct children of one node, by id. The cheap way to explore a page a branch at a time.

No input schema was published for this tool.

figma_extractThe full extraction of one node: HTML measured against what Figma draws, byte-exact figmaCss, a React component, plain CSS and CSS modules. Images are inlined and icons come out as real SVG, so the HTML stands on its own. This is the tool that answers "what does this design actually say".

The full extraction of one node: HTML measured against what Figma draws, byte-exact figmaCss, a React component, plain CSS and CSS modules. Images are inlined and icons come out as real SVG, so the HTML stands on its own. This is the tool that answers "what does this design actually say".

No input schema was published for this tool.

figma_export_pngRenders one node and returns the picture itself, so a model that can see gets to look at the design rather than read a description of it. Nothing is stored anywhere.

Renders one node and returns the picture itself, so a model that can see gets to look at the design rather than read a description of it. Nothing is stored anywhere.

No input schema was published for this tool.

figma_resolve_urlTurns one or more Figma links into the nodes they name, without exporting anything.

Turns one or more Figma links into the nodes they name, without exporting anything.

No input schema was published for this tool.

figma_list_savedThe nodes the designer curated in the panel, by folder. A shortlist of what matters in this file, which is usually a better starting point than the whole page.

The nodes the designer curated in the panel, by folder. A shortlist of what matters in this file, which is usually a better starting point than the whole page.

No input schema was published for this tool.

figma_savedRead and change the designer’s shortlist of nodes in this file, and the folders it is grouped into. One action argument:

Read and change the designer’s shortlist of nodes in this file, and the folders it is grouped into. One action argument:

No input schema was published for this tool.

figma_list_libraryThe components, styles and variables this file has, with the ids the other tools need. Read this before "make it match our button" or "use our brand colour" — instantiating the real component or binding the real variable is what makes a change survive contact with the design system, rather than a h…

The components, styles and variables this file has, with the ids the other tools need. Read this before "make it match our button" or "use our brand colour" — instantiating the real component or binding the real variable is what makes a change survive contact with the design system, rather than a h…

No input schema was published for this tool.

figma_selectSelects one or more layers and scrolls the canvas to them, so the designer is looking at whatever you are talking about. Use it before describing a node you found by walking the tree — pointing is faster than naming an id — and after an edit, so the change is on screen.

Selects one or more layers and scrolls the canvas to them, so the designer is looking at whatever you are talking about. Use it before describing a node you found by walking the tree — pointing is faster than naming an id — and after an edit, so the change is on screen.

No input schema was published for this tool.

figma_set_fillReplaces a node’s fills with one solid colour, and answers with the colour read back off the node — so a write that did not land is visible without a screenshot. It replaces every fill the node had, which is worth knowing before pointing it at a gradient or a photograph; the answer names what was t…

Replaces a node’s fills with one solid colour, and answers with the colour read back off the node — so a write that did not land is visible without a screenshot. It replaces every fill the node had, which is worth knowing before pointing it at a gradient or a photograph; the answer names what was t…

No input schema was published for this tool.

figma_set_strokeReplaces a node’s strokes with one solid colour, and optionally sets the stroke weight. Pass remove: true to take the stroke off entirely. Borders in Figma are strokes, not fills — a row outline or an icon drawn as an outline needs this rather than figma_set_fill.

Replaces a node’s strokes with one solid colour, and optionally sets the stroke weight. Pass remove: true to take the stroke off entirely. Borders in Figma are strokes, not fills — a row outline or an icon drawn as an outline needs this rather than figma_set_fill.

No input schema was published for this tool.

figma_set_textReplaces the text of one TEXT node. The font is loaded first; a layer whose font is missing from this machine is refused rather than silently retyped in a substitute.

Replaces the text of one TEXT node. The font is loaded first; a layer whose font is missing from this machine is refused rather than silently retyped in a substitute.

No input schema was published for this tool.

figma_set_auto_layoutTurns auto layout on for a frame and sets its direction, spacing, padding and alignment. Pass mode "NONE" to turn it off. Only the properties you name are changed.

Turns auto layout on for a frame and sets its direction, spacing, padding and alignment. Pass mode "NONE" to turn it off. Only the properties you name are changed.

No input schema was published for this tool.

figma_create_frameCreates an empty frame, on the current page or inside a parent you name. Returns the new node’s id so the next call can fill it.

Creates an empty frame, on the current page or inside a parent you name. Returns the new node’s id so the next call can fill it.

No input schema was published for this tool.

figma_create_textCreates a TEXT layer with the words you give it. The font is loaded before anything is typed, and a font this machine does not have is refused rather than substituted. Give a width to make it wrap; without one it hugs its text.

Creates a TEXT layer with the words you give it. The font is loaded before anything is typed, and a font this machine does not have is refused rather than substituted. Give a width to make it wrap; without one it hugs its text.

No input schema was published for this tool.

figma_create_rectangleCreates a rectangle. The workhorse shape: dividers, bars, backgrounds, placeholders. Omit the fill for an empty one.

Creates a rectangle. The workhorse shape: dividers, bars, backgrounds, placeholders. Omit the fill for an empty one.

No input schema was published for this tool.

figma_create_ellipseCreates an ellipse. Equal width and height give a circle — an avatar, a dot, a radio button.

Creates an ellipse. Equal width and height give a circle — an avatar, a dot, a radio button.

No input schema was published for this tool.

figma_create_svgTurns SVG markup into real Figma vectors — not an image, but editable paths in a frame. This is how to add an icon, a logo or any shape the other create tools cannot express. Extraction returns icons as SVG too, so a shape can be read out of one place and drawn into another unchanged.

Turns SVG markup into real Figma vectors — not an image, but editable paths in a frame. This is how to add an icon, a logo or any shape the other create tools cannot express. Extraction returns icons as SVG too, so a shape can be read out of one place and drawn into another unchanged.

No input schema was published for this tool.

figma_create_instanceCreates an instance of a component in this file. Get the id from figma_list_library. Naming a variant set places its default variant. Prefer this over drawing a lookalike: an instance keeps its link to the component and updates with it.

Creates an instance of a component in this file. Get the id from figma_list_library. Naming a variant set places its default variant. Prefer this over drawing a lookalike: an instance keeps its link to the component and updates with it.

No input schema was published for this tool.

figma_clone_nodeCopies a node, with everything inside it, into the same parent or one you name. The cheapest way to make a second row, card or list item that matches the first exactly.

Copies a node, with everything inside it, into the same parent or one you name. The cheapest way to make a second row, card or list item that matches the first exactly.

No input schema was published for this tool.

figma_move_nodeprivilegedMoves a node into another parent, or to a different position among its siblings. Index 0 is the back of the canvas and the top of a layer list; leaving it out puts the node last.

Moves a node into another parent, or to a different position among its siblings. Index 0 is the back of the canvas and the top of a layer list; leaving it out puts the node last.

No input schema was published for this tool.

figma_delete_nodeprivilegedRemoves a node and everything inside it. One undo step, so the designer can take it back with a single Cmd-Z — but say what you are deleting before you do it.

Removes a node and everything inside it. One undo step, so the designer can take it back with a single Cmd-Z — but say what you are deleting before you do it.

No input schema was published for this tool.

figma_set_boundsSets position and size. Position is ignored inside an auto-layout frame, where the parent decides it — use figma_set_layout_sizing and the parent’s spacing there instead.

Sets position and size. Position is ignored inside an auto-layout frame, where the parent decides it — use figma_set_layout_sizing and the parent’s spacing there instead.

No input schema was published for this tool.

figma_set_corner_radiusSets one radius for every corner, or each corner on its own.

Sets one radius for every corner, or each corner on its own.

No input schema was published for this tool.

figma_set_node_nameRenames a layer. Layer names are what the generated code turns into class names, so tidying them is a real change and not cosmetic.

Renames a layer. Layer names are what the generated code turns into class names, so tidying them is a real change and not cosmetic.

No input schema was published for this tool.

figma_set_visibilitySets opacity, visibility and lock. Hidden layers are skipped by extraction, which is often the point.

Sets opacity, visibility and lock. Hidden layers are skipped by extraction, which is often the point.

No input schema was published for this tool.

figma_set_effectsReplaces a node’s effects with the list you give. An empty list clears them. Elevation in most design systems is a drop shadow, so this is what "make it look raised" means.

Replaces a node’s effects with the list you give. An empty list clears them. Elevation in most design systems is a drop shadow, so this is what "make it look raised" means.

No input schema was published for this tool.

figma_set_text_styleFont, size, line height, letter spacing, alignment and colour, on a TEXT layer. Only what you name is changed. Prefer figma_apply_style where the file has a text style for it — a named style survives a redesign and a hard-coded 14px does not.

Font, size, line height, letter spacing, alignment and colour, on a TEXT layer. Only what you name is changed. Prefer figma_apply_style where the file has a text style for it — a named style survives a redesign and a hard-coded 14px does not.

No input schema was published for this tool.

figma_set_layout_sizingHow a child behaves inside an auto-layout frame: HUG shrinks to its contents, FILL stretches to the parent, FIXED keeps its size. This, not figma_set_bounds, is how widths are set inside auto layout.

How a child behaves inside an auto-layout frame: HUG shrinks to its contents, FILL stretches to the parent, FIXED keeps its size. This, not figma_set_bounds, is how widths are set inside auto layout.

No input schema was published for this tool.

figma_apply_styleApplies a paint, text or effect style from this file by id, from figma_list_library. The right way to make something "match": the layer follows the style afterwards, where a copied hex code does not.

Applies a paint, text or effect style from this file by id, from figma_list_library. The right way to make something "match": the layer follows the style afterwards, where a copied hex code does not.

No input schema was published for this tool.

figma_bind_variableBinds a variable from this file to a property, so the value follows the token rather than being a copy of it. Use "fill" or "stroke" for a colour variable; for a number use the property name, like cornerRadius, itemSpacing, paddingLeft, width or opacity.

Binds a variable from this file to a property, so the value follows the token rather than being a copy of it. Use "fill" or "stroke" for a colour variable; for a number use the property name, like cornerRadius, itemSpacing, paddingLeft, width or opacity.

No input schema was published for this tool.

figma_save_versionNo description published

This tool published no description. Forge does not invent one.

figma_find_nodesNo description published

This tool published no description. Forge does not invent one.

figma_pagesNo description published

This tool published no description. Forge does not invent one.

figma_component_propertiesNo description published

This tool published no description. Forge does not invent one.

figma_groupNo description published

This tool published no description. Forge does not invent one.

figma_insert_imageNo description published

This tool published no description. Forge does not invent one.

figma_set_instance_propertiesNo description published

This tool published no description. Forge does not invent one.

figma_ios_specNo description published

This tool published no description. Forge does not invent one.

32 of 40 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

The Figma file you have open, as MCP tools. Extract, edit, and keep a saved set.

Keywords
mcp
Alternatives
Comparing tool surfaces…

Dependency tree

What one Forge scan resolved from npm metadata on 2026-10-04 — observed resolution, not a publisher declaration.

60 packages resolved · 2 direct · none carrying advisories Resolution stops at depth 4 and 60 packages.

The crawl stopped at the depth-4 limit. Anything below that level was never resolved.

The crawl stopped at the 60-package limit. The rest of the tree was never resolved.

36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)

Declared but not resolved

54 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.

+42 more not listed. The counts by reason above cover all of them.

Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.