@muloka/figma-console-mcp 0.5.1 → 0.5.4
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/README.md +5 -4
- package/dist/apps/design-system-dashboard/mcp-app.html +521 -0
- package/dist/apps/token-browser/mcp-app.html +410 -0
- package/dist/cloudflare/apps/design-system-dashboard/scoring/accessibility.js +277 -0
- package/dist/cloudflare/apps/design-system-dashboard/scoring/component-metadata.js +357 -0
- package/dist/cloudflare/apps/design-system-dashboard/scoring/consistency.js +341 -0
- package/dist/cloudflare/apps/design-system-dashboard/scoring/coverage.js +230 -0
- package/dist/cloudflare/apps/design-system-dashboard/scoring/engine.js +92 -0
- package/dist/cloudflare/apps/design-system-dashboard/scoring/naming-semantics.js +308 -0
- package/dist/cloudflare/apps/design-system-dashboard/scoring/token-architecture.js +349 -0
- package/dist/cloudflare/apps/design-system-dashboard/scoring/types.js +40 -0
- package/dist/cloudflare/apps/design-system-dashboard/server.js +159 -0
- package/dist/cloudflare/apps/token-browser/server.js +136 -0
- package/dist/cloudflare/browser-manager.js +157 -0
- package/dist/cloudflare/core/accessibility-tools.js +361 -0
- package/dist/cloudflare/core/annotation-tools.js +230 -0
- package/dist/cloudflare/core/cloud-websocket-connector.js +419 -0
- package/dist/cloudflare/core/cloud-websocket-relay.js +198 -0
- package/dist/cloudflare/core/comment-tools.js +292 -0
- package/dist/cloudflare/core/config.js +153 -0
- package/dist/cloudflare/core/console-monitor.js +427 -0
- package/dist/cloudflare/core/deep-component-tools.js +128 -0
- package/dist/cloudflare/core/design-code-tools.js +2793 -0
- package/dist/cloudflare/core/design-system-manifest.js +265 -0
- package/dist/cloudflare/core/design-system-tools.js +882 -0
- package/dist/cloudflare/core/diagnose-tool.js +100 -0
- package/dist/cloudflare/core/diff/changelog-formatter.js +275 -0
- package/dist/cloudflare/core/diff/diff-engine.js +334 -0
- package/dist/cloudflare/core/diff/property-compare.js +36 -0
- package/dist/cloudflare/core/diff/version-cache.js +74 -0
- package/dist/cloudflare/core/enrichment/enrichment-service.js +374 -0
- package/dist/cloudflare/core/enrichment/index.js +7 -0
- package/dist/cloudflare/core/enrichment/relationship-mapper.js +351 -0
- package/dist/cloudflare/core/enrichment/style-resolver.js +346 -0
- package/dist/cloudflare/core/figjam-tools.js +547 -0
- package/dist/cloudflare/core/figma-api.js +509 -0
- package/dist/cloudflare/core/figma-connector.js +7 -0
- package/dist/cloudflare/core/figma-reconstruction-spec.js +402 -0
- package/dist/cloudflare/core/figma-style-extractor.js +311 -0
- package/dist/cloudflare/core/figma-tools.js +3353 -0
- package/dist/cloudflare/core/identity.js +96 -0
- package/dist/cloudflare/core/library-tools.js +580 -0
- package/dist/cloudflare/core/logger.js +53 -0
- package/dist/cloudflare/core/port-discovery.js +935 -0
- package/dist/cloudflare/core/resolve-package-root.js +11 -0
- package/dist/cloudflare/core/slides-tools.js +714 -0
- package/dist/cloudflare/core/slot-tools.js +334 -0
- package/dist/cloudflare/core/snippet-injector.js +96 -0
- package/dist/cloudflare/core/tokens/alias-resolver.js +205 -0
- package/dist/cloudflare/core/tokens/config.js +294 -0
- package/dist/cloudflare/core/tokens/dialect.js +232 -0
- package/dist/cloudflare/core/tokens/figma-converter.js +323 -0
- package/dist/cloudflare/core/tokens/formatters/css-vars.js +338 -0
- package/dist/cloudflare/core/tokens/formatters/dtcg.js +376 -0
- package/dist/cloudflare/core/tokens/formatters/index.js +45 -0
- package/dist/cloudflare/core/tokens/formatters/json.js +205 -0
- package/dist/cloudflare/core/tokens/formatters/less.js +4 -0
- package/dist/cloudflare/core/tokens/formatters/scss.js +258 -0
- package/dist/cloudflare/core/tokens/formatters/stubs.js +13 -0
- package/dist/cloudflare/core/tokens/formatters/style-dictionary-v3.js +213 -0
- package/dist/cloudflare/core/tokens/formatters/tailwind-v3.js +237 -0
- package/dist/cloudflare/core/tokens/formatters/tailwind-v4.js +335 -0
- package/dist/cloudflare/core/tokens/formatters/tokens-studio.js +256 -0
- package/dist/cloudflare/core/tokens/formatters/ts-module.js +198 -0
- package/dist/cloudflare/core/tokens/index.js +16 -0
- package/dist/cloudflare/core/tokens/parsers/css-vars.js +4 -0
- package/dist/cloudflare/core/tokens/parsers/dtcg.js +280 -0
- package/dist/cloudflare/core/tokens/parsers/index.js +138 -0
- package/dist/cloudflare/core/tokens/parsers/json.js +7 -0
- package/dist/cloudflare/core/tokens/parsers/scss.js +4 -0
- package/dist/cloudflare/core/tokens/parsers/stubs.js +20 -0
- package/dist/cloudflare/core/tokens/parsers/style-dictionary-v3.js +4 -0
- package/dist/cloudflare/core/tokens/parsers/tailwind-v3.js +4 -0
- package/dist/cloudflare/core/tokens/parsers/tailwind-v4.js +4 -0
- package/dist/cloudflare/core/tokens/parsers/tokens-studio.js +4 -0
- package/dist/cloudflare/core/tokens/schemas.js +152 -0
- package/dist/cloudflare/core/tokens/transforms/color.js +12 -0
- package/dist/cloudflare/core/tokens/transforms/index.js +29 -0
- package/dist/cloudflare/core/tokens/transforms/size.js +7 -0
- package/dist/cloudflare/core/tokens/types.js +18 -0
- package/dist/cloudflare/core/tokens-tools.js +1788 -0
- package/dist/cloudflare/core/types/design-code.js +4 -0
- package/dist/cloudflare/core/types/enriched.js +5 -0
- package/dist/cloudflare/core/types/index.js +4 -0
- package/dist/cloudflare/core/variable-resolver.js +85 -0
- package/dist/cloudflare/core/version-tools.js +1199 -0
- package/dist/cloudflare/core/websocket-connector.js +436 -0
- package/dist/cloudflare/core/websocket-server.js +1009 -0
- package/dist/cloudflare/core/write-tools.js +2506 -0
- package/dist/cloudflare/index.js +3010 -0
- package/dist/core/accessibility-tools.d.ts.map +1 -1
- package/dist/core/accessibility-tools.js +7 -6
- package/dist/core/accessibility-tools.js.map +1 -1
- package/dist/core/http-request-guard.d.ts +20 -0
- package/dist/core/http-request-guard.d.ts.map +1 -0
- package/dist/core/http-request-guard.js +61 -0
- package/dist/core/http-request-guard.js.map +1 -0
- package/dist/core/port-discovery.d.ts +9 -0
- package/dist/core/port-discovery.d.ts.map +1 -1
- package/dist/core/port-discovery.js +40 -14
- package/dist/core/port-discovery.js.map +1 -1
- package/dist/core/tokens/schemas.d.ts +6 -6
- package/dist/local.d.ts.map +1 -1
- package/dist/local.js +9 -10
- package/dist/local.js.map +1 -1
- package/figma-desktop-bridge/ui.html +7 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
- **Mode-limit safety** — `figma_setup_design_tokens` and `figma_create_variable_collection` roll the collection back on a mode-limit failure instead of orphaning it, and the setup tool returns your file's real ceiling as `planModeLimit`; the schema's stale 4-mode cap is now a 40 sanity bound (current Figma plans allow 10/20/unlimited — the runtime limit governs)
|
|
15
15
|
- **No orphaned nodes on failure** — `figma_create_connector` validates endpoints before creating (a stale nodeId can no longer strand an endpoint-less connector), and create-child / add-text-to-slide / create-table remove their partially-created node on error; batch stickies report the id of any sticky a failed row left behind. `figma_create_child` also gains the POLYGON/STAR/VECTOR types the plugin always supported
|
|
16
16
|
- **Per-command dispatch budgets** — long-running bridge commands (variable refresh and component scans at 300s, lint/audit at 120s, large component sets) no longer get silently cut off at 30s: the server's real timeout rides in each WS frame and the dispatcher honors it, on both local and cloud transports ([upstream #94](https://github.com/southleft/figma-console-mcp/issues/94) lineage)
|
|
17
|
-
- **Streamable HTTP transport** in local mode — connect multiple local clients to one running instance ([upstream #48](https://github.com/southleft/figma-console-mcp/issues/48))
|
|
18
|
-
- **Per-call file targeting** — `figma_execute` and the token-sync write tools (`figma_setup_design_tokens`, `figma_batch_create_variables`, `figma_batch_update_variables`, `figma_delete_variable`, `figma_rename_variable`, `figma_rename_node`) take an optional `fileKey`. With it, the call runs only in that file, whatever the active file or target lock, so several clients can work in different files at once. If that file isn't connected the call is refused, naming the file and listing the connected ones, rather than landing in the active file. Without it, nothing changes. Local mode only; the cloud relay refuses a `fileKey` ([details](docs/tools.md#targeting-a-file-filekey))
|
|
17
|
+
- **Streamable HTTP transport** in local mode — set `MCP_HTTP_PORT` to serve MCP at `http://localhost:<port>/mcp` and connect multiple local clients to one running instance ([upstream #48](https://github.com/southleft/figma-console-mcp/issues/48)). Loopback only: it binds `127.0.0.1`, and every request must name a loopback `Host` on that port and carry either no `Origin` (non-browser clients) or a loopback one, so web pages can't reach it through DNS rebinding — anything else gets a 403. The HTTP port is published as `mcpHttpPort` in the instance's port-discovery file, and stays there if the file is deleted and the heartbeat re-creates it. (Upstream added its own, separate HTTP endpoint in v1.44.0 under `FIGMA_MCP_HTTP_PORT`, advertised as `mcpHttpUrl`; this fork's `MCP_HTTP_PORT` / `mcpHttpPort` are unchanged.)
|
|
18
|
+
- **Per-call file targeting** — `figma_execute` and the token-sync write tools (`figma_setup_design_tokens`, `figma_batch_create_variables`, `figma_batch_update_variables`, `figma_delete_variable`, `figma_rename_variable`, `figma_rename_node`) take an optional `fileKey`. With it, the call runs only in that file, whatever the active file or target lock, so several clients can work in different files at once. If that file isn't connected the call is refused, naming the file and listing the connected ones, rather than landing in the active file. Without it, nothing changes. `figma_execute` results carry `fileContext` — `{ fileName, fileKey }` of the file the code actually ran in — and `resultAnalysis`, so a caller can verify the targeting from the response. Both arrive only once the Desktop Bridge plugin has been re-imported from v0.5.4 or later; an earlier plugin drops them, so a missing `fileContext` means the targeting is unverified. Local mode only; the cloud relay refuses a `fileKey` ([details](docs/tools.md#targeting-a-file-filekey))
|
|
19
|
+
- **Security ahead of the v1.36.0 base** — MCP SDK 1.32 (fixes, among others, a single oversized HTTP request exhausting server memory); `figma_scan_code_accessibility` never executes `<script>` tags or inline handlers from the HTML it scans (they previously ran inside the server's Node process)
|
|
19
20
|
- **`VariableID:` alias support** in `figma_batch_create_variables` and `figma_setup_design_tokens` ([upstream #52](https://github.com/southleft/figma-console-mcp/issues/52))
|
|
20
21
|
- **`page`/`pageSize` honored in `figma_get_variables` `format: "full"`** ([upstream #98](https://github.com/southleft/figma-console-mcp/issues/98))
|
|
21
22
|
- **Plugin + server build versions surfaced** in the Desktop Bridge UI and diagnostics
|
|
@@ -24,10 +25,10 @@
|
|
|
24
25
|
## Relationship to upstream
|
|
25
26
|
|
|
26
27
|
- Frozen at the upstream **v1.36.0** base — this fork does **not** track upstream releases.
|
|
27
|
-
- Upstream fixes are cherry-picked selectively when they matter to this fork's use cases, with original authorship preserved (so far: the v1.38.2 orphan-reaper fix
|
|
28
|
+
- Upstream fixes are cherry-picked selectively when they matter to this fork's use cases, with original authorship preserved (so far: the v1.38.2 orphan-reaper fix, the v1.39.1 plugin-update-banner direction fix, the v1.39.0 relay fix that lets `figma_execute`'s `fileContext`/`resultAnalysis` reach the server, and the Local Mode part of the v1.41.0 accessibility-scan script-isolation fix).
|
|
28
29
|
- Bugs and requests for this fork go to [this repo's issue tracker](https://github.com/muloka/figma-console-mcp/issues) — do not file them upstream.
|
|
29
30
|
- The hosted `*.southleft.com` endpoints referenced in the documentation below are upstream's service, not this fork's.
|
|
30
|
-
- **Plugin re-imports never announce themselves in this fork.** `PLUGIN_VERSION` tracks the vendored upstream lineage (not the fork's `0.x`), so Figma's "update available" banner only ever fires after an upstream sync — never for fork-side plugin changes. When a fork release says `figma-desktop-bridge/` changed (e.g. v0.5.0's orphan cleanup and dispatch budgets), re-import the manifest manually; the upstream re-import guidance further down doesn't account for this.
|
|
31
|
+
- **Plugin re-imports never announce themselves in this fork.** `PLUGIN_VERSION` tracks the vendored upstream lineage (not the fork's `0.x`), so Figma's "update available" banner only ever fires after an upstream sync — never for fork-side plugin changes. When a fork release says `figma-desktop-bridge/` changed (e.g. v0.5.0's orphan cleanup and dispatch budgets, v0.5.4's `fileContext` relay), re-import the manifest manually; the upstream re-import guidance further down doesn't account for this.
|
|
31
32
|
- Upstream's docs site and sponsorship: [](https://docs.figma-console-mcp.southleft.com) [](https://github.com/sponsors/southleft)
|
|
32
33
|
|
|
33
34
|
---
|