Figma Edit MCP
Programmatically read, create, and modify Figma designs.
Connector by neozhehan · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/neozhehan-figma-edit-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.
- Tools
- 9 read · 26 write · 6 delete · 4 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 45
Read from the source code; the running server may list different tools.
Read 9 · Look things up without changing anything.
annotation_listcomponent_listinstance_get_overridesnode_export_visualnode_infopage_inforeaction_liststyle_listvariable_list
Write 26 · Create, change, send or run things.
annotation_setcomponent_manage_propertycreate_componentcreate_component_setcreate_framecreate_instancecreate_shapecreate_svgcreate_textinstance_set_overridesinstance_set_propertynode_apply_style
Show 14 more tools
node_clonenode_insert_childnode_renamenode_set_auto_layoutnode_set_corner_radiusnode_set_effectsnode_set_fillnode_set_strokenode_transformreaction_updatestyle_managetext_set_contenttext_set_stylevariable_manage
Delete 6 · Delete, drop, revoke or wipe things.
component_delete_propertynode_deletenode_flattennode_ungroupstyle_deletevariable_delete
Not yet classified 4 · We could not tell from the name and description.
channel_joinnode_bind_variablenode_groupview_navigate
Network hosts it talks to 4
github.com· found in codeglama.ai· found in codeneozhehan.github.io· found in codeupload.wikimedia.org· found in code
Tools (45)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
annotation_listList Annotationsread-onlyRead the native annotations on a page or node (and subtree); exactly one of pageId or nodeId is required. The file's annotation categories are returned by default; pass includeCategories: false to omit them. Page loading is bounded; a page-scoped failure returns its structured error directly and successful reads include `coverage`.
annotation_setSet AnnotationsAppend native annotations to one or more nodes in a batched call. If the status is 'partial_success', treat it as an incomplete operation and report the failed and skipped items to the user. Appending is NOT idempotent and a 'failed' row may already have appended its annotation (verified counts differ, or outcomeUnknown is true when post-state is unreadable; both carry partialMutation: true) — before retrying any non-success item, call annotation_list and compare the labels already on the node, or you will create a duplicate.
channel_joinJoin ChannelJoin a plugin channel to establish the live connection to the Figma document.
component_delete_propertyDelete Component Propertycan change or delete dataRemove a component-property definition from a main component or variant set; propagates to every instance.
component_listList Componentsread-onlyList components in the document, with filtering and scope options. Document scans isolate page failures and report them in `coverage`; page-scoped failures return their structured error directly.
component_manage_propertyManage Component PropertyAdd or edit a component-property definition (BOOLEAN/TEXT/INSTANCE_SWAP) on a main component or variant set. Deleting is `component_delete_property`.
create_componentCreate ComponentConvert an existing frame into a main component.
create_component_setCreate Component SetCombine components into a component set (variants) with property definitions.
create_frameCreate FrameCreate a frame (container) with optional fill/stroke and full auto-layout configuration.
create_instanceCreate InstanceInstantiate a component (by `componentKey` or `componentId`) at a position.
create_shapeCreate ShapeCreate a rectangle, ellipse, polygon, or star via `type`, with position/size and optional `fillColor`/`strokeColor`. Shape-specific params (`arcData`; `pointCount`/`innerRadius`) validated by `type`. `pointCount` = sides (polygon) or points (star), native count — no even-parity rule.
create_svgCreate Node from SVGCreate a node from an SVG markup string.
create_textCreate TextCreate a text node with content and optional font size/weight/color.
instance_get_overridesGet Instance Overridesread-onlyRead the override properties from a source instance, to later apply them to other instances.
instance_set_overridesSet Instance OverridesApply previously-read overrides to target instances; targets are swapped to the source component and all overrides applied. If the status is 'partial_success', treat it as an incomplete operation, report the failed and skipped items to the user, and retry every non-success item (both failed and skipped).
Show 30 more tools
instance_set_propertySet Instance PropertySet one property on an instance — boolean toggle, text override, instance swap, or variant selection.
node_apply_styleApply StyleLink a node to a shared library style (paint/text/effect/grid) by `styleId`. Use the raw `node_set_*` setters for ad-hoc values not backed by a style.
node_bind_variableBind VariableBind a variable to a node property, or set an explicit variable mode. Use instead of a literal `node_set_*` when the value should track a design token. Ordering rules: set auto-layout before binding padding/spacing; set a solid fill before binding a colour token.
node_cloneClone NodeDuplicate an existing node, optionally at a new `x`/`y`. Produces a new node id.
node_deleteDelete Nodescan change or delete dataDelete one or more nodes in a single batched, per-item-validated call. No API undo. If the status is 'partial_success', treat it as an incomplete operation, report the failed and skipped items to the user, and retry every non-success item (both failed and skipped).
node_export_visualExport Node Imageread-onlyRender a node to an image (PNG/JPG/SVG/PDF) at a given scale. Read-only; the canonical way to visually verify edits. SVG returns raw XML in `svg` (directly readable); PNG/JPG/PDF return base64 in `imageData` (PDF is a delivery artifact — prefer PNG/SVG for inspection).
node_flattenFlatten Nodecan change or delete dataFlatten a node and its children into a single vector. Lossy — original structure is not recoverable.
node_groupGroup NodesWrap multiple nodes in a new group node.
node_infoGet Node Inforead-onlyRead one or more nodes — recursive subtree traversal with `properties` selection, `filter`, and `maxDepth`. Returns only the requested properties (incl. resolved `boundVariables`/`explicitVariableModes`) under each node's `properties` key. A node whose containing page could not be read is listed in `pageFailedNodes` with that page's ID, and the page's structured reason is in `coverage.pageErrors` — other pages still return normally. The workhorse read; start here before any write.
node_insert_childReparent NodeReparent a node under a new parent at an optional `index`. Valid range is 0 to parent's child count. Omit `index` to append.
node_renameRename NodeRename a node (sets `name` to an exact value).
node_set_auto_layoutSet Auto LayoutConfigure a frame's auto-layout (mode, padding, spacing, alignment, sizing) in one unified setter.
node_set_corner_radiusSet Corner RadiusSet a node's corner radius — uniform or per-corner.
node_set_effectsSet EffectsSet a node's effect array (shadows, blurs). Use `node_apply_style` to link a shared effect style instead.
node_set_fillSet FillSet a node's fill to a literal RGBA color, an image, or clear it. Use `node_apply_style` to link a shared paint style, or `node_bind_variable` to bind a color token.
node_set_strokeSet StrokeSet a node's stroke color and weight; supports uniform or per-side weights.
node_transformTransform NodeMove and/or resize a node by setting absolute `x`/`y`/`width`/`height` (any subset).
node_ungroupUngroup Nodecan change or delete dataDissolve a group, promoting its children to the parent. Removes the group container.
page_infoGet Pagesread-onlyList the document's pages; no args → all pages (no children), or pass `pageIds` → those pages with their top-level children. Batch ≤25 ids/call. Inspect `coverage`: a failed page is omitted with a structured `pageErrors` row while other pages still return.
reaction_listList Reactionsread-onlyRead prototype reactions from one or more nodes and their descendants.
reaction_updateUpdate ReactionsReplace a node's prototype reactions with a full new reactions array (read first via `reaction_list`).
style_deleteDelete Stylecan change or delete dataDelete a local style by id. Detaches consumers — they keep their resolved values and lose only the style link.
style_listList Stylesread-onlyList all local styles (paint/text/effect/grid) in the document.
style_manageManage StyleCreate a named style (paint/text/effect/grid), or update an existing one when `styleId` is given. UPDATE requires currentStyleName.
text_set_contentSet Text ContentsSet the text of one or more text nodes in a single batched, per-item-validated call. If the status is 'partial_success', treat it as an incomplete operation, report the failed and skipped items to the user, and retry every non-success item (both failed and skipped).
text_set_styleSet Text StyleSet any combination of typography properties (font, size, weight, spacing, decoration, …) on a text node.
variable_deleteDelete Variablescan change or delete dataDelete specific variables or an entire collection. Runs a full-document consumer check first, before any removal: if a target is still in use the call is refused with VARIABLE_IN_USE, whose `details.variablesInUse` lists every consumer; if any page cannot be loaded and read it is refused with DOCUMENT_SCAN_INCOMPLETE, because a page error can never mean zero consumers.
variable_listList Variablesread-onlyList local variables/collections, or detailed info for specific variable ids; optionally scan for consumers. Document consumer scans isolate page failures and report them in `coverage`; page-scoped failures return their structured error directly.
variable_manageManage VariablesCreate collections and variables and set their values/aliases (create/update router). UPDATE_VARIABLE requires `currentVariableName`. CREATE_VARIABLE requires `collectionName` and `scopes`.
view_navigateNavigate ViewNavigate the editor view to a page or node(s).
Signals
- Stars
- 14
- Forks
- 2
- Open issues
- 0
- Last commit
- Aug 4, 2026 (2 months ago)
- Last release
- Aug 4, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.neozhehan/figma-edit-mcp- Version
- 2.3.3
- Auth
- No auth
- Packages
- npm figma-edit-mcp
- License
- MIT
- Repository
- github.com/neozhehan/figma-edit-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
Figma Edit MCP. Agent Mart. https://agentmart.dev/connectors/neozhehan-figma-edit-mcp (last updated 2026-10-24)