@gethopp/figma-mcp-bridge 0.0.13 → 0.0.15

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/tools.js CHANGED
@@ -2,11 +2,17 @@ import { lookup } from "node:dns/promises";
2
2
  import { mkdir, readFile, writeFile } from "node:fs/promises";
3
3
  import { isIP } from "node:net";
4
4
  import path from "node:path";
5
- import { createFrameInput, createImageInput, createShapeShape, createTextShape, createShapeInput, createTextInput, setNodePropertiesInput, setGradientFillInput, setSolidFillInput, setEffectsInput, setStrokePropertiesInput, setAutoLayoutInput, setSelectionInput, scrollAndZoomIntoViewInput, groupNodesInput, ungroupNodeInput, setTextPropertiesShape, setTextPropertiesInput, toolInputSchemas, } from "./schema.js";
5
+ import { createFrameInput, createImageInput, createShapeShape, createTextShape, createShapeInput, createTextInput, setNodePropertiesInput, setGradientFillInput, setSolidFillInput, setEffectsShape, setEffectsInput, setStrokePropertiesInput, setAutoLayoutInput, setSelectionInput, scrollAndZoomIntoViewInput, groupNodesInput, ungroupNodeInput, setTextPropertiesShape, setTextPropertiesInput, toolInputSchemas, } from "./schema.js";
6
6
  import { Follower } from "./follower.js";
7
7
  const MAX_IMAGE_BYTES = 32 * 1024 * 1024;
8
8
  const IMAGE_FETCH_TIMEOUT_MS = 15_000;
9
9
  const MAX_IMAGE_REDIRECTS = 5;
10
+ /**
11
+ * Registers all Figma bridge tools on the given MCP server.
12
+ * @param server - The MCP server instance.
13
+ * @param node - The node coordinator for leader/follower routing.
14
+ * @param port - The port used for follower-to-leader HTTP calls.
15
+ */
10
16
  export function registerTools(server, node, port) {
11
17
  server.tool("list_files", "List all currently connected Figma files. Returns fileKey and fileName for each. Use the fileKey to target a specific file in other tools.", async () => {
12
18
  try {
@@ -57,12 +63,14 @@ export function registerTools(server, node, port) {
57
63
  server.tool("get_variable_defs", "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.", toolInputSchemas.get_variable_defs.shape, async ({ fileKey }) => {
58
64
  return renderResponse(() => node.send("get_variable_defs", undefined, fileKey));
59
65
  });
60
- server.tool("get_screenshot", "Export a screenshot of the selected nodes or specific nodes by ID. Returns base64-encoded image data. When multiple files are connected, specify fileKey.", toolInputSchemas.get_screenshot.shape, async ({ nodeIds, format, scale, fileKey }) => {
66
+ server.tool("get_screenshot", "Export a screenshot of the selected nodes or specific nodes by ID. Returns base64-encoded image data. When multiple files are connected, specify fileKey.", toolInputSchemas.get_screenshot.shape, async ({ nodeIds, format, scale, clip, fileKey }) => {
61
67
  const params = {};
62
68
  if (format)
63
69
  params.format = format;
64
70
  if (scale !== undefined && scale > 0)
65
71
  params.scale = scale;
72
+ if (clip !== undefined)
73
+ params.clip = clip;
66
74
  return renderResponse(() => node.sendWithParams("get_screenshot", nodeIds, params, fileKey));
67
75
  });
68
76
  server.tool("set_node_visibility", "Show or hide specific Figma nodes. Returns previous visibility for each node so you can restore them after. Useful for isolating a single layer before exporting: hide all siblings, export the frame, then restore visibility.", toolInputSchemas.set_node_visibility.shape, async ({ items, fileKey }) => {
@@ -91,7 +99,11 @@ export function registerTools(server, node, port) {
91
99
  server.tool("set_gradient_fill", "Replace a node's fill (or stroke) with a gradient paint. Provide ordered stops (position 0..1, hex color, optional alpha) and an optional 2x3 gradientTransform matching Figma's gradientTransform format. Useful for setting linear/radial/angular/diamond gradients programmatically.", setGradientFillInput.shape, async ({ nodeId, fileKey, ...params }) => {
92
100
  return renderResponse(() => node.sendWithParams("set_gradient_fill", [nodeId], params, fileKey));
93
101
  });
94
- server.tool("set_effects", "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.", setEffectsInput.shape, async ({ nodeId, fileKey, ...params }) => {
102
+ server.tool("set_effects", "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.", setEffectsShape.shape, async (args) => {
103
+ const parsed = parseToolInput(setEffectsInput, args);
104
+ if (!parsed.success)
105
+ return parsed.error;
106
+ const { nodeId, fileKey, ...params } = parsed.data;
95
107
  return renderResponse(() => node.sendWithParams("set_effects", [nodeId], params, fileKey));
96
108
  });
97
109
  server.tool("set_stroke_properties", "Patch stroke geometry properties: weight, align, dash pattern, cap, join. Use set_solid_fill/set_gradient_fill with target='stroke' to set the paint itself.", setStrokePropertiesInput.shape, async (args) => {
@@ -167,13 +179,13 @@ export function registerTools(server, node, port) {
167
179
  server.tool("delete_nodes", "Delete one or more nodes. This is destructive and requires confirm: true. Page and document nodes cannot be deleted through this tool. When multiple files are connected, specify fileKey.", toolInputSchemas.delete_nodes.shape, async ({ nodeIds, confirm, fileKey }) => {
168
180
  return renderResponse(() => node.sendWithParams("delete_nodes", nodeIds, { confirm }, fileKey));
169
181
  });
170
- server.tool("save_screenshots", "Export screenshots for multiple nodes and save them directly to the local filesystem. Returns metadata only (no base64). When multiple files are connected, specify fileKey.", toolInputSchemas.save_screenshots.shape, async ({ items, format, scale, fileKey }) => {
182
+ server.tool("save_screenshots", "Export screenshots for multiple nodes and save them directly to the local filesystem. Returns metadata only (no base64). When multiple files are connected, specify fileKey.", toolInputSchemas.save_screenshots.shape, async ({ items, format, scale, clip, fileKey }) => {
171
183
  try {
172
184
  // Create a sender bound to the specific fileKey
173
185
  const sender = {
174
186
  sendWithParams: (requestType, nodeIds, params) => node.sendWithParams(requestType, nodeIds, params, fileKey),
175
187
  };
176
- const result = await executeSaveScreenshots(sender, items, format, scale);
188
+ const result = await executeSaveScreenshots(sender, items, format, scale, clip);
177
189
  return {
178
190
  content: [{ type: "text", text: JSON.stringify(result) }],
179
191
  };
@@ -191,10 +203,19 @@ export function registerTools(server, node, port) {
191
203
  }
192
204
  });
193
205
  }
194
- export async function executeSaveScreenshots(sender, items, format, scale) {
206
+ /**
207
+ * Saves screenshots for multiple nodes to the local filesystem in batch.
208
+ * @param sender - Sender that forwards get_screenshot requests to the plugin.
209
+ * @param items - Screenshot save operations to execute.
210
+ * @param format - Default export format override.
211
+ * @param scale - Default export scale override for raster formats.
212
+ * @param clip - Default clipping override for saved screenshots.
213
+ * @returns Aggregate result with per-item outcomes.
214
+ */
215
+ export async function executeSaveScreenshots(sender, items, format, scale, clip) {
195
216
  const results = [];
196
217
  for (const [index, item] of items.entries()) {
197
- const result = await saveScreenshotItemToFile(sender, item, index, process.cwd(), format, scale);
218
+ const result = await saveScreenshotItemToFile(sender, item, index, process.cwd(), format, scale, clip);
198
219
  results.push(result);
199
220
  }
200
221
  const succeeded = results.filter((r) => r.success).length;
@@ -207,6 +228,11 @@ export async function executeSaveScreenshots(sender, items, format, scale) {
207
228
  results,
208
229
  };
209
230
  }
231
+ /**
232
+ * Wraps a bridge call and converts the result into a tool result.
233
+ * @param fn - Bridge call to execute.
234
+ * @returns Tool result with the bridge response or an error message.
235
+ */
210
236
  async function renderResponse(fn) {
211
237
  try {
212
238
  const resp = await fn();
@@ -232,6 +258,12 @@ async function renderResponse(fn) {
232
258
  };
233
259
  }
234
260
  }
261
+ /**
262
+ * Parses raw tool arguments with a Zod schema and returns a typed result or a tool error.
263
+ * @param schema - Zod schema to validate against.
264
+ * @param args - Raw arguments from the MCP client.
265
+ * @returns Parsed data on success, or an error tool result on failure.
266
+ */
235
267
  function parseToolInput(schema, args) {
236
268
  const result = schema.safeParse(args);
237
269
  if (result.success) {
@@ -245,6 +277,12 @@ function parseToolInput(schema, args) {
245
277
  },
246
278
  };
247
279
  }
280
+ /**
281
+ * Resolves an output path relative to the workspace and ensures it stays inside it.
282
+ * @param outputPath - Relative or absolute output path.
283
+ * @param workspaceRoot - Root directory that must contain the resolved path.
284
+ * @returns Absolute path inside the workspace root.
285
+ */
248
286
  function resolveAndValidateOutputPath(outputPath, workspaceRoot) {
249
287
  const resolvedRoot = path.resolve(workspaceRoot);
250
288
  const resolvedPath = path.resolve(resolvedRoot, outputPath);
@@ -255,6 +293,12 @@ function resolveAndValidateOutputPath(outputPath, workspaceRoot) {
255
293
  }
256
294
  return resolvedPath;
257
295
  }
296
+ /**
297
+ * Loads an image source as a base64 string from a URL, data URI, or local file.
298
+ * @param source - Image source: URL, data URI, or local file path.
299
+ * @param workspaceRoot - Root directory for resolving relative local paths.
300
+ * @returns Base64-encoded image bytes.
301
+ */
258
302
  async function loadImageSourceAsBase64(source, workspaceRoot) {
259
303
  if (/^https?:\/\//i.test(source)) {
260
304
  const bytes = await fetchImageBytes(source);
@@ -277,6 +321,11 @@ async function loadImageSourceAsBase64(source, workspaceRoot) {
277
321
  }
278
322
  return bytes.toString("base64");
279
323
  }
324
+ /**
325
+ * Fetches image bytes from a remote URL with redirect and timeout limits.
326
+ * @param source - HTTP or HTTPS image URL.
327
+ * @returns Raw image bytes.
328
+ */
280
329
  async function fetchImageBytes(source) {
281
330
  let url = new URL(source);
282
331
  let redirects = 0;
@@ -328,6 +377,10 @@ async function fetchImageBytes(source) {
328
377
  return readBoundedResponse(resp, MAX_IMAGE_BYTES);
329
378
  }
330
379
  }
380
+ /**
381
+ * Validates that an image URL uses a safe public HTTP(S) endpoint.
382
+ * @param url - URL to validate.
383
+ */
331
384
  async function assertSafeHttpUrl(url) {
332
385
  if (url.protocol !== "http:" && url.protocol !== "https:") {
333
386
  throw new Error("Image URL must use http or https");
@@ -351,6 +404,11 @@ async function assertSafeHttpUrl(url) {
351
404
  throw new Error("Image URL resolves to a blocked internal address");
352
405
  }
353
406
  }
407
+ /**
408
+ * Checks whether an IP address is in a private, loopback, or otherwise blocked range.
409
+ * @param address - IPv4 or IPv6 address string.
410
+ * @returns True if the address is blocked for SSRF protection.
411
+ */
354
412
  function isBlockedIp(address) {
355
413
  if (isIP(address) === 4) {
356
414
  const [a, b] = address.split(".").map(Number);
@@ -374,12 +432,23 @@ function isBlockedIp(address) {
374
432
  /^fe[89ab]:/.test(normalized) ||
375
433
  normalized.startsWith("ff"));
376
434
  }
435
+ /**
436
+ * Strips surrounding brackets from an IPv6 hostname so it can be parsed as an IP.
437
+ * @param hostname - Hostname string, possibly bracketed.
438
+ * @returns Normalized hostname without brackets.
439
+ */
377
440
  function normalizeHostname(hostname) {
378
441
  if (hostname.startsWith("[") && hostname.endsWith("]")) {
379
442
  return hostname.slice(1, -1);
380
443
  }
381
444
  return hostname;
382
445
  }
446
+ /**
447
+ * Reads a response body up to a maximum byte limit.
448
+ * @param resp - Fetch response with a readable body.
449
+ * @param maxBytes - Maximum number of bytes to accept.
450
+ * @returns Concatenated response bytes.
451
+ */
383
452
  async function readBoundedResponse(resp, maxBytes) {
384
453
  if (!resp.body) {
385
454
  return Buffer.alloc(0);
@@ -396,6 +465,11 @@ async function readBoundedResponse(resp, maxBytes) {
396
465
  }
397
466
  return Buffer.concat(chunks, total);
398
467
  }
468
+ /**
469
+ * Infers an export format from a file path extension.
470
+ * @param outputPath - Output file path.
471
+ * @returns Export format, or null if the extension is unrecognized.
472
+ */
399
473
  function inferFormatFromPath(outputPath) {
400
474
  const ext = path.extname(outputPath).toLowerCase();
401
475
  switch (ext) {
@@ -412,12 +486,23 @@ function inferFormatFromPath(outputPath) {
412
486
  return null;
413
487
  }
414
488
  }
489
+ /**
490
+ * Resolves the final export format, ensuring it does not conflict with the file extension.
491
+ * @param format - Explicitly requested format.
492
+ * @param inferredFormat - Format inferred from the output path extension.
493
+ * @returns Resolved export format.
494
+ */
415
495
  function resolveExportFormat(format, inferredFormat) {
416
496
  if (format && inferredFormat && format !== inferredFormat) {
417
497
  throw new Error(`format ${format} conflicts with outputPath extension (${inferredFormat})`);
418
498
  }
419
499
  return format ?? inferredFormat ?? "PNG";
420
500
  }
501
+ /**
502
+ * Extracts and validates the first screenshot export from plugin response data.
503
+ * @param data - Plugin response payload.
504
+ * @returns Validated screenshot export object.
505
+ */
421
506
  function getSingleScreenshotExport(data) {
422
507
  if (!data || typeof data !== "object") {
423
508
  throw new Error("Invalid screenshot response from plugin");
@@ -439,17 +524,32 @@ function getSingleScreenshotExport(data) {
439
524
  const screenshot = first;
440
525
  return screenshot;
441
526
  }
442
- async function saveScreenshotItemToFile(sender, item, index, workspaceRoot, defaultFormat, defaultScale) {
527
+ /**
528
+ * Saves a single screenshot item to the local filesystem.
529
+ * @param sender - Sender that forwards get_screenshot requests to the plugin.
530
+ * @param item - Screenshot save request.
531
+ * @param index - Index of this item in the batch.
532
+ * @param workspaceRoot - Root directory for resolving output paths.
533
+ * @param defaultFormat - Default export format override.
534
+ * @param defaultScale - Default export scale override.
535
+ * @param defaultClip - Default clipping override.
536
+ * @returns Result of the save operation.
537
+ */
538
+ async function saveScreenshotItemToFile(sender, item, index, workspaceRoot, defaultFormat, defaultScale, defaultClip) {
443
539
  let resolvedOutputPath = item.outputPath;
444
540
  try {
445
541
  resolvedOutputPath = resolveAndValidateOutputPath(item.outputPath, workspaceRoot);
446
542
  const inferredFormat = inferFormatFromPath(resolvedOutputPath);
447
543
  const resolvedFormat = resolveExportFormat(item.format ?? defaultFormat, inferredFormat);
448
544
  const resolvedScale = resolveScale(item.scale, defaultScale);
545
+ const resolvedClip = item.clip ?? defaultClip;
449
546
  const params = { format: resolvedFormat };
450
547
  if (resolvedScale !== undefined) {
451
548
  params.scale = resolvedScale;
452
549
  }
550
+ if (resolvedClip !== undefined) {
551
+ params.clip = resolvedClip;
552
+ }
453
553
  const resp = await sender.sendWithParams("get_screenshot", [item.nodeId], params);
454
554
  if (resp.error) {
455
555
  throw new Error(resp.error);
@@ -478,6 +578,12 @@ async function saveScreenshotItemToFile(sender, item, index, workspaceRoot, defa
478
578
  };
479
579
  }
480
580
  }
581
+ /**
582
+ * Writes base64-encoded bytes to a file, creating parent directories as needed.
583
+ * @param base64 - Base64-encoded file contents.
584
+ * @param outputPath - Destination file path.
585
+ * @returns Number of bytes written.
586
+ */
481
587
  async function writeBase64ToFile(base64, outputPath) {
482
588
  const bytes = Buffer.from(base64, "base64");
483
589
  await mkdir(path.dirname(outputPath), { recursive: true });
@@ -492,6 +598,12 @@ async function writeBase64ToFile(base64, outputPath) {
492
598
  }
493
599
  return bytes.length;
494
600
  }
601
+ /**
602
+ * Resolves the effective screenshot scale from item and default values.
603
+ * @param itemScale - Scale specified for the item.
604
+ * @param defaultScale - Default scale for the batch.
605
+ * @returns Positive scale value, or undefined if not applicable.
606
+ */
495
607
  function resolveScale(itemScale, defaultScale) {
496
608
  const resolvedScale = itemScale ?? defaultScale;
497
609
  if (resolvedScale === undefined || resolvedScale <= 0) {
@@ -499,6 +611,11 @@ function resolveScale(itemScale, defaultScale) {
499
611
  }
500
612
  return resolvedScale;
501
613
  }
614
+ /**
615
+ * Type guard that checks whether a value is a NodeJS error with an optional code.
616
+ * @param err - Value to check.
617
+ * @returns True when the value is an Error instance.
618
+ */
502
619
  function isNodeError(err) {
503
620
  return err instanceof Error;
504
621
  }
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gethopp/figma-mcp-bridge",
3
- "version": "0.0.13",
3
+ "version": "0.0.15",
4
4
  "description": "MCP server that bridges Figma plugin data to AI tools without hitting API rate limits",
5
5
  "type": "module",
6
6
  "bin": {