Verified conversions across 205 color spaces: CSS strings, gamut checks, .cube LUTs
Design Lounge is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
A UI design library and skill for agents, with a page review for AI giveaways, SEO, AEO, and GEO.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user design-lounge-mcp '--' npx -y design-lounge-mcp
# 2 — ask your agent for something these tools do
# start_design, get_recipe, pick_direction and 19 more
Design Lounge costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one can run either way — at an address its publisher runs, or as a process under your own user, with your files and your network — and this marketplace is in the path of neither.
This is a public server: you run it yourself and this marketplace is not in the path. You need Node.js — the current LTS (24) is the safe choice; npx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user design-lounge-mcp '--' npx -y design-lounge-mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
Its publisher also runs it at https://www.designlounge.live/api/mcp: nothing to start on your machine, and this marketplace is not in the path.
claude mcp add --scope user --transport http design-lounge-mcp https://www.designlounge.live/api/mcpNothing is required, but it can take DESIGN_LOUNGE_SKILL_INSTALL (Set to off to stop the server installing the Design Lounge skill into ~/.agents/skills on start.), DESIGN_LOUNGE_HISTORY (Where recent design picks are kept. Default ~/.design-lounge/history.jsonl.) if you want to set them.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
22 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Read from its source code. A server that builds its tool list when it starts can list more tools than this.
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| request | string | yes | Their message, word for word |
| product | string | no | The product or brand name, if they gave one |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Recipe id, such as saas, restaurant, portfolio. browse_library what=recipes lists them |
| product | string | no | — |
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…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| recipe | string | yes | — |
| product | string | no | Product or brand name, for the name number. Without one, the first noun of their message |
| fitting | array | no | Direction ids whose mood names this subject's world |
| calm | boolean | no | They used a calm word: clean, simple, professional, plain, calm, quiet, corporate, serious, trustworthy |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| recipe | string | yes | — |
| product | string | no | — |
| direction | string | no | — |
| hero | string | no | — |
| work | string | no | — |
| footer | string | no | — |
| effect | string | no | — |
| shape | string | no | — |
| frame | array | no | [header piece, phone piece or "none", find-us piece] |
| reuse | boolean | no | Reusing a direction because every fitting one is recent: compares shape, frame, work, and footer only |
Append a line to …: "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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| product | string | yes | — |
| folder | string | no | — |
| recipe | string | yes | — |
| direction | string | yes | — |
| theme | string | yes | — |
| pairing | string | yes | — |
| family | string | no | — |
| hero | string | no | — |
| work | string | no | — |
| footer | string | no | — |
| effect | string | no | — |
| shape | string | no | — |
| frame | array | no | — |
| mode | string | no | — |
| fonts | array | no | — |
| colours | array | no | — |
| status | string | yes | — |
Search … piece briefs by words (job, component, style, tag) and filters. Returns ids, summaries, and demo links. Then get_piece for the brief.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Such as "pricing toggle", "sticky mobile cta", "kanban", "footer wordmark" |
| platform | string | no | — |
| category | string | no | browse_library what=categories lists them |
| style | string | no | — |
| limit | integer | no | — |
| images | boolean | no | Attach thumbnails of the first six, to compare them by eye |
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…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | — |
| full | boolean | no | — |
| image | boolean | no | Attach the demo's thumbnail (default true) |
| demo | boolean | no | Add the demo's HTML source |
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").
| Parameter | Type | Required | Notes |
|---|---|---|---|
| what | string | yes | — |
| mood | string | no | — |
| mode | string | no | — |
| limit | integer | no | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Theme id, name, or Lounge link |
| image | boolean | no | Attach a board of the theme's roles (default true) |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Pairing id, name, or Lounge link |
| image | boolean | no | Attach a type specimen (default true) |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| names | array | no | — |
| group | string | no | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | — |
| near | string | no | A hex like #b14f1c |
| limit | integer | no | — |
Read a method file or one section of it. Files: …. Give a heading ("Look", "Write the idea", "Recent picks") to get only that section; outline=true lists the headings.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| file | string | yes | — |
| section | string | no | — |
| outline | boolean | no | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| count | integer | no | — |
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,…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kit | object | no | The locked kit, by id, name, or Lounge link. Read from DESIGN.md when omitted |
| render | boolean | no | Open it in Chromium (default true) |
| out_dir | string | no | Where to save screenshots (default: a temp folder) |
| images | boolean | no | Attach the web and phone frames (default true) |
| format | string | no | — |
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…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kit | object | no | The locked kit, by id, name, or Lounge link. Read from DESIGN.md when omitted |
| render | boolean | no | — |
| out_dir | string | no | — |
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…
No parameter schema on file.
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…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| type | string | no | schema.org type, such as Restaurant, Dentist, Person, SoftwareApplication. Default Organization |
| name | string | no | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| project_path | string | no | A project folder. Omit to install for this user |
| replace | boolean | no | Replace a user-level copy that something else installed |
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.
No parameter schema on file.
No parameter schema on file.
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source is public; its licence metadata reads NOASSERTION rather than naming a licence
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Design Lounge or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | high | capability blast radius (high) — client exposure if the model is manipulated | −6 |
| verification-discount | repo | publisher verification (public source) — no provenance, but the source is public and inspectable | −1 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
Tools were statically extracted from the published source (22 recovered), not enumerated from a running server. Tool-poisoning, Unicode-smuggling, capability and toxic-flow analysis ran on this inferred surface, but a mis-parsed registration could be missed or mis-attributed, so tool-derived findings are capped below “confirmed”. To grade the real runtime surface, scan the running server: --command "npx -y <package>".
1 of the 22 recovered tools are registered only when !hosted holds (src/tools.mjs:175) — typically when a key or option is configured. They are part of the server's surface and were analysed; a server started without that configuration exposes only the other 18.
1 of the 22 recovered tools are registered only when !hosted holds (src/tools.mjs:417) — typically when a key or option is configured. They are part of the server's surface and were analysed; a server started without that configuration exposes only the other 18.
1 of the 22 recovered tools are registered only when !hosted holds (src/tools.mjs:454) — typically when a key or option is configured. They are part of the server's surface and were analysed; a server started without that configuration exposes only the other 18.
1 of the 22 recovered tools are registered only when !hosted holds (src/tools.mjs:469) — typically when a key or option is configured. They are part of the server's surface and were analysed; a server started without that configuration exposes only the other 18.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. high is the level these add up to.
18 tools are registered unconditionally · (1) 1 more only when !hosted holds (src/tools.mjs:175) · (2) 1 more only when !hosted holds (src/tools.mjs:417) · (3) 1 more only when !hosted holds (src/tools.mjs:454) · (4) 1 more only when !hosted holds (src/tools.mjs:469) — typically when a key or option is configured. All 22 are in the table below and were analysed; the conditional ones are marked.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| start_design | no tags | |
| get_recipe | no tags | |
| pick_direction | no tags | |
| check_pick | no tags | |
| record_pick conditional (1) | state-write | state-write: declares readOnlyHint: false |
| search_pieces | no tags | |
| get_piece | no tags | |
| browse_library | untrusted-input | untrusted-input: keyword "browse" |
| get_theme | no tags | |
| get_pairing | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| get_family | no tags | |
| get_icons | no tags | |
| search_wada | no tags | |
| read_guide | no tags | |
| name_number | no tags | |
| review_page | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| audit_slop | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| audit_search | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| suggest_schema | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| match_reference conditional (2) | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| install_skill conditional (3) | state-write | state-write: declares readOnlyHint: false |
| install_browser conditional (4) | untrusted-inputexternal-sink | untrusted-input: keyword "download"; external-sink: declares readOnlyHint: false, openWorldHint: true |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 0.2.6. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
- The version this listing was on when mcprush began following its releases. The registry was not asked when it shipped, so this row carries no date.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Design Lounge can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.