@mp3wizard/figma-console-mcp 1.15.4 β†’ 1.17.3

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/README.md +71 -15
  2. package/dist/cloudflare/index.js +3 -3
  3. package/dist/core/figjam-tools.d.ts +8 -0
  4. package/dist/core/figjam-tools.d.ts.map +1 -0
  5. package/dist/core/figjam-tools.js +486 -0
  6. package/dist/core/figjam-tools.js.map +1 -0
  7. package/dist/core/figma-connector.d.ts +97 -0
  8. package/dist/core/figma-connector.d.ts.map +1 -1
  9. package/dist/core/figma-desktop-connector.d.ts +23 -0
  10. package/dist/core/figma-desktop-connector.d.ts.map +1 -1
  11. package/dist/core/figma-desktop-connector.js +25 -0
  12. package/dist/core/figma-desktop-connector.js.map +1 -1
  13. package/dist/core/figma-tools.d.ts.map +1 -1
  14. package/dist/core/figma-tools.js +90 -29
  15. package/dist/core/figma-tools.js.map +1 -1
  16. package/dist/core/slides-tools.d.ts +8 -0
  17. package/dist/core/slides-tools.d.ts.map +1 -0
  18. package/dist/core/slides-tools.js +608 -0
  19. package/dist/core/slides-tools.js.map +1 -0
  20. package/dist/core/websocket-connector.d.ts +97 -0
  21. package/dist/core/websocket-connector.d.ts.map +1 -1
  22. package/dist/core/websocket-connector.js +75 -0
  23. package/dist/core/websocket-connector.js.map +1 -1
  24. package/dist/core/websocket-server.d.ts +6 -0
  25. package/dist/core/websocket-server.d.ts.map +1 -1
  26. package/dist/core/websocket-server.js +11 -0
  27. package/dist/core/websocket-server.js.map +1 -1
  28. package/dist/local.d.ts.map +1 -1
  29. package/dist/local.js +43 -10
  30. package/dist/local.js.map +1 -1
  31. package/figma-desktop-bridge/code.js +1103 -5
  32. package/figma-desktop-bridge/icon.png +0 -0
  33. package/figma-desktop-bridge/manifest.json +1 -1
  34. package/figma-desktop-bridge/ui.html +144 -0
  35. package/package.json +2 -2
package/README.md CHANGED
@@ -1,14 +1,17 @@
1
1
  # Figma Console MCP Server
2
2
 
3
3
  [![MCP](https://img.shields.io/badge/MCP-Compatible-blue)](https://modelcontextprotocol.io/)
4
- [![npm](https://img.shields.io/npm/v/figma-console-mcp)](https://www.npmjs.com/package/figma-console-mcp)
4
+ [![npm](https://img.shields.io/npm/v/@mp3wizard/figma-console-mcp)](https://www.npmjs.com/package/@mp3wizard/figma-console-mcp)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
+ [![Security Reviewed](https://img.shields.io/badge/Security-Reviewed-brightgreen)](Security%20review%20report/)
6
7
  [![Documentation](https://img.shields.io/badge/docs-docs.figma--console--mcp.southleft.com-0D9488)](https://docs.figma-console-mcp.southleft.com)
7
8
  [![Sponsor](https://img.shields.io/badge/Sponsor-southleft-ea4aaa?logo=github-sponsors&logoColor=white)](https://github.com/sponsors/southleft)
8
9
 
9
10
  > **Your design system as an API.** Model Context Protocol server that bridges design and developmentβ€”giving AI assistants complete access to Figma for **extraction**, **creation**, and **debugging**.
10
11
 
11
- > **πŸ†• Import Once, Update Never β€” Plugin Bootloader Architecture:** The Desktop Bridge plugin now dynamically loads its UI from the MCP server on every launch. Import the manifest once from `~/.figma-console-mcp/plugin/manifest.json` and you're done forever β€” server updates, new tools, and bug fixes are delivered automatically. Plus: orphaned process cleanup, cross-file library components, and built-in housekeeping. [See changelog β†’](CHANGELOG.md)
12
+ > **πŸ”’ Security Reviewed Fork:** This fork (`@mp3wizard/figma-console-mcp`) has passed a full security review following OWASP Top 10 and CWE standards, including automated scanning (Semgrep, Trivy, TruffleHog) and manual vulnerability analysis. Review reports are available in the [`Security review report/`](Security%20review%20report/) folder.
13
+
14
+ > **πŸ†• FigJam + Slides β€” AI Across All Figma Products:** 24 new tools bring AI to FigJam boards and Figma Slides. Create stickies, flowcharts, and tables on whiteboards. Manage entire presentations β€” slides, transitions, content, and reordering. [FigJam Guide β†’](docs/figjam.md) | [Slides Guide β†’](docs/slides.md)
12
15
 
13
16
  ## What is this?
14
17
 
@@ -20,6 +23,7 @@ Figma Console MCP connects AI assistants (like Claude) to Figma, enabling:
20
23
  - **✏️ Design creation** - Create UI components, frames, and layouts directly in Figma
21
24
  - **πŸ”§ Variable management** - Create, update, rename, and delete design tokens
22
25
  - **⚑ Real-time monitoring** - Watch logs as plugins execute
26
+ - **πŸ“Œ FigJam boards** - Create stickies, flowcharts, tables, and code blocks on collaborative boards
23
27
  - **☁️ Cloud Write Relay** - Web AI clients (Claude.ai, v0, Replit) can design in Figma via cloud pairing
24
28
  - **πŸ”„ Four ways to connect** - Remote SSE, Cloud Mode, NPX, or Local Git
25
29
 
@@ -46,12 +50,13 @@ Figma Console MCP connects AI assistants (like Claude) to Figma, enabling:
46
50
  | **Create components & frames** | βœ… | βœ… | ❌ |
47
51
  | **Edit existing designs** | βœ… | βœ… | ❌ |
48
52
  | **Manage design tokens/variables** | βœ… | βœ… | ❌ |
53
+ | **FigJam boards (stickies, flowcharts)** | βœ… | βœ… | ❌ |
49
54
  | Real-time monitoring (console, selection) | βœ… | ❌ | ❌ |
50
55
  | Desktop Bridge plugin | βœ… | βœ… | ❌ |
51
56
  | Requires Node.js | Yes | **No** | No |
52
- | **Total tools available** | **63+** | **43** | **22** |
57
+ | **Total tools available** | **84+** | **43** | **22** |
53
58
 
54
- > **Bottom line:** Remote SSE is **read-only** with ~38% of the tools. **Cloud Mode** unlocks write access from web AI clients without Node.js. NPX/Local Git gives the full 63+ tools with real-time monitoring.
59
+ > **Bottom line:** Remote SSE is **read-only** with ~38% of the tools. **Cloud Mode** unlocks write access from web AI clients without Node.js. NPX/Local Git gives the full 84+ tools with real-time monitoring.
55
60
 
56
61
  ---
57
62
 
@@ -59,7 +64,7 @@ Figma Console MCP connects AI assistants (like Claude) to Figma, enabling:
59
64
 
60
65
  **Best for:** Designers who want full AI-assisted design capabilities.
61
66
 
62
- **What you get:** All 63+ tools including design creation, variable management, and component instantiation.
67
+ **What you get:** All 84+ tools including design creation, variable management, and component instantiation.
63
68
 
64
69
  #### Prerequisites
65
70
 
@@ -78,7 +83,7 @@ Figma Console MCP connects AI assistants (like Claude) to Figma, enabling:
78
83
 
79
84
  **Claude Code (CLI):**
80
85
  ```bash
81
- claude mcp add figma-console -s user -e FIGMA_ACCESS_TOKEN=figd_YOUR_TOKEN_HERE -e ENABLE_MCP_APPS=true -- npx -y figma-console-mcp@latest
86
+ claude mcp add figma-console -s user -e FIGMA_ACCESS_TOKEN=figd_YOUR_TOKEN_HERE -e ENABLE_MCP_APPS=true -- npx -y @mp3wizard/figma-console-mcp@latest
82
87
  ```
83
88
 
84
89
  **Cursor / Windsurf / Claude Desktop:**
@@ -90,7 +95,7 @@ Add to your MCP config file (see [Where to find your config file](#-where-to-fin
90
95
  "mcpServers": {
91
96
  "figma-console": {
92
97
  "command": "npx",
93
- "args": ["-y", "figma-console-mcp@latest"],
98
+ "args": ["-y", "@mp3wizard/figma-console-mcp@latest"],
94
99
  "env": {
95
100
  "FIGMA_ACCESS_TOKEN": "figd_YOUR_TOKEN_HERE",
96
101
  "ENABLE_MCP_APPS": "true"
@@ -127,7 +132,7 @@ If you're not sure where to put the JSON configuration above, here's where each
127
132
 
128
133
  > One-time setup. The plugin uses a bootloader that dynamically loads fresh code from the MCP server β€” no need to re-import when the server updates.
129
134
 
130
- > **Upgrading from v1.14 or earlier?** Your existing plugin still works, but to get the bootloader benefits (no more re-importing), do one final re-import from `~/.figma-console-mcp/plugin/manifest.json`. The path is created automatically when the MCP server starts. Run `npx figma-console-mcp@latest --print-path` to see it. After this one-time upgrade, you're done forever.
135
+ > **Upgrading from v1.14 or earlier?** Your existing plugin still works, but to get the bootloader benefits (no more re-importing), do one final re-import from `~/.figma-console-mcp/plugin/manifest.json`. The path is created automatically when the MCP server starts. Run `npx @mp3wizard/figma-console-mcp@latest --print-path` to see it. After this one-time upgrade, you're done forever.
131
136
 
132
137
  #### Step 4: Restart Your MCP Client
133
138
 
@@ -153,7 +158,7 @@ Create a simple frame with a blue background
153
158
 
154
159
  **Best for:** Developers who want to modify source code or contribute to the project.
155
160
 
156
- **What you get:** Same 63+ tools as NPX, plus full source code access.
161
+ **What you get:** Same 84+ tools as NPX, plus full source code access.
157
162
 
158
163
  #### Quick Setup
159
164
 
@@ -242,7 +247,7 @@ Ready for design creation? Follow the [NPX Setup](#-npx-setup-recommended) guide
242
247
 
243
248
  **Best for:** Using Claude.ai, v0, Replit, or Lovable to create and modify Figma designs β€” no Node.js required.
244
249
 
245
- **What you get:** 52 tools including full write access β€” design creation, variable management, component instantiation, and all REST API tools. Only real-time monitoring (console logs, selection tracking, document changes) requires Local Mode.
250
+ **What you get:** 76 tools including full write access β€” design creation, variable management, component instantiation, and all REST API tools. Only real-time monitoring (console logs, selection tracking, document changes) requires Local Mode.
246
251
 
247
252
  #### Prerequisites
248
253
 
@@ -299,10 +304,11 @@ AI Client β†’ Cloud MCP Server β†’ Durable Object Relay β†’ Desktop Bridge Plugi
299
304
  | Feature | NPX (Recommended) | Cloud Mode | Local Git | Remote SSE |
300
305
  |---------|-------------------|------------|-----------|------------|
301
306
  | **Setup time** | ~10 minutes | ~5 minutes | ~15 minutes | ~2 minutes |
302
- | **Total tools** | **63+** | **43** | **63+** | **22** (read-only) |
307
+ | **Total tools** | **84+** | **43** | **84+** | **22** (read-only) |
303
308
  | **Design creation** | βœ… | βœ… | βœ… | ❌ |
304
309
  | **Variable management** | βœ… | βœ… | βœ… | ❌ |
305
310
  | **Component instantiation** | βœ… | βœ… | βœ… | ❌ |
311
+ | **FigJam boards** | βœ… | βœ… | βœ… | ❌ |
306
312
  | **Real-time monitoring** | βœ… | ❌ | βœ… | ❌ |
307
313
  | **Desktop Bridge plugin** | βœ… | βœ… | βœ… | ❌ |
308
314
  | **Variables (no Enterprise)** | βœ… | βœ… | βœ… | ❌ |
@@ -313,7 +319,7 @@ AI Client β†’ Cloud MCP Server β†’ Durable Object Relay β†’ Desktop Bridge Plugi
313
319
  | **Automatic updates** | βœ… (`@latest`) | βœ… | Manual (`git pull`) | βœ… |
314
320
  | **Source code access** | ❌ | ❌ | βœ… | ❌ |
315
321
 
316
- > **Key insight:** Remote SSE is read-only. Cloud Mode adds write access for web AI clients without Node.js. NPX/Local Git give the full 63+ tools.
322
+ > **Key insight:** Remote SSE is read-only. Cloud Mode adds write access for web AI clients without Node.js. NPX/Local Git give the full 84+ tools.
317
323
 
318
324
  **πŸ“– [Complete Feature Comparison](docs/mode-comparison.md)**
319
325
 
@@ -426,6 +432,34 @@ When you first use design system tools:
426
432
  - `figma_batch_update_variables` - Update up to 100 variable values in one call
427
433
  - `figma_setup_design_tokens` - Create complete token system (collection + modes + variables) atomically
428
434
 
435
+ ### πŸ“Œ FigJam Board Tools (Local Mode + Cloud Mode)
436
+ - `figjam_create_sticky` - Create a sticky note with color options
437
+ - `figjam_create_stickies` - Batch create up to 200 stickies
438
+ - `figjam_create_connector` - Connect nodes with labeled connector lines
439
+ - `figjam_create_shape_with_text` - Create flowchart shapes (diamond, ellipse, etc.)
440
+ - `figjam_create_table` - Create tables with cell data
441
+ - `figjam_create_code_block` - Add code snippets with syntax highlighting
442
+ - `figjam_auto_arrange` - Arrange nodes in grid, horizontal, or vertical layouts
443
+ - `figjam_get_board_contents` - Read all content from a FigJam board
444
+ - `figjam_get_connections` - Read the connection graph (flowcharts, relationships)
445
+
446
+ ### 🎞️ Slides Presentation Tools (Local Mode + Cloud Mode)
447
+ - `figma_list_slides` - List all slides with IDs, positions, and skip status
448
+ - `figma_get_slide_content` - Get the full content tree of a slide
449
+ - `figma_get_slide_grid` - Get the 2D grid layout of the presentation
450
+ - `figma_get_slide_transition` - Read transition settings for a slide
451
+ - `figma_get_focused_slide` - Get the currently focused slide
452
+ - `figma_create_slide` - Create a new blank slide
453
+ - `figma_delete_slide` - Delete a slide from the presentation
454
+ - `figma_duplicate_slide` - Clone an existing slide
455
+ - `figma_reorder_slides` - Reorder slides via new 2D grid layout
456
+ - `figma_set_slide_transition` - Set transition effects (22 styles, 8 curves)
457
+ - `figma_skip_slide` - Toggle whether a slide is skipped in presentation mode
458
+ - `figma_add_text_to_slide` - Add text to a specific slide
459
+ - `figma_add_shape_to_slide` - Add rectangle or ellipse shapes with color
460
+ - `figma_set_slides_view_mode` - Toggle grid vs. single-slide view
461
+ - `figma_focus_slide` - Navigate to a specific slide
462
+
429
463
  **πŸ“– [Detailed Tool Documentation](docs/TOOLS.md)**
430
464
 
431
465
  ---
@@ -479,6 +513,25 @@ Check design parity for the Card component before sign-off
479
513
  Generate component documentation for the Dialog from our design system
480
514
  ```
481
515
 
516
+ ### FigJam Boards
517
+ ```
518
+ Create a retrospective board with "Went Well", "To Improve", and "Action Items" columns
519
+ Build a user flow diagram for the checkout process with decision points
520
+ Read this brainstorming board and summarize the key themes
521
+ Generate an affinity map from these meeting notes
522
+ Create a comparison table of our three platform options
523
+ ```
524
+
525
+ ### Slides Presentations
526
+ ```
527
+ List all slides and tell me which ones are skipped
528
+ Add a new slide with the title "Thank You" in 72px text
529
+ Set a DISSOLVE transition on the first slide with 0.5 second duration
530
+ Duplicate slide 5 for an A/B comparison
531
+ Skip slides 8 and 9 β€” they're not ready for the client presentation
532
+ Reorder my slides so the conclusion comes before Q&A
533
+ ```
534
+
482
535
  ### Visual Debugging
483
536
  ```
484
537
  Take a screenshot of the current Figma canvas
@@ -598,7 +651,7 @@ The **Figma Desktop Bridge** plugin is the recommended way to connect Figma to t
598
651
  - The MCP server communicates via **WebSocket** through the Desktop Bridge plugin
599
652
  - The server tries port 9223 first, then automatically falls back through ports 9224–9232 if needed
600
653
  - The plugin scans all ports in the range and connects to every active server it finds
601
- - All 63+ tools work through the WebSocket transport
654
+ - All 84+ tools work through the WebSocket transport
602
655
 
603
656
  **Multiple files:** The WebSocket server supports multiple simultaneous plugin connections β€” one per open Figma file. Each connection is tracked by file key with independent state (selection, document changes, console logs).
604
657
 
@@ -716,11 +769,12 @@ The architecture supports adding new apps with minimal boilerplate β€” each app
716
769
 
717
770
  ## 🀝 vs. Figma Official MCP
718
771
 
719
- **Figma Console MCP (This Project)** - Debugging & data extraction
772
+ **Figma Console MCP (This Project)** - Debugging, data extraction, and design creation
720
773
  - βœ… Real-time console logs from Figma plugins
721
774
  - βœ… Screenshot capture and visual debugging
722
775
  - βœ… Error stack traces and runtime monitoring
723
776
  - βœ… Raw design data extraction (JSON)
777
+ - βœ… FigJam board creation and reading (stickies, flowcharts, tables)
724
778
  - βœ… Works remotely or locally
725
779
 
726
780
  **Figma Official Dev Mode MCP** - Code generation
@@ -734,9 +788,11 @@ The architecture supports adding new apps with minimal boilerplate β€” each app
734
788
 
735
789
  ## πŸ›€οΈ Roadmap
736
790
 
737
- **Current Status:** v1.12.0 (Stable) - Production-ready with Cloud Write Relay, Design System Kit, WebSocket-only connectivity, smart multi-file tracking, 63+ tools, Comments API, and MCP Apps
791
+ **Current Status:** v1.17.0 (Stable) - Production-ready with FigJam + Slides support, Cloud Write Relay, Design System Kit, WebSocket-only connectivity, smart multi-file tracking, 84+ tools, Comments API, and MCP Apps
738
792
 
739
793
  **Recent Releases:**
794
+ - [x] **v1.17.0** - Figma Slides Support: 15 new tools for managing presentations β€” slides, transitions, content, reordering, and navigation. Inspired by Toni Haidamous (PR #11).
795
+ - [x] **v1.16.0** - FigJam Support: 9 new tools for creating and reading FigJam boards β€” stickies, flowcharts, tables, code blocks, and connection graphs. Community-contributed by klgral and lukemoderwell.
740
796
  - [x] **v1.12.0** - Cloud Write Relay: web AI clients (Claude.ai, v0, Replit, Lovable) can create and modify Figma designs via cloud relay pairing β€” no Node.js required
741
797
  - [x] **v1.11.2** - Screenshot fix: `figma_take_screenshot` works without explicit `nodeId` in WebSocket mode
742
798
  - [x] **v1.11.1** - Doc generator fixes: clean markdown tables, Storybook links, property metadata filtering
@@ -38,7 +38,7 @@ export class FigmaConsoleMCPv3 extends McpAgent {
38
38
  super(...arguments);
39
39
  this.server = new McpServer({
40
40
  name: "Figma Console MCP",
41
- version: "1.15.0",
41
+ version: "1.15.5",
42
42
  });
43
43
  this.browserManager = null;
44
44
  this.consoleMonitor = null;
@@ -950,7 +950,7 @@ export default {
950
950
  });
951
951
  const statelessServer = new McpServer({
952
952
  name: "Figma Console MCP",
953
- version: "1.15.0",
953
+ version: "1.15.5",
954
954
  });
955
955
  // ================================================================
956
956
  // Cloud Write Relay β€” Pairing Tool (stateless /mcp path)
@@ -1579,7 +1579,7 @@ export default {
1579
1579
  return new Response(JSON.stringify({
1580
1580
  status: "healthy",
1581
1581
  service: "Figma Console MCP",
1582
- version: "1.15.0",
1582
+ version: "1.15.5",
1583
1583
  endpoints: {
1584
1584
  mcp: ["/sse", "/mcp"],
1585
1585
  oauth_mcp_spec: ["/.well-known/oauth-authorization-server", "/authorize", "/token", "/oauth/register"],
@@ -0,0 +1,8 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ /**
3
+ * Register FigJam-specific tools.
4
+ * These tools only work when the connected file is a FigJam board (editorType === 'figjam').
5
+ * Used by both local mode (src/local.ts) and cloud mode (src/index.ts).
6
+ */
7
+ export declare function registerFigJamTools(server: McpServer, getDesktopConnector: () => Promise<any>): void;
8
+ //# sourceMappingURL=figjam-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figjam-tools.d.ts","sourceRoot":"","sources":["../../src/core/figjam-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4DzE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,SAAS,EACjB,mBAAmB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GACrC,IAAI,CA2eN"}