Skip to main content
Home/Integrations

Integrations

Dembrandt is a CLI, an MCP server, the App, and a set of open formats. The surfaces and formats that drop into the tools you already use.

CLI

Extract rendered tokens from any URL. Flags for crawl, DTCG, compare, and reports.

MCP server

A tool surface any MCP client (Claude Code, Cursor, Windsurf) can call.

The App

A workspace to manage extractions, snapshots, baselines, and drift scores without a terminal.

Open formats

DTCG JSON, DESIGN.md, plain JSON, HTML, PDF. Readable by people, agents, and tools.

This list is a starting point, not a limit. Because Dembrandt is an MCP server that speaks open formats, an AI agent can bridge it to almost any design or dev tool you already use. If your agent can read a file or call a tool, it can put Dembrandt's tokens to work there.

Three roles it plays

Whatever the tool, Dembrandt shows up as one of these.

Source of truth

One measured token set the whole team and its agents work from.

Drift gate

Compare against a baseline in CI. Exit 1 on drift, like a failing test.

Agent bridge

Through MCP, an agent connects Dembrandt to almost any tool it can reach.

Where it plugs in

Examples, grouped by context. Not an exhaustive list.

AI editors

Claude Code
Add Dembrandt as an MCP tool and extract live tokens mid-conversation.
Claude Desktop
An MCP host for design work in chat, not just code. Pairs with Skills.
Cursor
Project-scoped MCP via a .mcp.json at the repo root.
Windsurf
Any MCP-compatible editor exposes the same Dembrandt tools.
Skills
UX and design system heuristics injected into your agent; pairs with token extraction.
v0
Feed extracted tokens or a DESIGN.md as grounding for generated UI.
GitHub Copilot
Drag in a brand guide or DESIGN.md and let the agent match real values.
Figma Make
Use measured tokens as the source of truth instead of approximations.

CI/CD

Pre-push drift gate
Compare the rendered token set against a committed baseline and block the push when it drifts.
GitHub Actions
Run extraction and the drift report on every PR as a design QA check.
Vercel
Extract against a preview deployment and report token drift per build.

Design tools

Tokens Studio
Export to DTCG JSON and import straight into Tokens Studio.
Figma Variables
Map extracted tokens to Figma Variables via the DTCG format.
Figma via MCP
Pull a design system out of Figma and reconcile it with a live extraction.

Protocol and runtime

MCP server
A framework-agnostic tool surface for any MCP client.
Chromium
Default headless extraction engine via Playwright.
Firefox
Alternative engine with stealth mode for bot-protected sites you are authorized to extract.

Output formats

DTCG JSON
W3C Design Tokens Community Group format, ready for token pipelines.
DESIGN.md
Readable token context optimized for AI agents.
HTML report
Self-contained drift report for design QA in a pipeline.
PDF
Shareable audit document for stakeholders.

Set it up

AI editors (MCP)

Add Dembrandt to Claude Code:

Terminal
claude mcp add --transport stdio dembrandt -- npx -y --package dembrandt dembrandt-mcp

For Cursor, Windsurf, or any project-scoped setup, add a .mcp.json at the repo root:

.mcp.json
{ "mcpServers": { "dembrandt": { "command": "npx", "args": ["-y", "--package", "dembrandt", "dembrandt-mcp"] } } }

CI/CD drift gate

Extract the preview, compare against a baseline, write a report. Dembrandt exits 1 on drift, so the check goes red like a failing test:

Terminal
npx dembrandt "$PREVIEW" --compare baseline.json --html report.html

It is a Node CLI that returns standard exit codes, so the same step runs in any pipeline (GitHub Actions, GitLab CI, Jenkins, Azure DevOps). Add --no-sandbox in containers. Accept an intended change as the new baseline with --approve:

.github/workflows/drift.yml
name: Design drift on: deployment_status jobs: drift: if: github.event.deployment_status.state == 'success' runs-on: ubuntu-latest env: PREVIEW: ${{ github.event.deployment_status.environment_url }} steps: - run: npm i dembrandt - run: npx playwright-core install --with-deps chromium - run: npx dembrandt https://example.com --json-only > baseline.json - run: npx dembrandt "$PREVIEW" --compare baseline.json --html report.html - uses: actions/upload-artifact@v4 if: always() with: { name: drift-report, path: report.html }

Design tokens (DTCG)

Export tokens in W3C DTCG format, ready to convert for Tokens Studio or Figma Variables:

Terminal
dembrandt example.com --dtcg --save-output

Ground generative UI

Export a DESIGN.md and feed it to v0 or Copilot so generated UI uses real brand values, not guesses:

Terminal
dembrandt example.com --design-md