Design Lounge

io.github.SusanAcharyaPublished by GitHub account SusanAcharyav0.2.7Updated Nov 7, 2026

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

VerifiedStreamable HTTPWeb executableBrowser AutomationDeveloper ToolsMedia & Design

Overview

AI-generated overview

A UI design library and method for agents: pick a locked theme, pairing and recipe, then review built pages for AI giveaways, accessibility, SEO, AEO and GEO.

What you can do
  • Start a design brief and lock a recipe direction, with history-aware uniqueness checks
  • Search and read 600+ piece briefs, themes, type pairings, families, icons and colour combinations
  • Read any section of the design method guide
  • Review a page or HTML for AI giveaways, kit drift, accessibility, SEO, AEO and GEO, and suggest JSON-LD
  • Match a reference site or screenshot to the closest theme, pairing and pieces
  • Install the bundled skill and headless Chromium for rendered checks
When to use it
Use it when an assistant is building or cleaning up a website, app or UI and you want consistent, non-generic design decisions from a fixed library instead of invented palettes and components, and a repeatable check of the finished page.
Requirements
Either the hosted endpoint (Streamable HTTP, no sign-in) or a local run via npx with Node.js. Rendered checks need headless Chromium, installed once via install_browser or Playwright. Optional variables DESIGN_LOUNGE_HISTORY and DESIGN_LOUNGE_SKILL_INSTALL. Network access to fetch reviewed pages, their assets and Google Fonts.
Before you install
On start the local server writes a skill into ~/.agents/skills and links it into Claude Code, Cursor and Codex skill folders; set DESIGN_LOUNGE_SKILL_INSTALL=off to skip this. record_pick appends to a local history file. Reviews fetch the named page and its assets from your machine, and the hosted endpoint fetches public addresses only. No account or API key is requested.

Installation

In SourceWeft

  1. Open Design Lounge in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.SusanAcharya%2Fdesign-lounge/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "design-lounge": {
      "type": "http",
      "url": "https://www.designlounge.live/api/mcp"
    }
  }
}

README

Design Lounge MCP

Design Lounge as an MCP server. Your agent can:

  • Design from the library: 600+ piece briefs, 80+ themes, 40+ type pairings, 40+ recipes with directions, Lounge Icons, and Sanzo Wada's colour combinations. It picks a direction the same way every time and keeps two sites from looking alike.
  • Remove AI giveaways: stock copy, em dashes, icon-card trios, gradients, the indigo palette, emoji icons, made-up numbers, and drift from the locked theme, pairing, and family.
  • Get found and quoted: SEO, AEO (answer engines), and GEO (ChatGPT, Claude, Perplexity, Gemini). It checks the head, the share card, robots.txt for search and AI crawlers, server-rendered text, and JSON-LD.
  • Look at the page: Chromium at 1280×800 and 390×844 with reduced motion. It runs axe, measures faces, labels, primaries, and tap targets, and saves the screenshots.

The server reads the same skills/design-lounge folder as the skill, so the rules live in one place. The skill is the method. The server does the parts that prose cannot: search, deterministic picks against the history, pictures of every piece, theme, and pairing, and checks that read and render the page.

The skill comes with it

Installing the server installs the skill. When the server starts, it puts the skill in ~/.agents/skills/design-lounge and links it into the skills folder of each client on the machine: Claude Code (~/.claude/skills), Cursor (~/.cursor/skills), and Codex (~/.codex/skills). That is the same layout the skills CLI uses. Clients that load skills then have the whole method before they design. Reload the client once after the first start.

  • It updates its own copy when the server updates.
  • It leaves alone a copy that something else installed, such as npx skills add or a hand edit, and says so. install_skill with replace: true swaps it for the server's copy.
  • install_skill with project_path also copies it into a project's .claude/skills, .cursor/skills, and .agents/skills, for clients that only read project skills.
  • In a client with no skill support, start_design returns the rules that must hold (their words win, the Rules list, and the Look fails), read from the same files, and read_guide serves the rest.
  • DESIGN_LOUNGE_SKILL_INSTALL=off turns the install off.

Add it to your agent

Claude Code

sh
claude mcp add design-lounge --scope user -- npx -y design-lounge-mcp@latest

Cursor (~/.cursor/mcp.json), Windsurf, Claude Desktop (claude_desktop_config.json), and other clients that take this shape:

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

VS Code (.vscode/mcp.json):

json
{ "servers": { "design-lounge": { "type": "stdio", "command": "npx", "args": ["-y", "design-lounge-mcp@latest"] } } }

Codex (~/.codex/config.toml):

toml
[mcp_servers.design-lounge]command = "npx"args = ["-y", "design-lounge-mcp@latest"]

@latest makes each start check for a new release, so library updates reach you without reinstalling. Reload the client once after the first start, so it picks up the skill the server installs.

The rendered checks (screenshots, axe, measured labels and buttons, theme boards and type specimens) need a headless Chromium. Ask your agent to run install_browser once (about 100 MB), or run npx playwright install chromium --only-shell. Without it, every other check still runs, and the report says it did not look.

Hosted, for Claude.ai, ChatGPT, and other clients that cannot run a local program: add https://www.designlounge.live/api/mcp as a custom connector (Streamable HTTP, no sign-in). It has the library, start_design, the picks, and the static review of public URLs or pasted HTML. It leaves out what needs your machine: file paths, the history file, the skill and browser installs, and the rendered checks. It fetches only public addresses and allows 60 requests a minute per address. Pass your own recent picks as history if you keep them.

To run it from a clone of the repo instead: cd mcp && pnpm install, then use node /path/to/designs/mcp/src/server.mjs as the command.

Tools

ToolWhat it does
start_designCall first. Reads their words (flow, mode, named style, calm words), ranks recipes, reads the project folder and the recent picks, and returns the brief and the steps
get_recipeA recipe's directions, each marked when the history blocks it
pick_directionCalm-word filter, the history, the group check, then the name number. You pass the directions that fit
check_pickThe uniqueness check for hero, work, footer, shape, and frame. Returns the Unlike line
record_pickAppends a claimed or finished line to ~/.design-lounge/history.jsonl and reports an earlier claim
search_pieces / get_pieceFind a piece and read its brief. get_piece attaches the demo's thumbnail, and demo: true adds its HTML source. search_pieces with images: true attaches the first six thumbnails
browse_libraryThemes and pairings by mood, plus families, recipes, categories, collections, kinds, motion, and scales
get_theme / get_pairing / get_familyThe locked tokens and rules, as CSS. A theme comes with a board of its roles, and a pairing with a type specimen
get_icons / search_wadaLounge Icons as SVG. Wada's combinations by word or by nearest hex
read_guideAny method file, or one section of it
review_pageEverything at once: design, accessibility, SEO, AEO, GEO. Fails come first, each with its evidence and fix. The web and phone frames come back as images
match_referenceThey show a site or a screenshot and want that feel. Measures its colour roles, type, corners, shadows, density, hero shape, sections, and motion, and names the closest theme, pairing, family, and pieces. It matches the feel; it never copies the site
install_skillInstall the skill in a project, or replace a user copy installed another way
install_browserDownload the headless Chromium the rendered checks use, once
audit_slopDesign only: AI giveaways and kit drift
audit_searchSEO, AEO, and GEO only
suggest_schemaJSON-LD built only from facts on the page, with the missing fields listed

Every review tool takes path (a file, or a folder with index.html), url (live or localhost), or html. For a path, it reads DESIGN.md beside the page or above it to learn the locked theme, pairing, family, Free mode, and Named aesthetic. A Named aesthetic lifts the bans it lists.

The server also offers three prompts, design, review, and deslop, and the method files as resources at lounge://guide/<file>.

What it writes, and what leaves your machine

  • The skill. On start, it writes the skill to ~/.agents/skills/design-lounge and links it into ~/.claude/skills, ~/.cursor/skills, and ~/.codex/skills for the clients you have. A copy it did not make is never replaced. DESIGN_LOUNGE_SKILL_INSTALL=off turns this off. To remove it, delete those folders.
  • Recent picks. record_pick appends a line to ~/.design-lounge/history.jsonl, so two sites you make do not come out alike. Nothing else reads it.
  • Cached images. Theme boards and type specimens are cached in ~/.cache/design-lounge/boards. Screenshots go to your temp folder, or to out_dir.
  • The hosted endpoint keeps nothing. Each request gets a fresh server, and the pages it reviews are fetched and dropped.
  • The network. A review fetches the page you name, its stylesheets, robots.txt, sitemap.xml, llms.txt, and the share image, from your machine. Google Fonts loads for type specimens. Thumbnails and demos are bundled; designlounge.live is asked only for one that is missing. Nothing is sent to Design Lounge, and there is no tracking.

Settings

VariableDefault
DESIGN_LOUNGE_SKILLThe bundled skill/, then ../skills/design-lounge
DESIGN_LOUNGE_HISTORY~/.design-lounge/history.jsonl
DESIGN_LOUNGE_SKILL_INSTALLon. Set off to skip installing the skill
DESIGN_LOUNGE_ASSETSThe bundled assets/, then the repo's public/thumbs and src/demos, then the live site
DESIGN_LOUNGE_CACHE~/.cache/design-lounge/boards, for rendered theme boards and specimens

Develop

sh
pnpm test                              # unit tests and a stdio round trippnpm release patch --dry-run           # sync the skill, test, and pack, without publishingnode test/client.mjs                   # list the toolsnode test/client.mjs review_page '{"path":"test/fixtures/slop.html"}'

pnpm release patch (or minor, major, x.y.z, with --otp <code> for npm 2FA) syncs the skill from the library, runs the tests, bumps package.json and server.json together, publishes to npm and the MCP Registry, then commits and tags. It never pushes.

pnpm pack first copies the skill folder into skill/, and the thumbnails and demos into assets/ (scripts/bundle.mjs), so the published package carries the library and the pictures. About 12 MB packed.

Designed using Design Lounge by Susan Acharya.

Source: mcp/README.md at commit 9569959

Tools

18

start_design

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.

Parametershistoryproductrequestrequired

get_recipe

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.

Parametersidrequiredhistoryproduct

pick_direction

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`.

Parameterscalmreciperequiredfittinghistoryproduct

check_pick

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.

Parametersheroworkframereuseshapeeffectfooterreciperequiredhistoryproductdirection

search_pieces

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.

Parameterslimitquerystyleimagescategoryplatform

get_piece

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.

Parametersidrequireddemofullimage

browse_library

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").

Parametersmodemoodwhatrequiredlimit

get_theme

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.

Parametersidrequiredimage

get_pairing

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.

Parametersidrequiredimage

get_family

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.

Parametersidrequired

get_icons

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.

Parametersgroupnames

search_wada

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.

Parametersnearlimitquery

read_guide

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.

Parametersfilerequiredoutlinesection

name_number

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.

Parametersnamerequiredcount

review_page

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.

Parameterskiturlhtmlformatimagesrenderout_dir

audit_slop

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.

Parameterskiturlhtmlrenderout_dir

suggest_schema

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.

Parametersurlhtmlnametype

Version history

4
  1. v0.2.7LatestNov 7, 2026
  2. v0.2.6Nov 3, 2026
  3. v0.2.4Nov 3, 2026
  4. v0.2.3Oct 29, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.