@atezer/figma-mcp-bridge 1.1.2 → 1.2.1

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.
Files changed (35) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/LICENSE +0 -11
  3. package/README.md +107 -10
  4. package/dist/cloudflare/core/config.js +1 -1
  5. package/dist/cloudflare/core/figma-tools.js +290 -254
  6. package/dist/cloudflare/core/figma-url.js +48 -0
  7. package/dist/cloudflare/core/plugin-bridge-connector.js +52 -43
  8. package/dist/cloudflare/core/plugin-bridge-server.js +247 -75
  9. package/dist/core/config.js +1 -1
  10. package/dist/core/config.js.map +1 -1
  11. package/dist/core/figma-tools.d.ts.map +1 -1
  12. package/dist/core/figma-tools.js +290 -254
  13. package/dist/core/figma-tools.js.map +1 -1
  14. package/dist/core/figma-url.d.ts +10 -0
  15. package/dist/core/figma-url.d.ts.map +1 -0
  16. package/dist/core/figma-url.js +49 -0
  17. package/dist/core/figma-url.js.map +1 -0
  18. package/dist/core/plugin-bridge-connector.d.ts +6 -1
  19. package/dist/core/plugin-bridge-connector.d.ts.map +1 -1
  20. package/dist/core/plugin-bridge-connector.js +52 -43
  21. package/dist/core/plugin-bridge-connector.js.map +1 -1
  22. package/dist/core/plugin-bridge-server.d.ts +49 -12
  23. package/dist/core/plugin-bridge-server.d.ts.map +1 -1
  24. package/dist/core/plugin-bridge-server.js +247 -75
  25. package/dist/core/plugin-bridge-server.js.map +1 -1
  26. package/dist/local-plugin-only.d.ts.map +1 -1
  27. package/dist/local-plugin-only.js +391 -139
  28. package/dist/local-plugin-only.js.map +1 -1
  29. package/dist/local.js +323 -183
  30. package/dist/local.js.map +1 -1
  31. package/f-mcp-plugin/README.md +5 -5
  32. package/f-mcp-plugin/code.js +243 -2
  33. package/f-mcp-plugin/manifest.json +3 -1
  34. package/f-mcp-plugin/ui.html +359 -64
  35. package/package.json +8 -8
@@ -1,50 +1,100 @@
1
1
  /**
2
2
  * Plugin Bridge WebSocket Server
3
3
  *
4
- * Listens for connections from the F-MCP ATezer Bridge plugin (no CDP needed).
5
- * When the plugin connects, MCP tools can send JSON-RPC style requests and get
6
- * responses (variables, execute, component, etc.).
4
+ * Listens on a FIXED port for connections from the F-MCP ATezer Bridge plugin
5
+ * (no CDP needed). Supports MULTIPLE simultaneous plugin connections
6
+ * (e.g. Figma Desktop + FigJam browser + Figma browser — all on one port).
7
+ * Each connected plugin identifies itself with a fileKey; requests are routed accordingly.
8
+ *
9
+ * Port strategy: no auto-scanning. If the configured port is busy, the server
10
+ * probes it to distinguish a live F-MCP instance from a stale/dead process.
11
+ * Stale ports get one automatic retry after a short delay.
7
12
  */
8
13
  import { WebSocketServer } from "ws";
9
14
  import { createServer, get as httpGet } from "http";
10
15
  import { logger } from "./logger.js";
11
16
  import { auditTool, auditPlugin } from "./audit-log.js";
12
- const PING_INTERVAL_MS = 15000;
17
+ const HEARTBEAT_INTERVAL_MS = 3000;
13
18
  const MIN_PORT = 5454;
14
19
  const MAX_PORT = 5470;
20
+ const STALE_PORT_RETRY_DELAY_MS = 1500;
15
21
  export class PluginBridgeServer {
16
22
  constructor(port, options) {
17
23
  this.wss = null;
18
24
  this.httpServer = null;
19
- this.client = null;
25
+ this.clients = new Map();
20
26
  this.pending = new Map();
21
27
  this.requestTimeoutMs = 120000;
22
- this.pingTimer = null;
23
- this.port = port;
28
+ this.heartbeatTimer = null;
29
+ this.clientIdCounter = 0;
30
+ const clamped = Math.max(MIN_PORT, Math.min(MAX_PORT, port));
31
+ this.preferredPort = clamped;
32
+ this.port = clamped;
24
33
  this.auditLogPath = options?.auditLogPath;
25
34
  }
26
- /**
27
- * Start the WebSocket server on the configured port. Fails loudly if port is in use. Idempotent.
28
- */
29
35
  start() {
30
36
  if (this.wss) {
31
37
  logger.debug({ port: this.port }, "Plugin bridge server already running");
32
38
  return;
33
39
  }
34
- this.tryListen(this.port);
40
+ this.tryListenFixed(this.preferredPort, false);
41
+ }
42
+ generateClientId() {
43
+ return `client_${Date.now()}_${++this.clientIdCounter}`;
44
+ }
45
+ findClientByFileKey(fileKey) {
46
+ for (const client of this.clients.values()) {
47
+ if (client.fileKey === fileKey && client.ws.readyState === 1) {
48
+ return client;
49
+ }
50
+ }
51
+ return undefined;
35
52
  }
36
- checkPortConflict(port) {
53
+ getDefaultClient() {
54
+ let latest;
55
+ for (const client of this.clients.values()) {
56
+ if (client.ws.readyState !== 1)
57
+ continue;
58
+ if (!latest || client.connectedAt > latest.connectedAt) {
59
+ latest = client;
60
+ }
61
+ }
62
+ return latest;
63
+ }
64
+ resolveClient(fileKey) {
65
+ if (fileKey) {
66
+ return this.findClientByFileKey(fileKey) ?? this.getDefaultClient();
67
+ }
68
+ return this.getDefaultClient();
69
+ }
70
+ removeClient(clientId, reason) {
71
+ const info = this.clients.get(clientId);
72
+ if (!info)
73
+ return;
74
+ this.clients.delete(clientId);
75
+ this.rejectPendingForClient(clientId, reason);
76
+ auditPlugin(this.auditLogPath, "plugin_disconnect");
77
+ logger.info({ clientId, fileKey: info.fileKey, fileName: info.fileName }, "Plugin bridge: client disconnected (%s)", reason);
78
+ }
79
+ /**
80
+ * Probe a port via HTTP to determine if a live F-MCP bridge is already
81
+ * running or if the port is held by a stale/dead process.
82
+ * Returns "fmcp" | "other" | "dead".
83
+ */
84
+ probePort(port, host) {
37
85
  return new Promise((resolve) => {
38
- const req = httpGet(`http://127.0.0.1:${port}`, (res) => {
86
+ const req = httpGet({ hostname: host, port, path: "/", timeout: 2000 }, (res) => {
39
87
  let body = "";
40
- res.on("data", (c) => { body += c.toString(); });
41
- res.on("end", () => resolve(body));
88
+ res.on("data", (chunk) => { body += chunk; });
89
+ res.on("end", () => {
90
+ resolve(body.includes("F-MCP") ? "fmcp" : "other");
91
+ });
42
92
  });
43
- req.on("error", () => resolve(null));
44
- req.setTimeout(2000, () => { req.destroy(); resolve(null); });
93
+ req.on("error", () => resolve("dead"));
94
+ req.on("timeout", () => { req.destroy(); resolve("dead"); });
45
95
  });
46
96
  }
47
- tryListen(port) {
97
+ tryListenFixed(port, isRetry) {
48
98
  const server = createServer((_req, res) => {
49
99
  res.writeHead(200, {
50
100
  "Content-Type": "text/plain",
@@ -53,54 +103,93 @@ export class PluginBridgeServer {
53
103
  });
54
104
  res.end("F-MCP ATezer Bridge (connect via WebSocket)\n");
55
105
  });
106
+ const bindHost = process.env.FIGMA_BRIDGE_HOST || "127.0.0.1";
56
107
  server.on("error", (err) => {
57
108
  if (err.code === "EADDRINUSE") {
58
- this.checkPortConflict(port).then((body) => {
59
- const isFmcp = body !== null && body.includes("F-MCP");
60
- const hint = process.platform === "win32"
61
- ? `netstat -ano | findstr :${port}`
62
- : `lsof -i :${port}`;
63
- if (isFmcp) {
64
- console.error(`\n❌ Port ${port} is already used by another F-MCP bridge instance.\n` +
65
- ` Find it: ${hint}\n` +
66
- ` Kill it and retry, or set FIGMA_PLUGIN_BRIDGE_PORT to a different port.\n` +
67
- ` ⚠️ Cursor/Claude starts the bridge automatically do NOT also run 'npm run dev:local'.\n`);
109
+ server.close();
110
+ if (isRetry) {
111
+ console.error(`\n❌ Port ${port} is still busy after retry.\n` +
112
+ ` A process may be holding this port. Find and stop it:\n` +
113
+ ` lsof -i :${port} (macOS/Linux)\n` +
114
+ ` Then restart, or set FIGMA_PLUGIN_BRIDGE_PORT to a different value (${MIN_PORT}–${MAX_PORT}).\n`);
115
+ process.exit(1);
116
+ return;
117
+ }
118
+ const probeHost = bindHost === "0.0.0.0" ? "127.0.0.1" : bindHost;
119
+ this.probePort(port, probeHost).then((status) => {
120
+ if (status === "fmcp") {
121
+ console.error(`\n⚠️ Port ${port} is already in use by another F-MCP bridge instance.\n` +
122
+ ` One bridge is enough for all Figma/FigJam windows.\n` +
123
+ ` If you need a separate session, set FIGMA_PLUGIN_BRIDGE_PORT to a different value (${MIN_PORT}–${MAX_PORT}).\n`);
124
+ process.exit(1);
125
+ }
126
+ else if (status === "dead") {
127
+ console.error(`\n⚠️ Port ${port} is busy but not responding (stale process).\n` +
128
+ ` Retrying in ${STALE_PORT_RETRY_DELAY_MS}ms…\n`);
129
+ setTimeout(() => this.tryListenFixed(port, true), STALE_PORT_RETRY_DELAY_MS);
68
130
  }
69
131
  else {
70
- console.error(`\n❌ Port ${port} is already in use by another application.\n` +
71
- ` Find it: ${hint}\n` +
72
- ` Free the port and retry, or set FIGMA_PLUGIN_BRIDGE_PORT to a different port.\n`);
132
+ console.error(`\n❌ Port ${port} is in use by a different service (not F-MCP).\n` +
133
+ ` Free the port or set FIGMA_PLUGIN_BRIDGE_PORT to a different value (${MIN_PORT}–${MAX_PORT}).\n`);
134
+ process.exit(1);
73
135
  }
74
- process.exit(1);
75
136
  });
76
- server.close();
77
137
  return;
78
138
  }
79
139
  logger.error({ err }, "Plugin bridge server error");
80
140
  });
81
- const bindHost = process.env.FIGMA_BRIDGE_HOST || "127.0.0.1";
82
141
  server.listen(port, bindHost, () => {
83
142
  this.port = port;
143
+ process.env.FIGMA_PLUGIN_BRIDGE_PORT = String(port);
144
+ process.env.FIGMA_MCP_BRIDGE_PORT = String(port);
145
+ console.error(`F-MCP bridge listening on ws://${bindHost}:${port}\n`);
84
146
  this.httpServer = server;
85
147
  this.wss = new WebSocketServer({ server });
86
148
  this.wss.on("connection", (ws) => {
87
- if (this.client) {
88
- try {
89
- this.client.close();
90
- }
91
- catch {
92
- // ignore
93
- }
94
- }
95
- this.client = ws;
96
- logger.info({ port: this.port }, "Plugin bridge: plugin connected");
149
+ const clientId = this.generateClientId();
150
+ const clientInfo = {
151
+ ws,
152
+ clientId,
153
+ fileKey: null,
154
+ fileName: null,
155
+ alive: true,
156
+ missedHeartbeats: 0,
157
+ connectedAt: Date.now(),
158
+ };
159
+ this.clients.set(clientId, clientInfo);
160
+ logger.info({ port: this.port, clientId, totalClients: this.clients.size }, "Plugin bridge: new plugin connected");
97
161
  auditPlugin(this.auditLogPath, "plugin_connect");
98
162
  ws.on("message", (data) => {
163
+ clientInfo.alive = true;
99
164
  try {
100
165
  const msg = JSON.parse(data.toString());
101
166
  if (msg.type === "ready") {
102
- logger.info("Plugin bridge: plugin sent ready, sending welcome");
103
- ws.send(JSON.stringify({ type: "welcome", bridgeVersion: "1.0.0", port: this.port }));
167
+ const incomingFileKey = msg.fileKey || null;
168
+ const incomingFileName = msg.fileName || null;
169
+ if (incomingFileKey) {
170
+ const existing = this.findClientByFileKey(incomingFileKey);
171
+ if (existing && existing.clientId !== clientId) {
172
+ logger.info({ oldClientId: existing.clientId, newClientId: clientId, fileKey: incomingFileKey }, "Plugin bridge: replacing existing client for same fileKey");
173
+ this.removeClient(existing.clientId, "Replaced by new connection for same file");
174
+ try {
175
+ existing.ws.close();
176
+ }
177
+ catch { /* ignore */ }
178
+ }
179
+ }
180
+ clientInfo.fileKey = incomingFileKey;
181
+ clientInfo.fileName = incomingFileName;
182
+ logger.info({ clientId, fileKey: incomingFileKey, fileName: incomingFileName }, "Plugin bridge: client registered (fileKey=%s, fileName=%s)", incomingFileKey, incomingFileName);
183
+ ws.send(JSON.stringify({
184
+ type: "welcome",
185
+ bridgeVersion: "1.1.0",
186
+ port: this.port,
187
+ clientId,
188
+ multiClient: true,
189
+ }));
190
+ return;
191
+ }
192
+ if (msg.type === "pong" || msg.type === "keepalive") {
104
193
  return;
105
194
  }
106
195
  if (msg.id && this.pending.has(msg.id)) {
@@ -123,29 +212,59 @@ export class PluginBridgeServer {
123
212
  }
124
213
  });
125
214
  ws.on("close", () => {
126
- if (this.client === ws) {
127
- this.client = null;
128
- auditPlugin(this.auditLogPath, "plugin_disconnect");
129
- logger.info("Plugin bridge: plugin disconnected");
130
- }
215
+ this.removeClient(clientId, "WebSocket closed");
131
216
  });
132
217
  ws.on("error", (err) => {
133
- logger.warn({ err }, "Plugin bridge: client error");
218
+ logger.warn({ err, clientId }, "Plugin bridge: client error");
134
219
  });
135
220
  });
136
- logger.info({ port: this.port, host: bindHost }, "Plugin bridge server listening (ws://%s:%s)", bindHost, this.port);
137
- this.pingTimer = setInterval(() => {
138
- if (this.client && this.client.readyState === 1) {
139
- this.client.ping();
221
+ logger.info({ port: this.port, host: bindHost }, "Plugin bridge server listening (ws://%s:%s) — multi-client enabled", bindHost, this.port);
222
+ this.heartbeatTimer = setInterval(() => {
223
+ for (const [clientId, info] of this.clients) {
224
+ if (info.ws.readyState !== 1) {
225
+ this.removeClient(clientId, "WebSocket not open");
226
+ continue;
227
+ }
228
+ if (!info.alive) {
229
+ info.missedHeartbeats++;
230
+ if (info.missedHeartbeats >= 3) {
231
+ logger.warn({ clientId, fileKey: info.fileKey }, "Plugin bridge: client not responding to heartbeat, terminating");
232
+ try {
233
+ info.ws.terminate();
234
+ }
235
+ catch { /* ignore */ }
236
+ this.removeClient(clientId, "Heartbeat timeout");
237
+ continue;
238
+ }
239
+ }
240
+ else {
241
+ info.missedHeartbeats = 0;
242
+ info.alive = false;
243
+ }
244
+ try {
245
+ info.ws.send(JSON.stringify({ type: "ping" }));
246
+ }
247
+ catch { /* ignore */ }
140
248
  }
141
- }, PING_INTERVAL_MS);
249
+ }, HEARTBEAT_INTERVAL_MS);
142
250
  });
143
251
  }
144
252
  /**
145
- * Send a request to the plugin and wait for the response.
253
+ * Send a request to a plugin and wait for the response.
254
+ * If fileKey is specified, routes to the client serving that file.
255
+ * Otherwise routes to the most recently connected client.
146
256
  */
147
- async request(method, params) {
148
- if (!this.client || this.client.readyState !== 1) {
257
+ async request(method, params, fileKey) {
258
+ const client = this.resolveClient(fileKey);
259
+ if (!client || client.ws.readyState !== 1) {
260
+ if (fileKey) {
261
+ const available = this.listConnectedFiles();
262
+ const fileList = available.length > 0
263
+ ? ` Connected files: ${available.map(f => `${f.fileName || "?"} (${f.fileKey || "?"})`).join(", ")}`
264
+ : "";
265
+ throw new Error(`No plugin connected for fileKey "${fileKey}".${fileList} ` +
266
+ "Open the target file in Figma and run the F-MCP ATezer Bridge plugin.");
267
+ }
149
268
  throw new Error("F-MCP ATezer Bridge plugin not connected. Open Figma, run the F-MCP ATezer Bridge plugin, and ensure it shows 'Bridge active' (no debug port needed).");
150
269
  }
151
270
  const id = `req_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;
@@ -164,32 +283,85 @@ export class PluginBridgeServer {
164
283
  timeout,
165
284
  method,
166
285
  startTime,
286
+ clientId: client.clientId,
167
287
  });
168
- this.client.send(JSON.stringify(req));
288
+ try {
289
+ client.ws.send(JSON.stringify(req));
290
+ }
291
+ catch (err) {
292
+ this.pending.delete(id);
293
+ clearTimeout(timeout);
294
+ auditTool(this.auditLogPath, method, false, "send_failed", Date.now() - startTime);
295
+ reject(new Error(`Failed to send request '${method}': ${err instanceof Error ? err.message : String(err)}`));
296
+ }
169
297
  });
170
298
  }
171
- isConnected() {
172
- return !!this.client && this.client.readyState === 1;
299
+ isConnected(fileKey) {
300
+ if (fileKey) {
301
+ const client = this.findClientByFileKey(fileKey);
302
+ return !!client && client.ws.readyState === 1;
303
+ }
304
+ for (const client of this.clients.values()) {
305
+ if (client.ws.readyState === 1)
306
+ return true;
307
+ }
308
+ return false;
173
309
  }
174
- stop() {
175
- if (this.pingTimer) {
176
- clearInterval(this.pingTimer);
177
- this.pingTimer = null;
310
+ listConnectedFiles() {
311
+ const result = [];
312
+ for (const client of this.clients.values()) {
313
+ if (client.ws.readyState === 1) {
314
+ result.push({
315
+ clientId: client.clientId,
316
+ fileKey: client.fileKey,
317
+ fileName: client.fileName,
318
+ connectedAt: client.connectedAt,
319
+ });
320
+ }
321
+ }
322
+ return result.sort((a, b) => b.connectedAt - a.connectedAt);
323
+ }
324
+ connectedClientCount() {
325
+ let count = 0;
326
+ for (const client of this.clients.values()) {
327
+ if (client.ws.readyState === 1)
328
+ count++;
178
329
  }
179
- for (const p of this.pending.values()) {
330
+ return count;
331
+ }
332
+ rejectPendingForClient(clientId, reason) {
333
+ for (const [id, p] of this.pending) {
334
+ if (p.clientId === clientId) {
335
+ clearTimeout(p.timeout);
336
+ const durationMs = Date.now() - p.startTime;
337
+ auditTool(this.auditLogPath, p.method, false, reason, durationMs);
338
+ p.reject(new Error(`Plugin bridge request '${p.method}' failed: ${reason}`));
339
+ this.pending.delete(id);
340
+ }
341
+ }
342
+ }
343
+ rejectAllPending(reason) {
344
+ for (const [id, p] of this.pending) {
180
345
  clearTimeout(p.timeout);
181
- p.reject(new Error("Plugin bridge server stopped"));
346
+ const durationMs = Date.now() - p.startTime;
347
+ auditTool(this.auditLogPath, p.method, false, reason, durationMs);
348
+ p.reject(new Error(`Plugin bridge request '${p.method}' failed: ${reason}`));
182
349
  }
183
350
  this.pending.clear();
184
- if (this.client) {
351
+ }
352
+ stop() {
353
+ if (this.heartbeatTimer) {
354
+ clearInterval(this.heartbeatTimer);
355
+ this.heartbeatTimer = null;
356
+ }
357
+ this.rejectAllPending("Plugin bridge server stopped");
358
+ for (const client of this.clients.values()) {
185
359
  try {
186
- this.client.close();
187
- }
188
- catch {
189
- // ignore
360
+ client.ws.close();
190
361
  }
191
- this.client = null;
362
+ catch { /* ignore */ }
192
363
  }
364
+ this.clients.clear();
193
365
  if (this.wss) {
194
366
  this.wss.close();
195
367
  this.wss = null;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-bridge-server.js","sourceRoot":"","sources":["../../src/core/plugin-bridge-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-bridge-server.js","sourceRoot":"","sources":["../../src/core/plugin-bridge-server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"local-plugin-only.d.ts","sourceRoot":"","sources":["../src/local-plugin-only.ts"],"names":[],"mappings":";AAEA;;;;;;;;;GASG;AA0CH,wBAAsB,IAAI,kBA0vBzB"}
1
+ {"version":3,"file":"local-plugin-only.d.ts","sourceRoot":"","sources":["../src/local-plugin-only.ts"],"names":[],"mappings":";AAEA;;;;;;;;;GASG;AAgFH,wBAAsB,IAAI,kBA+7BzB"}