@gethopp/figma-mcp-bridge 0.0.11 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/schema.js CHANGED
@@ -1,24 +1,462 @@
1
1
  import { z } from "zod";
2
- /** Figma node IDs use colon-separated format, e.g. "4029:12345". */
2
+ /**
3
+ * Figma node IDs:
4
+ * - top-level node: "4029:12345"
5
+ * - child inside INSTANCE: "I12740:17806;12740:17793" (and deeper, semicolon-separated)
6
+ *
7
+ * Both forms are valid for figma.getNodeById and are returned as-is by the plugin
8
+ * from get_selection / get_design_context.
9
+ */
3
10
  export const figmaNodeId = z
4
11
  .string()
5
- .regex(/^\d+:\d+$/, "Node ID must use colon format, e.g. '4029:12345'");
12
+ .regex(/^(\d+:\d+|I\d+:\d+(;\d+:\d+)+)$/, "Node ID must use colon format, e.g. '4029:12345', or instance-child format 'I12740:17806;12740:17793'");
6
13
  const exportFormat = z.enum(["PNG", "SVG", "JPG", "PDF"]);
14
+ const hexColor = z
15
+ .string()
16
+ .regex(/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/, "Color must be a hex value like '#FFAA00'");
17
+ const textAlignHorizontal = z.enum(["LEFT", "CENTER", "RIGHT", "JUSTIFIED"]);
18
+ const textAlignVertical = z.enum(["TOP", "CENTER", "BOTTOM"]);
19
+ const textAutoResize = z.enum(["NONE", "WIDTH_AND_HEIGHT", "HEIGHT", "TRUNCATE"]);
20
+ const shapeType = z.enum(["RECTANGLE", "ELLIPSE", "LINE"]);
21
+ const imageScaleMode = z.enum(["FILL", "FIT"]);
22
+ const fileKeyField = z
23
+ .string()
24
+ .optional()
25
+ .describe("The fileKey of the Figma file to query. Required when multiple files are connected. Use list_files to see connected files.");
26
+ const gradientStop = z.object({
27
+ position: z
28
+ .number()
29
+ .min(0)
30
+ .max(1)
31
+ .describe("Stop position from 0 (start of gradient) to 1 (end)"),
32
+ hex: hexColor.describe("Stop color as hex"),
33
+ opacity: z
34
+ .number()
35
+ .min(0)
36
+ .max(1)
37
+ .optional()
38
+ .describe("Optional per-stop alpha (default 1)"),
39
+ });
40
+ const gradientTransform = z
41
+ .tuple([
42
+ z.tuple([z.number(), z.number(), z.number()]),
43
+ z.tuple([z.number(), z.number(), z.number()]),
44
+ ])
45
+ .describe("2x3 affine matrix [[a,b,tx],[c,d,ty]] mapping the unit gradient onto the shape (Figma's gradientTransform). Defaults to identity (horizontal left→right).");
46
+ export const setGradientFillInput = z.object({
47
+ nodeId: figmaNodeId.describe("The node ID to update"),
48
+ gradientType: z
49
+ .enum(["LINEAR", "RADIAL", "ANGULAR", "DIAMOND"])
50
+ .optional()
51
+ .describe("Gradient family (default LINEAR)"),
52
+ gradientStops: z
53
+ .array(gradientStop)
54
+ .min(2)
55
+ .describe("Ordered list of gradient color stops (at least 2)"),
56
+ gradientTransform: gradientTransform.optional(),
57
+ opacity: z
58
+ .number()
59
+ .min(0)
60
+ .max(1)
61
+ .optional()
62
+ .describe("Overall paint opacity (default 1)"),
63
+ target: z
64
+ .enum(["fill", "stroke"])
65
+ .optional()
66
+ .describe("Apply to fills or strokes (default fill)"),
67
+ fileKey: fileKeyField,
68
+ });
69
+ export const setNodePropertiesInput = z.object({
70
+ nodeId: figmaNodeId.describe("The node ID to update"),
71
+ name: z.string().optional().describe("Optional new node name"),
72
+ x: z.number().optional().describe("Optional x position"),
73
+ y: z.number().optional().describe("Optional y position"),
74
+ width: z.number().positive().optional().describe("Optional width"),
75
+ height: z.number().positive().optional().describe("Optional height"),
76
+ rotation: z.number().optional().describe("Optional rotation in degrees"),
77
+ opacity: z
78
+ .number()
79
+ .min(0)
80
+ .max(1)
81
+ .optional()
82
+ .describe("Optional opacity from 0 to 1"),
83
+ visible: z.boolean().optional().describe("Optional visibility"),
84
+ cornerRadius: z
85
+ .number()
86
+ .min(0)
87
+ .optional()
88
+ .describe("Optional corner radius"),
89
+ fileKey: fileKeyField,
90
+ });
91
+ export const setSolidFillInput = z.object({
92
+ nodeId: figmaNodeId.describe("The node ID to update"),
93
+ hex: hexColor.describe("Solid color as hex (e.g. '#FFAA00')"),
94
+ opacity: z
95
+ .number()
96
+ .min(0)
97
+ .max(1)
98
+ .optional()
99
+ .describe("Optional paint opacity from 0 to 1 (default 1)"),
100
+ target: z
101
+ .enum(["fill", "stroke"])
102
+ .optional()
103
+ .describe("Apply to fills or strokes (default fill)"),
104
+ fileKey: fileKeyField,
105
+ });
106
+ const blendMode = z.enum([
107
+ "PASS_THROUGH",
108
+ "NORMAL",
109
+ "DARKEN",
110
+ "MULTIPLY",
111
+ "LINEAR_BURN",
112
+ "COLOR_BURN",
113
+ "LIGHTEN",
114
+ "SCREEN",
115
+ "LINEAR_DODGE",
116
+ "COLOR_DODGE",
117
+ "OVERLAY",
118
+ "SOFT_LIGHT",
119
+ "HARD_LIGHT",
120
+ "DIFFERENCE",
121
+ "EXCLUSION",
122
+ "HUE",
123
+ "SATURATION",
124
+ "COLOR",
125
+ "LUMINOSITY",
126
+ ]);
127
+ const shadowEffect = z.object({
128
+ type: z.enum(["DROP_SHADOW", "INNER_SHADOW"]),
129
+ color: hexColor.describe("Shadow color as hex"),
130
+ opacity: z
131
+ .number()
132
+ .min(0)
133
+ .max(1)
134
+ .optional()
135
+ .describe("Shadow alpha 0..1 (default 1)"),
136
+ offset: z
137
+ .object({
138
+ x: z.number(),
139
+ y: z.number(),
140
+ })
141
+ .describe("Shadow offset in pixels"),
142
+ radius: z.number().min(0).describe("Blur radius (>= 0)"),
143
+ spread: z
144
+ .number()
145
+ .optional()
146
+ .describe("Expand/contract distance (default 0). Only honored on rects/ellipses, or on frames/components/instances with visible fills and clipsContent."),
147
+ blendMode: blendMode.optional().describe("Default NORMAL"),
148
+ visible: z.boolean().optional().describe("Default true"),
149
+ });
150
+ const blurEffect = z.object({
151
+ type: z.enum(["LAYER_BLUR", "BACKGROUND_BLUR"]),
152
+ radius: z.number().min(0).describe("Blur radius (>= 0)"),
153
+ visible: z.boolean().optional().describe("Default true"),
154
+ });
155
+ export const setSelectionInput = z.object({
156
+ nodeIds: z
157
+ .array(figmaNodeId)
158
+ .describe("Node IDs to select. Pass [] to clear the selection."),
159
+ fileKey: fileKeyField,
160
+ });
161
+ export const scrollAndZoomIntoViewInput = z.object({
162
+ nodeIds: z
163
+ .array(figmaNodeId)
164
+ .min(1)
165
+ .describe("Node IDs to frame in the viewport"),
166
+ fileKey: fileKeyField,
167
+ });
168
+ export const groupNodesInput = z.object({
169
+ nodeIds: z
170
+ .array(figmaNodeId)
171
+ .min(1)
172
+ .describe("Node IDs to group. Must share a common parent."),
173
+ parentId: figmaNodeId
174
+ .optional()
175
+ .describe("Optional explicit parent for the new group. Defaults to the shared parent of the input nodes."),
176
+ name: z.string().optional().describe("Optional name for the new group"),
177
+ fileKey: fileKeyField,
178
+ });
179
+ export const ungroupNodeInput = z.object({
180
+ nodeId: figmaNodeId.describe("Group or frame to ungroup. Children move up to its parent and the wrapper is removed."),
181
+ fileKey: fileKeyField,
182
+ });
183
+ export const setEffectsInput = z.object({
184
+ nodeId: figmaNodeId.describe("The node ID to update"),
185
+ effects: z
186
+ .array(z.discriminatedUnion("type", [shadowEffect, blurEffect]))
187
+ .describe("Full replacement list of effects. Pass [] to clear all effects. Each entry is a drop/inner shadow or a layer/background blur."),
188
+ fileKey: fileKeyField,
189
+ });
190
+ export const setStrokePropertiesInput = z.object({
191
+ nodeId: figmaNodeId.describe("The node ID to update"),
192
+ strokeWeight: z
193
+ .number()
194
+ .min(0)
195
+ .optional()
196
+ .describe("Stroke thickness in pixels"),
197
+ strokeAlign: z
198
+ .enum(["INSIDE", "OUTSIDE", "CENTER"])
199
+ .optional()
200
+ .describe("How the stroke is positioned relative to the geometry edge"),
201
+ dashPattern: z
202
+ .array(z.number().min(0))
203
+ .optional()
204
+ .describe("Dash pattern as [dash, gap, dash, gap, ...] in pixels. Pass [] for a solid stroke."),
205
+ strokeCap: z
206
+ .enum([
207
+ "NONE",
208
+ "ROUND",
209
+ "SQUARE",
210
+ "ARROW_LINES",
211
+ "ARROW_EQUILATERAL",
212
+ ])
213
+ .optional()
214
+ .describe("End-cap style (only meaningful on open paths/lines)"),
215
+ strokeJoin: z
216
+ .enum(["MITER", "BEVEL", "ROUND"])
217
+ .optional()
218
+ .describe("Corner join style"),
219
+ fileKey: fileKeyField,
220
+ });
221
+ export const setAutoLayoutInput = z.object({
222
+ nodeId: figmaNodeId.describe("The node ID to update (must be a frame)"),
223
+ layoutMode: z
224
+ .enum(["NONE", "HORIZONTAL", "VERTICAL"])
225
+ .optional()
226
+ .describe("Auto-layout direction. 'NONE' disables auto-layout."),
227
+ itemSpacing: z
228
+ .number()
229
+ .optional()
230
+ .describe("Gap between children along the primary axis (pixels)"),
231
+ counterAxisSpacing: z
232
+ .number()
233
+ .optional()
234
+ .describe("Gap between wrapped rows/columns (only when layoutWrap=WRAP)"),
235
+ paddingTop: z.number().min(0).optional(),
236
+ paddingRight: z.number().min(0).optional(),
237
+ paddingBottom: z.number().min(0).optional(),
238
+ paddingLeft: z.number().min(0).optional(),
239
+ primaryAxisAlignItems: z
240
+ .enum(["MIN", "MAX", "CENTER", "SPACE_BETWEEN"])
241
+ .optional()
242
+ .describe("Alignment along the primary axis"),
243
+ counterAxisAlignItems: z
244
+ .enum(["MIN", "MAX", "CENTER", "BASELINE"])
245
+ .optional()
246
+ .describe("Alignment along the counter axis"),
247
+ primaryAxisSizingMode: z
248
+ .enum(["FIXED", "AUTO"])
249
+ .optional()
250
+ .describe("AUTO = hug contents along primary axis"),
251
+ counterAxisSizingMode: z
252
+ .enum(["FIXED", "AUTO"])
253
+ .optional()
254
+ .describe("AUTO = hug contents along counter axis"),
255
+ layoutWrap: z
256
+ .enum(["NO_WRAP", "WRAP"])
257
+ .optional()
258
+ .describe("Allow children to wrap onto multiple rows/columns"),
259
+ fileKey: fileKeyField,
260
+ });
261
+ export const createFrameInput = z.object({
262
+ name: z.string().optional().describe("Optional frame name"),
263
+ parentId: figmaNodeId
264
+ .optional()
265
+ .describe("Optional parent node ID to append the frame into"),
266
+ x: z.number().optional().describe("Optional x position"),
267
+ y: z.number().optional().describe("Optional y position"),
268
+ width: z.number().positive().optional().describe("Frame width"),
269
+ height: z.number().positive().optional().describe("Frame height"),
270
+ fillHex: hexColor
271
+ .optional()
272
+ .describe("Optional solid fill color as hex"),
273
+ fillOpacity: z
274
+ .number()
275
+ .min(0)
276
+ .max(1)
277
+ .optional()
278
+ .describe("Optional solid fill opacity from 0 to 1"),
279
+ fileKey: fileKeyField,
280
+ });
281
+ export const setTextPropertiesShape = z.object({
282
+ nodeId: figmaNodeId.describe("The text node ID to update"),
283
+ fontFamily: z.string().optional().describe("Optional font family"),
284
+ fontStyle: z.string().optional().describe("Optional font style"),
285
+ fontSize: z.number().positive().optional().describe("Optional font size"),
286
+ textAlignHorizontal: textAlignHorizontal
287
+ .optional()
288
+ .describe("Optional horizontal alignment"),
289
+ textAlignVertical: textAlignVertical
290
+ .optional()
291
+ .describe("Optional vertical alignment"),
292
+ textAutoResize: textAutoResize
293
+ .optional()
294
+ .describe("Optional text auto-resize mode"),
295
+ lineHeightPx: z
296
+ .number()
297
+ .positive()
298
+ .optional()
299
+ .describe("Optional line height in pixels"),
300
+ letterSpacingPx: z
301
+ .number()
302
+ .optional()
303
+ .describe("Optional letter spacing in pixels"),
304
+ fillHex: hexColor.optional().describe("Optional text fill color as hex"),
305
+ fillOpacity: z
306
+ .number()
307
+ .min(0)
308
+ .max(1)
309
+ .optional()
310
+ .describe("Optional text fill opacity from 0 to 1"),
311
+ x: z.number().optional().describe("Optional x position"),
312
+ y: z.number().optional().describe("Optional y position"),
313
+ width: z.number().positive().optional().describe("Optional width"),
314
+ height: z.number().positive().optional().describe("Optional height"),
315
+ fileKey: fileKeyField,
316
+ });
317
+ export const setTextPropertiesInput = setTextPropertiesShape
318
+ .refine((value) => value.fontFamily !== undefined ||
319
+ value.fontStyle !== undefined ||
320
+ value.fontSize !== undefined ||
321
+ value.textAlignHorizontal !== undefined ||
322
+ value.textAlignVertical !== undefined ||
323
+ value.textAutoResize !== undefined ||
324
+ value.lineHeightPx !== undefined ||
325
+ value.letterSpacingPx !== undefined ||
326
+ value.fillHex !== undefined ||
327
+ value.fillOpacity !== undefined ||
328
+ value.x !== undefined ||
329
+ value.y !== undefined ||
330
+ value.width !== undefined ||
331
+ value.height !== undefined, "At least one text property must be provided")
332
+ .refine((value) => value.fillOpacity === undefined || value.fillHex !== undefined, "fillHex is required when fillOpacity is provided");
333
+ export const createTextShape = z.object({
334
+ name: z.string().optional().describe("Optional text node name"),
335
+ parentId: figmaNodeId
336
+ .optional()
337
+ .describe("Optional parent node ID to append the text into"),
338
+ characters: z.string().optional().describe("Initial text content"),
339
+ fontFamily: z.string().optional().describe("Font family, defaults to Inter"),
340
+ fontStyle: z.string().optional().describe("Font style, defaults to Regular"),
341
+ fontSize: z.number().positive().optional().describe("Optional font size"),
342
+ textAlignHorizontal: textAlignHorizontal
343
+ .optional()
344
+ .describe("Optional horizontal alignment"),
345
+ textAutoResize: textAutoResize
346
+ .optional()
347
+ .describe("Optional text auto-resize mode"),
348
+ fillHex: hexColor.optional().describe("Optional text fill color as hex"),
349
+ fillOpacity: z
350
+ .number()
351
+ .min(0)
352
+ .max(1)
353
+ .optional()
354
+ .describe("Optional text fill opacity from 0 to 1"),
355
+ x: z.number().optional().describe("Optional x position"),
356
+ y: z.number().optional().describe("Optional y position"),
357
+ width: z.number().positive().optional().describe("Optional width"),
358
+ height: z.number().positive().optional().describe("Optional height"),
359
+ fileKey: fileKeyField,
360
+ });
361
+ export const createTextInput = createTextShape
362
+ .refine((value) => value.fillOpacity === undefined || value.fillHex !== undefined, "fillHex is required when fillOpacity is provided");
363
+ export const createShapeShape = z.object({
364
+ shapeType: shapeType.describe("Shape type to create"),
365
+ name: z.string().optional().describe("Optional shape name"),
366
+ parentId: figmaNodeId
367
+ .optional()
368
+ .describe("Optional parent node ID to append the shape into"),
369
+ x: z.number().optional().describe("Optional x position"),
370
+ y: z.number().optional().describe("Optional y position"),
371
+ width: z.number().positive().optional().describe("Optional width"),
372
+ height: z.number().positive().optional().describe("Optional height"),
373
+ rotation: z.number().optional().describe("Optional rotation in degrees"),
374
+ cornerRadius: z
375
+ .number()
376
+ .min(0)
377
+ .optional()
378
+ .describe("Optional corner radius for supported shapes"),
379
+ fillHex: hexColor.optional().describe("Optional fill color as hex"),
380
+ fillOpacity: z
381
+ .number()
382
+ .min(0)
383
+ .max(1)
384
+ .optional()
385
+ .describe("Optional fill opacity from 0 to 1"),
386
+ strokeHex: hexColor.optional().describe("Optional stroke color as hex"),
387
+ strokeOpacity: z
388
+ .number()
389
+ .min(0)
390
+ .max(1)
391
+ .optional()
392
+ .describe("Optional stroke opacity from 0 to 1"),
393
+ strokeWeight: z
394
+ .number()
395
+ .positive()
396
+ .optional()
397
+ .describe("Optional stroke weight"),
398
+ fileKey: fileKeyField,
399
+ });
400
+ export const createShapeInput = createShapeShape
401
+ .refine((value) => value.fillOpacity === undefined || value.fillHex !== undefined, "fillHex is required when fillOpacity is provided")
402
+ .refine((value) => value.strokeOpacity === undefined || value.strokeHex !== undefined, "strokeHex is required when strokeOpacity is provided")
403
+ .refine((value) => value.shapeType !== "LINE" || value.fillHex === undefined, "LINE shapes do not support fillHex — use strokeHex instead")
404
+ .refine((value) => value.shapeType !== "LINE" || value.strokeHex !== undefined, "LINE shapes require strokeHex (lines have no fill and would be invisible otherwise)");
405
+ export const createImageInput = z.object({
406
+ source: z
407
+ .string()
408
+ .min(1)
409
+ .describe("Image source. Accepts a local file path (absolute or relative to the MCP server cwd), an http/https URL, or a data URI."),
410
+ name: z.string().optional().describe("Optional image node name"),
411
+ parentId: figmaNodeId
412
+ .optional()
413
+ .describe("Optional parent node ID to append the image into"),
414
+ x: z.number().optional().describe("Optional x position"),
415
+ y: z.number().optional().describe("Optional y position"),
416
+ width: z.number().positive().optional().describe("Optional width"),
417
+ height: z.number().positive().optional().describe("Optional height"),
418
+ cornerRadius: z
419
+ .number()
420
+ .min(0)
421
+ .optional()
422
+ .describe("Optional corner radius"),
423
+ scaleMode: imageScaleMode
424
+ .optional()
425
+ .describe("How the image should fit its bounds: FILL (default) or FIT"),
426
+ fileKey: fileKeyField,
427
+ });
7
428
  export const toolInputSchemas = {
429
+ get_document: z.object({
430
+ fileKey: fileKeyField,
431
+ }),
432
+ get_selection: z.object({
433
+ fileKey: fileKeyField,
434
+ }),
8
435
  get_node: z.object({
9
- nodeId: figmaNodeId.describe("The node ID to fetch"),
436
+ nodeId: figmaNodeId.describe("The node ID to fetch. Accepts top-level IDs like '4029:12345' and instance-child IDs like 'I12740:17806;12740:17793'."),
437
+ fileKey: fileKeyField,
438
+ }),
439
+ get_styles: z.object({
440
+ fileKey: fileKeyField,
441
+ }),
442
+ get_metadata: z.object({
443
+ fileKey: fileKeyField,
10
444
  }),
11
445
  get_design_context: z.object({
12
446
  depth: z
13
447
  .number()
14
448
  .optional()
15
449
  .describe("How many levels deep to traverse the node tree (default 2)"),
450
+ fileKey: fileKeyField,
451
+ }),
452
+ get_variable_defs: z.object({
453
+ fileKey: fileKeyField,
16
454
  }),
17
455
  get_screenshot: z.object({
18
456
  nodeIds: z
19
457
  .array(figmaNodeId)
20
458
  .optional()
21
- .describe("Optional list of node IDs to export (colon-separated format, e.g. '4029:12345' — never use hyphens). If empty, exports the current selection"),
459
+ .describe("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."),
22
460
  format: exportFormat
23
461
  .optional()
24
462
  .describe("Export format: PNG (default) or SVG or JPG or PDF"),
@@ -26,11 +464,91 @@ export const toolInputSchemas = {
26
464
  .number()
27
465
  .optional()
28
466
  .describe("Export scale for raster formats (default 2)"),
467
+ fileKey: fileKeyField,
468
+ }),
469
+ set_node_visibility: z.object({
470
+ items: z
471
+ .array(z.object({
472
+ nodeId: figmaNodeId.describe("The node ID to modify"),
473
+ visible: z.boolean().describe("true to show, false to hide"),
474
+ }))
475
+ .min(1)
476
+ .describe("List of nodes with their target visibility"),
477
+ fileKey: fileKeyField,
478
+ }),
479
+ set_text_content: z.object({
480
+ nodeId: figmaNodeId.describe("The text node ID to update"),
481
+ text: z.string().describe("The new text content"),
482
+ fileKey: fileKeyField,
483
+ }),
484
+ set_text_properties: setTextPropertiesInput,
485
+ set_gradient_fill: setGradientFillInput,
486
+ set_solid_fill: setSolidFillInput,
487
+ set_effects: setEffectsInput,
488
+ set_stroke_properties: setStrokePropertiesInput.refine((value) => value.strokeWeight !== undefined ||
489
+ value.strokeAlign !== undefined ||
490
+ value.dashPattern !== undefined ||
491
+ value.strokeCap !== undefined ||
492
+ value.strokeJoin !== undefined, "At least one stroke property must be provided"),
493
+ set_auto_layout: setAutoLayoutInput.refine((value) => value.layoutMode !== undefined ||
494
+ value.itemSpacing !== undefined ||
495
+ value.counterAxisSpacing !== undefined ||
496
+ value.paddingTop !== undefined ||
497
+ value.paddingRight !== undefined ||
498
+ value.paddingBottom !== undefined ||
499
+ value.paddingLeft !== undefined ||
500
+ value.primaryAxisAlignItems !== undefined ||
501
+ value.counterAxisAlignItems !== undefined ||
502
+ value.primaryAxisSizingMode !== undefined ||
503
+ value.counterAxisSizingMode !== undefined ||
504
+ value.layoutWrap !== undefined, "At least one auto-layout property must be provided"),
505
+ set_node_properties: setNodePropertiesInput.refine((value) => value.name !== undefined ||
506
+ value.x !== undefined ||
507
+ value.y !== undefined ||
508
+ value.width !== undefined ||
509
+ value.height !== undefined ||
510
+ value.rotation !== undefined ||
511
+ value.opacity !== undefined ||
512
+ value.visible !== undefined ||
513
+ value.cornerRadius !== undefined, "At least one property must be provided"),
514
+ create_frame: createFrameInput
515
+ .refine((value) => value.fillOpacity === undefined || value.fillHex !== undefined, "fillHex is required when fillOpacity is provided"),
516
+ create_text: createTextInput,
517
+ create_shape: createShapeInput,
518
+ create_image: createImageInput,
519
+ duplicate_nodes: z.object({
520
+ nodeIds: z
521
+ .array(figmaNodeId)
522
+ .min(1)
523
+ .describe("List of node IDs to duplicate"),
524
+ fileKey: fileKeyField,
525
+ }),
526
+ reparent_nodes: z.object({
527
+ nodeIds: z
528
+ .array(figmaNodeId)
529
+ .min(1)
530
+ .describe("List of node IDs to move"),
531
+ parentId: figmaNodeId.describe("Destination parent node ID"),
532
+ fileKey: fileKeyField,
533
+ }),
534
+ group_nodes: groupNodesInput,
535
+ ungroup_node: ungroupNodeInput,
536
+ set_selection: setSelectionInput,
537
+ scroll_and_zoom_into_view: scrollAndZoomIntoViewInput,
538
+ delete_nodes: z.object({
539
+ nodeIds: z
540
+ .array(figmaNodeId)
541
+ .min(1)
542
+ .describe("List of node IDs to delete"),
543
+ confirm: z
544
+ .boolean()
545
+ .describe("Must be true to confirm deletion"),
546
+ fileKey: fileKeyField,
29
547
  }),
30
548
  save_screenshots: z.object({
31
549
  items: z
32
550
  .array(z.object({
33
- nodeId: figmaNodeId.describe("The node ID to export"),
551
+ nodeId: figmaNodeId.describe("The node ID to export. Accepts top-level IDs like '4029:12345' and instance-child IDs like 'I12740:17806;12740:17793'."),
34
552
  outputPath: z
35
553
  .string()
36
554
  .min(1)
@@ -52,6 +570,7 @@ export const toolInputSchemas = {
52
570
  .number()
53
571
  .optional()
54
572
  .describe("Default export scale for raster formats (default 2)"),
573
+ fileKey: fileKeyField,
55
574
  }),
56
575
  };
57
576
  /**
@@ -60,9 +579,34 @@ export const toolInputSchemas = {
60
579
  * without a mapper is a compile error.
61
580
  */
62
581
  const rpcToArgs = {
63
- get_node: (nodeIds) => ({ nodeId: nodeIds?.[0] }),
582
+ get_document: (_nodeIds, params) => ({ ...params }),
583
+ get_selection: (_nodeIds, params) => ({ ...params }),
584
+ get_node: (nodeIds, params) => ({ ...params, nodeId: nodeIds?.[0] }),
585
+ get_styles: (_nodeIds, params) => ({ ...params }),
586
+ get_metadata: (_nodeIds, params) => ({ ...params }),
64
587
  get_design_context: (_nodeIds, params) => ({ ...params }),
588
+ get_variable_defs: (_nodeIds, params) => ({ ...params }),
65
589
  get_screenshot: (nodeIds, params) => ({ nodeIds, ...params }),
590
+ set_node_visibility: (_nodeIds, params) => ({ ...params }),
591
+ set_text_content: (nodeIds, params) => ({ ...params, nodeId: nodeIds?.[0] }),
592
+ set_text_properties: (nodeIds, params) => ({ ...params, nodeId: nodeIds?.[0] }),
593
+ set_node_properties: (nodeIds, params) => ({ ...params, nodeId: nodeIds?.[0] }),
594
+ set_gradient_fill: (nodeIds, params) => ({ ...params, nodeId: nodeIds?.[0] }),
595
+ set_solid_fill: (nodeIds, params) => ({ ...params, nodeId: nodeIds?.[0] }),
596
+ set_effects: (nodeIds, params) => ({ ...params, nodeId: nodeIds?.[0] }),
597
+ set_stroke_properties: (nodeIds, params) => ({ ...params, nodeId: nodeIds?.[0] }),
598
+ set_auto_layout: (nodeIds, params) => ({ ...params, nodeId: nodeIds?.[0] }),
599
+ create_frame: (_nodeIds, params) => ({ ...params }),
600
+ create_text: (_nodeIds, params) => ({ ...params }),
601
+ create_shape: (_nodeIds, params) => ({ ...params }),
602
+ create_image: (_nodeIds, params) => ({ ...params }),
603
+ duplicate_nodes: (nodeIds, params) => ({ nodeIds, ...params }),
604
+ reparent_nodes: (nodeIds, params) => ({ nodeIds, ...params }),
605
+ group_nodes: (nodeIds, params) => ({ nodeIds, ...params }),
606
+ ungroup_node: (nodeIds, params) => ({ nodeId: nodeIds?.[0], ...params }),
607
+ set_selection: (nodeIds, params) => ({ nodeIds, ...params }),
608
+ scroll_and_zoom_into_view: (nodeIds, params) => ({ nodeIds, ...params }),
609
+ delete_nodes: (nodeIds, params) => ({ nodeIds, ...params }),
66
610
  save_screenshots: (_nodeIds, params) => ({ ...params }),
67
611
  };
68
612
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -23,7 +23,7 @@ interface SaveScreenshotItemResult {
23
23
  success: boolean;
24
24
  error?: string;
25
25
  }
26
- export declare function registerTools(server: McpServer, node: Node): void;
26
+ export declare function registerTools(server: McpServer, node: Node, port: number): void;
27
27
  export declare function executeSaveScreenshots(sender: ScreenshotSender, items: SaveScreenshotItemInput[], format?: ExportFormat, scale?: number): Promise<{
28
28
  total: number;
29
29
  succeeded: number;