
Dembrandt MCP Server: Extract Design Tokens from Any Website
Lets Claude and Cursor read the colours, fonts and spacing of any website and turn them into design tokens, a DESIGN.md or a Tailwind theme.
Dembrandt's MCP server lets Claude, Cursor and other assistants open a live website and pull out its colours, fonts, spacing and component styles as design tokens. It is the Dembrandt project's own server and runs on your computer. You need to download a browser once with the project's install-browser step before the first extraction. It cannot be used from web-only assistants like ChatGPT or Claude.ai because it needs a local process.
Good for
- Designers who want a site's real colours and type pulled out fast
- Frontend developers who want a Tailwind or shadcn theme from an existing site
- Teams that check whether their UI drifted from the brand
- Accessibility reviewers who need contrast checks
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install Dembrandt MCP
Claude Code
- 1
Copy this prompt.
Add the Dembrandt MCP server to Claude Code. Run this command: claude mcp add dembrandt -- npx -y dembrandt mcp Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js.
Run npx dembrandt install-browser once before the first use, or extraction fails with "browser engine not available". Restart the app after adding the server.
Built from the package data we hold. Not yet tested by us.
Tools
Pulls a site's whole design system
Opens the site in a real browser and returns its colours, fonts, spacing, corner radii, shadows, button and input styles, breakpoints and logos. Set it to crawl several pages for a fuller result. It returns a job ID to check later.
Try: “Extract the design tokens from stripe.com.”
Network ·
get_design_tokensPulls a site's brand colours
Returns the main brand colours, a ranked full palette with confidence levels, CSS variables and hover colours, each in hex, RGB, LCH and OKLCH.
Try: “What are the brand colours on linear.app?”
Network ·
get_color_palettePulls a site's fonts and type scale
Returns each font family with its fallbacks, the type scale for headings, body, buttons and links, plus where the fonts load from.
Try: “Which fonts does notion.so use and at what sizes?”
Network ·
get_typographyPulls button, input and link styles
Returns button variants with hover, active and focus states, input field styles, link styles and badge styles.
Try: “Show how buttons look and behave on vercel.com.”
Network ·
get_component_stylesPulls corner radii, borders and shadows
Returns border radii by element type, border patterns and box shadow levels used on the site.
Try: “What corner radii and shadows does github.com use?”
Network ·
get_surfacesPulls a site's spacing system
Returns the most common margin and padding values and detects whether the site uses a 4px, 8px or custom grid.
Try: “Is figma.com built on an 8px grid?”
Network ·
get_spacingPulls animation timing and easing
Returns transition and animation durations, easing curves, named keyframes, hover patterns and gradients used on the site.
Try: “How long are the hover transitions on apple.com?”
Network ·
get_motionPulls logo, icons and tech stack
Returns the site name, logo, favicon variants, the frameworks and libraries behind the UI, icon systems and breakpoints.
Try: “What is shopify.com built with, and what is its logo?”
Network ·
get_brand_identityScores how far a design moved from a baseline
Compares two extractions and returns a 0 to 100 drift score, a stable or drift verdict and the list of changed, added and removed tokens. It runs without a browser.
Try: “Compare today's extraction of our site to last month's and give a drift score.”
Read ·
compute_driftBuilds an HTML design report
Creates a self-contained HTML report from an extraction, with an optional drift comparison. It returns the HTML as text for you to save.
Try: “Make an HTML report of the extraction and save it as report.html.”
Read ·
render_reportChecks a design for quality problems
Lints an extraction for contrast failures, near-duplicate colours, off-scale spacing and radius sprawl, and returns each issue with a severity.
Try: “Lint the extracted design for accessibility and consistency issues.”
Read ·
get_findingsExports W3C design tokens
Converts an extraction to the W3C Design Tokens format, ready for Style Dictionary or Figma token plugins.
Try: “Export the extracted tokens as a DTCG tokens file.”
Read ·
export_dtcgWrites a DESIGN.md brand guide
Turns an extraction into a readable DESIGN.md covering colours, type, spacing, surfaces and components.
Try: “Generate a DESIGN.md from the extraction of our site.”
Read ·
generate_design_mdWrites a Tailwind v4 theme
Renders a Tailwind v4 theme block of colours, type, spacing, radii and shadows using only values measured on the site.
Try: “Give me a Tailwind theme block from the extraction.”
Read ·
export_tailwindWrites a shadcn/ui theme
Renders the shadcn/ui theme variables from an extraction, filling only slots the page supplied and naming the rest.
Try: “Create a shadcn theme from the extracted design.”
Read ·
export_shadcnValidates a design tokens file
Checks a W3C Design Tokens document against the 2025.10 spec and returns each error with its path.
Try: “Validate this tokens JSON against the DTCG spec.”
Read ·
validate_dtcgGrades colour pairs for WCAG contrast
Checks colour pairs you name against WCAG 2.1 AA and AAA and returns the ratio, the ratio required and the verdict.
Try: “Does white text on #1a73e8 pass AA contrast?”
Read ·
check_contrastChecks if a site allows extraction
Asks whether robots.txt allows extracting a URL before you spend a browser run on it. It makes one web request.
Try: “Does robots.txt allow extracting example.com?”
Network ·
check_robotsChecks on a running extraction
Polls an extraction job and returns its status and, once finished, the full result.
Try: “Is that extraction finished yet?”
Read ·
get_job_statusLists this session's extraction jobs
Lists the extraction jobs from this session with status, URL and time. Finished jobs are kept for one hour.
Try: “List my extraction jobs.”
Read ·
list_jobsCancels a queued extraction
Cancels a job that is still queued. It has no effect on jobs already running.
Try: “Cancel the queued extraction job.”
Read ·
cancel_job
Read from the source code
Permissions
medium risk · 4 things to watch
Medium risk
It opens websites in a headless browser on your machine and, if you give it cookies or logins, can use them on the sites you point it at. Only pass cookies or credentials you are happy for the assistant to handle.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It runs a real browser against any URL
The extraction tools launch Chromium and load whatever address you give them, including local network addresses. Point it only at sites you mean to inspect. github.com
Cookies and logins can be passed to it
The tools accept cookies, a cookie file, headers and basic-auth credentials. Anything you paste goes through the chat, so use short-lived sessions. github.com
An optional API key is documented to upload results
docs/mcp.md says DEMBRANDT_KEY uploads each extraction to your dembrandt.com account. The MCP server source has no upload code (only the command-line tool reads the key), so we could not confirm this. Leave the key unset to keep results local. github.com
It respects robots.txt only as a warning by default
The server checks robots.txt but only refuses a site when DEMBRANDT_ENFORCE_ROBOTS=1 is set. Check the site's terms before extracting. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | No read-only switch is documented. The tools do not write files themselves; they return results for the assistant to save. |
|---|---|
| Talks to | Any website you ask it to extract. dembrandt.com only if you set the documented DEMBRANDT_KEY (unconfirmed in source) |
| Sign-in and keys | No account needed. The docs list an optional DEMBRANDT_KEY for snapshot uploads, which we could not confirm in the MCP server source. Cookies, headers and basic-auth logins are passed per call. |
Questions
Who makes this server?
The Dembrandt project itself. It ships inside the project's own repository and is listed in the MCP Registry as io.github.dembrandt/dembrandt.
Do I need an account or API key?
No. Extraction works with no account or key. The docs list an optional DEMBRANDT_KEY from dembrandt.com that is said to upload each extraction as a snapshot, but we found no upload code in the MCP server source, so treat that as unconfirmed.
Why does it say "browser engine not available"?
The package ships no browser. Run the project's install-browser step once, as noted in the install box, then restart your app.
Does it work in ChatGPT or Claude.ai?
No. The docs say web assistants without a local process, including ChatGPT, Perplexity and Claude.ai, cannot connect to it. Use Claude Code, Claude Desktop, Cursor, Windsurf, VS Code or Codex.
Can it read sites behind a login?
Yes. The tools accept cookies, a cookie file, headers and basic-auth details. The interactive login mode is available only in the command line tool, not through the MCP server.
Can it export to Tailwind or Figma?
Yes. It can write a Tailwind v4 theme, a shadcn/ui theme, W3C design tokens (for Style Dictionary and Figma token plugins) and a DESIGN.md file.
Is it free?
Yes, the package is MIT licensed and extraction runs locally. The docs mention an optional dembrandt.com account for snapshots, which you do not need.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
dembrandt- Registry
- npm
- Transport
- stdio
- Auth
- None
- Version
- 0.39.2
- License
- MIT
- Last commit
- Oct 22, 2026
- Open issues
- 0
- Listed in
- Official MCP registry
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 3Hide
- MCP server docs · github.com
- README · github.com
- mcp-server.ts · github.com