# Design Lounge (npm · design-lounge-mcp)

A UI design library and skill for agents, with a page review for AI giveaways, SEO, AEO, and GEO.

- Trust score: 71/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `www.designlounge.live`: 77/100, [markdown](https://verifymcp.io/servers/susanacharya-design-lounge/api-mcp.md), [page](https://verifymcp.io/servers/susanacharya-design-lounge/api-mcp)
- npm · `design-lounge-mcp`: 71/100 (this document), [markdown](https://verifymcp.io/servers/susanacharya-design-lounge/design-lounge-mcp.md), [page](https://verifymcp.io/servers/susanacharya-design-lounge/design-lounge-mcp)

## Channel facts

- Registry: `npm`
- Package: `design-lounge-mcp`
- Version: `0.2.6`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 30 of 106 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 32/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Licence could not be checked: the licence is shipped as a file inside the package, not declared as a standard (SPDX) licence identifier, so we cannot tell whether it is OSI-approved.
  - Actively maintained (last published 1 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 77/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 3464 tokens (~91/item across 38 items; 22 tools + 16 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 33/100
  - Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 83/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 48% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 22 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 24 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Design Lounge MCP server?

Design Lounge runs locally as an npm package, launched with npx -y design-lounge-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add susanacharya-design-lounge -- npx -y design-lounge-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "susanacharya-design-lounge": {
      "command": "npx",
      "args": [
        "-y",
        "design-lounge-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "susanacharya-design-lounge": {
      "command": "npx",
      "args": [
        "-y",
        "design-lounge-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add susanacharya-design-lounge -- npx -y design-lounge-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "susanacharya-design-lounge": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "design-lounge-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add susanacharya-design-lounge --command npx --arg -y --arg design-lounge-mcp
```

### Hermes

```yaml
mcp_servers:
  susanacharya-design-lounge:
    command: "npx"
    args: ["-y", "design-lounge-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "susanacharya-design-lounge": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "design-lounge-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add susanacharya-design-lounge -t stdio -c npx -a -y design-lounge-mcp
```

### Other

```json
{
  "mcpServers": {
    "susanacharya-design-lounge": {
      "command": "npx",
      "args": [
        "-y",
        "design-lounge-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 71, +16)

- [security improvement] Malware scan: unverified → pass

### 2026-11-03 (score 55, 0)

- [security improvement] Malware scan: unverified → pass
- [functional] Package version: 0.2.4 → 0.2.6

### 2026-11-02 (score 55, −14)

- [security regression] Malware scan: pass → unverified
- [functional] Package version: 0.2.3 → 0.2.4

### 2026-10-31 (score 69, +1)

- [functional regression] Security disclosure: unverified → fail

### 2026-10-30 (score 68, 0)

- [functional regression] Security disclosure: fail → unverified

### 2026-10-29 (score 68, +1)

- [security regression] Tool safety: pass → unverified
- [security regression] Stability: 0.07 → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional] Package version: 0.2.2 → 0.2.3

### 2026-10-28 (score 67, +15)

- [security regression] Stability: 0.03 → unverified
- [security regression] Tool safety: pass → unverified
- [security improvement] Malware scan: unverified → pass
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional] Package version: 0.2.1 → 0.2.2

### 2026-10-27 (score 52, +1)

- [security improvement] Malware scan: unverified → pass
- [functional improvement] Stability: unverified → 0.03
- [functional] Package version: 0.2.0 → 0.2.1

## MCP tools (22)

### `start_design` (~115 tokens)

Start a design

Call first for any new website, app, screen, or UI. Reads their request the way the method does (flow, mode, named style, calm words), ranks the recipes, reads the project folder and the recent picks, and returns the brief to fill and the steps, each naming the tool to use.

Input parameters:

- `product` (string): The product or brand name, if they gave one
- `project_path` (string): The folder the build goes in
- `request` (string, required): Their message, word for word

### `get_recipe` (~110 tokens)

Get a recipe

A recipe (start) with its directions: each a complete look (theme, pairing, family, hero, effect, work, footer). Each direction says whether the recent history blocks it.

Input parameters:

- `history` (array): Recent pick lines, for a client that keeps its own history. The local server reads ~/.design-lounge/history.jsonl
- `id` (string, required): Recipe id, such as saas, restaurant, portfolio. browse_library what=recipes lists them
- `product` (string)

### `pick_direction` (~200 tokens)

Pick a direction

Apply rules 3 to 5 of Pick a direction and the Recent picks check: calm words narrow to quiet, editorial, or sharp families; the history blocks recent directions, heroes, and effects; the group check blocks two-of-three matches; the name number breaks the tie. You judge which directions fit the subject (rules 1, 2, 4) and pass them as `fitting`.

Input parameters:

- `calm` (boolean): They used a calm word: clean, simple, professional, plain, calm, quiet, corporate, serious, trustworthy
- `fitting` (array): Direction ids whose mood names this subject's world
- `history` (array): Recent pick lines, for a client that keeps its own history. The local server reads ~/.design-lounge/history.jsonl
- `product` (string): Product or brand name, for the name number. Without one, the first noun of their message
- `recipe` (string, required)

### `check_pick` (~195 tokens)

Check a pick against recent sites

The uniqueness check from Recent picks: direction, hero, and effect against this recipe; two of hero, work, footer against the related group; hero shape against the last two; frame against the last three. Returns problems and the Unlike line for the sheet.

Input parameters:

- `direction` (string)
- `effect` (string)
- `footer` (string)
- `frame` (array): [header piece, phone piece or "none", find-us piece]
- `hero` (string)
- `history` (array): Recent pick lines, for a client that keeps its own history. The local server reads ~/.design-lounge/history.jsonl
- `product` (string)
- `recipe` (string, required)
- `reuse` (boolean): Reusing a direction because every fitting one is recent: compares shape, frame, work, and footer only
- `shape` (string)
- `work` (string)

### `record_pick` (~187 tokens)

Record a pick in the history

Append a line to /tmp/.design-lounge/history.jsonl: "claimed" right after you lock, "finished" after the check passes. A claimed line is read back: if another product claimed the same recipe and direction in the last hour, yours loses and the result says so.

Input parameters:

- `colours` (array)
- `direction` (string, required)
- `effect` (string|null)
- `family` (string)
- `folder` (string)
- `fonts` (array)
- `footer` (string)
- `frame` (array)
- `hero` (string)
- `mode` (string)
- `pairing` (string, required)
- `product` (string, required)
- `recipe` (string, required)
- `shape` (string)
- `status` (string, required)
- `theme` (string, required)
- `work` (string)

### `search_pieces` (~126 tokens)

Search pieces

Search 600+ piece briefs by words (job, component, style, tag) and filters. Returns ids, summaries, and demo links. Then get_piece for the brief.

Input parameters:

- `category` (string): browse_library what=categories lists them
- `images` (boolean): Attach thumbnails of the first six, to compare them by eye
- `limit` (integer)
- `platform` (string)
- `query` (string): Such as "pricing toggle", "sticky mobile cta", "kanban", "footer wordmark"
- `style` (string)

### `get_piece` (~131 tokens)

Get a piece brief

The spec for one piece, with a picture of its demo: structure, counts, sizes, motion timing, states, hit targets, acceptance checklist. By default stops at "Optional below this line"; full=true adds the demo's exact paint and motion notes. demo=true adds the demo's HTML source, the acceptance file. Its colours and fonts are the demo's: translate them onto the locked kit.

Input parameters:

- `demo` (boolean): Add the demo's HTML source
- `full` (boolean)
- `id` (string, required)
- `image` (boolean): Attach the demo's thumbnail (default true)

### `browse_library` (~77 tokens)

Browse the library

List themes, pairings, families, recipes, piece categories, collections, or kinds. Themes and pairings can be ranked by a mood ("warm craft", "editorial serif", "dark technical").

Input parameters:

- `limit` (integer)
- `mode` (string)
- `mood` (string)
- `what` (string, required)

### `get_theme` (~83 tokens)

Get a theme

A theme's full CSS (primary, secondary, tertiary, feedback, surfaces, link) and its pair for the other mode. Colour only: fonts come from the pairing, radius and shadow from the family.

Input parameters:

- `id` (string, required): Theme id, name, or Lounge link
- `image` (boolean): Attach a board of the theme's roles (default true)

### `get_pairing` (~73 tokens)

Get a type pairing

A pairing's CSS (Google Fonts import, --font-display, --font-text, mono if any), its numbers face, and any caution to say before you write.

Input parameters:

- `id` (string, required): Pairing id, name, or Lounge link
- `image` (boolean): Attach a type specimen (default true)

### `get_family` (~51 tokens)

Get a component family

A family's rules: radius, button style, density, shadow, and the sentences that lock them. The family wins over a brief for radius, shadow, button, and density.

Input parameters:

- `id` (string, required)

### `get_icons` (~67 tokens)

Get Lounge Icons

SVG for Lounge Icons by name (24px, stroke 1.75). With no names, lists them by group. Missing names come back as missing: then follow Icon and nav in components.md, never an emoji.

Input parameters:

- `group` (string)
- `names` (array)

### `search_wada` (~102 tokens)

Search Wada colour combinations

Sanzo Wada's 348 combinations, by colour or material word (russet, slate, "dark warm") or nearest to a hex. Only for Free colour, a brand board no theme fits, or colours they asked for. Take one line whole; the header says how to map it to roles.

Input parameters:

- `limit` (integer)
- `near` (string): A hex like #b14f1c
- `query` (string)

### `read_guide` (~115 tokens)

Read the method

Read a method file or one section of it. Files: SKILL.md, app.md, brief.md, components.md, examples.md, flows.md, locale.md, native.md, practice.md, reference.md, search.md, show.md, styles.md, taste.md, website.md. Give a heading ("Look", "Write the idea", "Recent picks") to get only that section; outline=true lists the headings.

Input parameters:

- `file` (string, required)
- `outline` (boolean)
- `section` (string)

### `name_number` (~52 tokens)

Name number

The tie-break from rule 5 of Pick a direction: the sum of each letter's place in the alphabet, mod the number of fitting directions.

Input parameters:

- `count` (integer)
- `name` (string, required)

### `review_page` (~243 tokens)

Review a page

The all-in-one check for a built page: AI giveaways and kit drift (the Look fails), SEO, AEO, GEO, and, when Chromium is available, a rendered pass at 1280×800 and 390×844 with axe accessibility, measured labels, faces, primaries, tap targets, and saved screenshots. Returns scores, fails first, each with its evidence and fix.

Input parameters:

- `format` (string)
- `html` (string): Raw HTML, when there is no file or URL
- `images` (boolean): Attach the web and phone frames (default true)
- `kit` (object): The locked kit, by id, name, or Lounge link. Read from DESIGN.md when omitted
- `out_dir` (string): Where to save screenshots (default: a temp folder)
- `path` (string): An HTML file or a folder with index.html. DESIGN.md beside it or above it is read for the locked kit
- `render` (boolean): Open it in Chromium (default true)
- `url` (string): A live or local URL, such as http://localhost:4321/ or https://example.com

### `audit_slop` (~195 tokens)

Find AI giveaways

Design only: the tells of a generated page (stock copy, em dashes, buzzwords, icon-card trios, gradients, the indigo palette, emoji icons, numbered eyebrows, placeholder copy, made-up numbers) and drift from the locked kit (faces, colours, radius, shadow). Static by default; render=true adds the measured checks.

Input parameters:

- `html` (string): Raw HTML, when there is no file or URL
- `kit` (object): The locked kit, by id, name, or Lounge link. Read from DESIGN.md when omitted
- `out_dir` (string)
- `path` (string): An HTML file or a folder with index.html. DESIGN.md beside it or above it is read for the locked kit
- `render` (boolean)
- `url` (string): A live or local URL, such as http://localhost:4321/ or https://example.com

### `audit_search` (~175 tokens)

Check SEO, AEO, and GEO

Whether search engines can index the page and show it well (SEO), answer engines can lift a direct answer (AEO), and AI engines can reach it, read it without JavaScript, and name the entity (GEO): title, description, headings, alt, share card and its 1200×630 image, canonical, robots.txt for search and AI crawlers, sitemap, JSON-LD, question headings with short answers, server-rendered text.

Input parameters:

- `html` (string): Raw HTML, when there is no file or URL
- `path` (string): An HTML file or a folder with index.html. DESIGN.md beside it or above it is read for the locked kit
- `url` (string): A live or local URL, such as http://localhost:4321/ or https://example.com

### `suggest_schema` (~187 tokens)

Suggest JSON-LD

JSON-LD for the page built only from facts on it: the entity (Organization, LocalBusiness subtypes, Person, Product, SoftwareApplication) with name, url, description, image, phone, email, address, sameAs; and FAQPage from its own questions. Lists the fields it could not find. Never invents ratings, reviews, or prices.

Input parameters:

- `html` (string): Raw HTML, when there is no file or URL
- `name` (string)
- `path` (string): An HTML file or a folder with index.html. DESIGN.md beside it or above it is read for the locked kit
- `type` (string): schema.org type, such as Restaurant, Dentist, Person, SoftwareApplication. Default Organization
- `url` (string): A live or local URL, such as http://localhost:4321/ or https://example.com

### `match_reference` (~269 tokens)

Match a reference site

They showed a site or a screenshot and want that feel. Measures its design language (colour roles, type, corners, shadows, density, hero shape, sections, motion) and returns the closest Lounge theme, pairing, family, and pieces per section, with what does not match. Matches the feel only: never copy the reference's logo, name, words, or photos. For a screenshot, also describe the type you see (`type`) and anything else you can tell (corners, shadows, sections).

Input parameters:

- `buttons` (string)
- `corners` (string)
- `image` (string): A screenshot as base64, when there is no file
- `image_path` (string): A screenshot file
- `mime_type` (string): image/png, image/jpeg, or image/webp (default png)
- `sections` (array): Section kinds you see: features, pricing, testimonials, faq, logos, stats, team, gallery, blog, cta, contact, newsletter
- `shadows` (string)
- `shape` (string): The hero shape you see
- `type` (string): For a screenshot: the faces you see, such as "high-contrast serif headline, neutral grotesk body"
- `url` (string): The reference site

### `install_skill` (~106 tokens)

Install the Design Lounge skill

The server installs the skill for this user when it starts. Use this to put it in a project as well (.claude/skills, .cursor/skills, .agents/skills), for clients that only read project skills, or with replace: true to swap a copy installed another way for this server's.

Input parameters:

- `project_path` (string): A project folder. Omit to install for this user
- `replace` (boolean): Replace a user-level copy that something else installed

### `install_browser` (~51 tokens)

Install the browser for rendered checks

Download the headless Chromium that review_page uses to look at the page: screenshots, axe, measured labels and buttons, and theme boards and type specimens. About 100 MB, once. Ask the person first.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/susanacharya-design-lounge/design-lounge-mcp#diagnostics

## Score history

- 2026-11-05: 71
- 2026-11-04: 71
- 2026-11-03: 55
- 2026-11-02: 55
- 2026-11-01: 69
- 2026-10-31: 69
- 2026-10-30: 68
- 2026-10-29: 68
- 2026-10-28: 67
- 2026-10-27: 52
- 2026-10-26: 51

## Common questions

### What is the Design Lounge MCP server?

Design Lounge is an MCP server listed in the public MCP registry as io.github.SusanAcharya/design-lounge. A UI design library and skill for agents, with a page review for AI giveaways, SEO, AEO, and GEO. This page covers its npm package (design-lounge-mcp).

### Is the Design Lounge MCP server safe to use?

Design Lounge scores 71 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Design Lounge MCP server expose?

Design Lounge exposes 22 tools: start_design, get_recipe, pick_direction, check_pick, record_pick, and 17 more. Their descriptions and schemas cost roughly 2,910 tokens of context every time the server is loaded.

### Is the Design Lounge MCP server still maintained?

Design Lounge is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the Design Lounge MCP server?

VerifyMCP ran 15 checks on Design Lounge, covering Malware scan, Known CVEs, Install scripts, Dependency health and 11 more. One item could not be completed, a gap on our side rather than a finding about Design Lounge: License. Endpoint Security and Transport & Reachability do not apply to an npm package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- npm package: https://www.npmjs.com/package/design-lounge-mcp
- Socket report: https://socket.dev/npm/package/design-lounge-mcp
- Repository: https://github.com/SusanAcharya/Design-Lounge
- Website: https://www.designlounge.live/
- Changelog RSS feed: https://verifymcp.io/servers/susanacharya-design-lounge/design-lounge-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/susanacharya-design-lounge/design-lounge-mcp/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/susanacharya-design-lounge/design-lounge-mcp.json
- HTML version of this page: https://verifymcp.io/servers/susanacharya-design-lounge/design-lounge-mcp
