roast-my-design-systemBLOCK
AI design system scanner + mcp server. Scores repos 0-100, writes fix prompts. 27K+ npm downloads.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://www.npmjs.com/package/roast-my-design-system) [](https://www.npmjs.com/package/roast-my-design-system) [](https://socket.dev/npm/package/roast-my-design-system) [](LICENSE) [](https://www.npmjs.com/package/roast-my-design-system?activeTab=dependencies) [](#what-makes-the-numbers-trustworthy)
[](#live-answers-over-mcp) [](#live-answers-over-mcp) [](#live-answers-over-mcp)
Find where your AI agent will invent UI.
Your AI can write the UI. This makes sure it writes your UI.
npx roast-my-design-system@latest
Run it at the root of a UI repo. One second later, a report opens. No account. No network. No telemetry. Nothing in your repo changes.
Version history is in CHANGELOG.md.
The idea
An agent copies what it finds.
It invents where the repo has no answer.
We tested this on 10 real open-source products, in 355 agent sessions, with and without this tool.
Findings each session added, counted by this tool's own rules:
48a14af3fc9aOBSERVED · 2026-10-12Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add roast-my-design-system -- npx -y [email protected] --mcp
Exposed tools (4)
2 read · 2 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
move | write | Which move to fix (1-3); default is the top of the current list |
roast-build-ui | read | Build UI in this repo the way the repo already does it |
roast-fix | write | Fix the top Where-to-start move from a fresh scan; call again for the next one |
roast-review-ui | read | Review the current UI changes against the design system |
Trust audit
BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- declared (5 observation(s))
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (17)
<title>Design-system diagnosis: adobe/spectrum-web-components</title>
<title>Design-system diagnosis: apache/airflow</title>
<title>Design-system diagnosis: dubinc/dub</title>
<title>Design-system diagnosis: excalidraw/excalidraw</title>
<title>Design-system diagnosis: magicuidesign/magicui</title>
const bin = resolve(ENGINE, '../../../cli/roast.mjs');
const r = spawnSync(process.execPath, [resolve(ENGINE, '../../../cli/roast.mjs'), app, '--rules', '--no-open', '--out', join(work, 'r.html')], { encoding: 'utf8' });spawnSync(process.execPath, [resolve(ENGINE, '../../../cli/roast.mjs'), app, '--rules', '--no-open', '--out', join(work, 'r.html')], { encoding: 'utf8' });const bin = resolve(ENGINE, '../../../cli/roast.mjs');
const pkg = JSON.parse(readFileSync(resolve(ENGINE, '../../../package.json'), 'utf8'));
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zy
<link rel="apple-touch-icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAIAAACyr5FlAAAOwElEQVR4nOzdCXAT1xkH8KfDsg5bkuUDfOMbcIDEiU1CCLUJ2IQmLU16ZDokaWYaMm1n2nQ6aVombdI0PTKZ6TQ3CQnkYID
background:currentColor; -webkit-mask:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAALAUlEQVR42s2bbZBVZR3Af+eey8KyAspAZILhC2w65ih8KCqZhmyMKT8oIGoTDUUvI6LQjPRla6bRUYkZ5VOJBY5m
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zy
<link rel="apple-touch-icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAIAAACyr5FlAAAOwElEQVR4nOzdCXAT1xkH8KfDsg5bkuUDfOMbcIDEiU1CCLUJ2IQmLU16ZDokaWYaMm1n2nQ6aVombdI0PTKZ6TQ3CQnkYID
The server reads the repo the way the report does. On a product built on MUI, Mantine, Chakra UI or Ant Design, the context names the theme file and the kit's own way of reading it, `roast_find_token`
What it installs: two skills, one local MCP server and two checks that run on their own, nothing else. **roast** (`/roast-my-design-system`, or "roast my design system") scans the whole repo, writes t
Gates applied: no_behavioural_pass.
48a14af3fc9afull audit observations/trust-audit/mcp-server/gregkozakiewicz__roast-my-design-system.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | 48a14af3fc9a | BLOCK | D | 69 | first audit |
Questions
What is the roast-my-design-system MCP server?
AI design system scanner + mcp server. Scores repos 0-100, writes fix prompts. 27K+ npm downloads.
What tools does roast-my-design-system expose?
4 in total: 2 read-only, 2 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is roast-my-design-system safe to connect to an agent?
No — not without reading the findings first. The audit graded it D (69/100) and found 5 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What credentials does roast-my-design-system need?
No credential environment variables were found in its source, so it appears to need none.
How does roast-my-design-system run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as roast-my-design-system at 10.1.5.
How current is this page?
The grade is for one exact copy of the source (48a14af3fc9a), read on 2026-10-12. The repository is watched and re-audited when it changes.