Skip to main content
Glama
saglitzdesign-mcp

saglitzdesign-mcp

by HalidSaglam

SaglitzDesign MCP

An expert design & marketing brain for your AI coding agent.

A Model Context Protocol server that gives Claude, Cursor, and any MCP client expert‑level guidance on web, iOS, Android and macOS design — plus the UX, copywriting, SEO, GEO and marketing knowledge that makes a product actually convert.

96 curated knowledge documents · 36 tools · 9 build/review/port workflows · MCP resources with id autocomplete · a one‑call design‑system builder · real token/color/type/elevation/motion/a11y generators · design & UX‑copy linters · production component recipes · phased roadmaps · real‑world visual examples

npm CI skills license MCP Glama

Why · What's inside · Tools · Resources · Install · Usage · Your own rules · Changelog · License


Why

LLMs are confidently wrong about design. They reach for defaults, invent outdated specs, and give generic "make it clean and modern" advice. SaglitzDesign replaces that with a curated, sourced, prescriptive knowledge base your agent can query on demand — the kind of guidance you'd get from a senior product designer, a conversion copywriter, and a technical SEO all at once.

Ask your agent to design a paywall, audit a landing page, or plan an iOS app, and it pulls concrete rules ("44pt minimum touch target", "one primary button per screen", "LCP ≤ 2.5s"), real patterns from top apps, and a phased roadmap — instead of guessing.

  • Runtime‑independent. The server reads only local files. No external API, no account, nothing to configure. It just works, offline.

  • Local by design. It speaks MCP over stdio only and runs as a child process of your MCP client. There is no HTTP or SSE transport, so it cannot be hosted remotely or reached over a network — which is also why your prompts and code never leave your machine.

  • Prescriptive, not vague. Every doc is written as rules an agent applies verbatim — numbers, thresholds, do/don't lists, anti‑patterns.

  • Grounded. Design‑language specs from official sources; patterns studied from real top apps and sites; classics distilled from the actual books.

Related MCP server: Vibe Design Guide MCP Server

What's inside

96 knowledge documents across 11 categories:

Category

Coverage

🎨 Design languages

Material 3 & M3 Expressive · Apple HIG + Liquid Glass (iOS 26) · deep iOS, Android (Android 16 / M3 Expressive) and macOS app‑design guides · Apple accessibility (Dynamic Type, VoiceOver, hit regions) and Apple shipping readiness (Info.plist purpose strings, entitlements, app icon sets, orientation/multitasking restrictions) · Apple Intelligence design (AI features: Writing Tools, App Intents, on‑device Foundation Models) · visionOS / spatial design (Vision Pro) · Fluent 2 · 2026 web trends · design tokens & theming (W3C DTCG) · Apple WWDC design principles (fluid interfaces)

🧩 Components

Buttons (hierarchy, sizing, states, labels) · forms & inputs · navigation · cards / lists / modals / sheets / empty states

🧠 UX

Nielsen heuristics & behavioral laws · accessibility (WCAG 2.2) · typography · color & dark mode · spacing & grids · motion · mobile UX · conversion / CRO · data visualization · information architecture · i18n / localization (RTL) · AI product UX (chat, streaming, agentic) · onboarding & permission priming

✨ Craft

Expert polish standards · typographic craft · animation craft (easing, springs, interruptibility) · UX writing & cognitive load · 0–40 critique rubric · clean/minimal app design · design‑engineering (semantic HTML, CSS architecture, tokens‑in‑code) · ethical design (avoiding dark patterns) · iconography (choosing & using an icon system) · the AI‑default aesthetic (the stock gradient, font, card chrome and copy generated interfaces reach for, cited to each system's own docs)

📚 Books

Distilled classics — design: Norman, Krug, Refactoring UI, psychology of design, grid/typography, interaction design (Cooper/Tidwell), emotional design (Walter/Norman) · marketing: Cialdini, Positioning, StoryBrand + Ogilvy, Hooked

🗺️ Process

Product‑design & marketing‑website roadmaps · design‑systems methodology (Atomic Design, component API, governance) · design handoff (Figma Dev Mode, Code Connect, design↔dev)

📣 Marketing

Branding & identity · email marketing · HTML email development (Outlook, dark mode, bulletproof) · ad creative · paywall benchmarks (RevenueCat 2026) · growth frameworks (loops/AARRR/PLG) · pricing strategy · analytics & experimentation · value proposition & JTBD · content & distribution (topic clusters, community, referral) · App Store Optimization (ASO)

🔎 SEO

Technical SEO (Core Web Vitals) · on‑page & E‑E‑A‑T · SEO for designers

🤖 GEO

Generative Engine Optimization — visibility in ChatGPT / Perplexity / AI Overviews, llms.txt, citation tactics

🔐 Security

Web security headers & CSP — strict nonce/hash policies, strict-dynamic, Trusted Types, HSTS, SRI, cross-origin isolation, and the superseded headers auditors still ask for. Every claim sourced to a spec or vendor doc, re-verified on a 90-day clock.

🖼️ Patterns & examples

Real‑world patterns studied from top apps & sites (incl. e‑commerce & checkout and fintech / trust flows), plus a curated library of real‑world example screens

Which documents' sources are enforced, and which are not. Of the 96 documents, 11 have their sources: checked by the test suite against a tiered allowlist — the six Apple design‑language guides (apple-hig-liquid-glass, ios-app-design, macos-app-design, apple-accessibility, apple-shipping-readiness, wwdc-design-principles) and the five security documents. The other 85 are curated but not yet checked, and extending the assertion to them is its own piece of work rather than a formality: measured today, 66 of the 85 would fail on 282 sources between them — 227 URL citations across 133 distinct hosts, plus 55 that are not URLs at all and so have no host to check. (The 227 and the 55 are the two halves of the 282, not two figures to add.) Note that apple-intelligence-design and visionos-spatial-design are Apple‑topic documents that sit outside the enforced set. get_design_doc prints which side of this line a document is on, next to its sources, so you never have to come back here to find out.

Workflows (/ prompts) — "build me a…"

Beyond answering questions, SaglitzDesign ships prompts that orchestrate an entire build end‑to‑end. In Claude Code they appear in the / menu under a name that depends on how you installed it. Installed as the Claude Code plugin they are /saglitzdesign:build_landing_page and so on — plugin commands, one generated file per workflow in commands/. With the server installed on its own they are /mcp__saglitzdesign__build_landing_page, which the menu labels saglitzdesign:build_landing_page (MCP). That label is typeable too, (MCP) suffix and all — it is just a clumsier way to reach the same prompt. What does not work is that short form with the suffix dropped: Claude Code hands the bare server:prompt alias to first‑party Anthropic connectors only — the URL has to be https, on api.anthropic.com, under /v1/design/ — and no other server gets one, stdio or remote. (The plugin's /saglitzdesign:build_landing_page above only looks like that alias — it is a plugin command namespace, a different mechanism.)

Invoke one and the agent runs the full method — roadmap → positioning & copy → generates the design system (color, type, layout, elevation, tokens) → real examples → writes the actual code from the component recipes → runs the deterministic verify gate (design_lint, audit_accessibility, audit_design_system, audit_ux_copy) → opens it in a browser, screenshots, scores it against the critique rubric, and iterates until it passes.

Workflow

What it does

build_landing_page

Designs & builds a conversion‑focused landing page, copy‑first, with a visual critique loop.

build_website

Builds a multi‑page marketing site — positioning, IA, SEO/GEO, shared design system.

build_mobile_app_ui

Builds iOS or Android screens on the correct platform baseline (HIG/Liquid Glass or Material 3).

build_dashboard

Builds a dense SaaS dashboard / app shell — navigation, tables, empty states — not a marketing page with KPI cards glued on.

critique_screenshot

Measures the screenshot, then critiques it against the fixed 0–40 rubric — cites real ratios and colour counts, specific elements, no padding.

review_paywall

Scores a paywall / subscription onboarding against real RevenueCat 2026 conversion benchmarks.

design_review

Audits an existing site/app — runs the deterministic auditors first, so findings lead with measured numbers, then the checklists and the 0–40 rubric, ranked by severity.

redesign

Improves an existing UI (bolder / quieter / higher‑converting) using the craft standards, with a measured before→after (consistency score, critique score, lint findings, contrast failures).

port_to_platform

Takes an existing UI to another platform (iOS ↔ Android ↔ macOS ↔ web) surface by surface — porting the intent and IA, never the components.

Just type, e.g., /saglitzdesign:build_landing_page a SaaS invoicing tool for freelancers — everything after the command name becomes the brief, and the workflow asks for anything missing, then builds it. The /mcp__saglitzdesign__… form takes only the first whitespace‑separated word as its brief, so use the plugin command whenever the brief is a phrase. These are yours to type: every command carries disable-model-invocation, so the agent never starts one on its own. Asked in prose it reaches for the skills instead, and they cover much of the same ground — design review, landing‑page conversion, Apple platforms — as guidance rather than as this orchestrated build. The saglitzdesign skill's own trigger vocabulary names paywalls, so prose about one does reach a skill; what no skill carries is review_paywall's RevenueCat benchmark scoring, which runs only when you type it.

The visual critique loop uses whatever browser tool is connected (Claude in Chrome, Playwright, or chrome‑devtools MCP) to see and refine its own output. Without one, it reviews the code directly.

Tools

Tool

What it does

create_design_system

The one‑call foundation. Brand color + vibe + platform → a direction card (named defaults to leave, the type pairing as a decision, one signature move, and a stock‑region fact if the seed sits in indigo/violet/purple) plus WCAG‑verified color (light+dark), matched fonts, an icon library, a modular type scale, an elevation ramp, ready‑to‑paste tokens, the components to build, and a checklist — all generated to work together.

get_design_roadmap

Start here for process. A phased, expert process for a project type (website, landing page, iOS / Android / macOS app, SaaS web app) — each phase has a goal, exit criteria, and the exact docs to read.

search_design_knowledge

Natural‑language search across everything, returning the most relevant section of the best‑matching docs.

get_design_doc

Fetch any document in full by id.

get_component_guidance

Deep dive on a component or screen (button, form, paywall, hero, pricing…) — specs + real‑world patterns.

get_design_language

Full platform / design‑system references (Material 3, Liquid Glass, iOS/Android/macOS, Fluent 2, web trends, tokens).

compare_design_languages

Building on more than one platform? Side‑by‑side iOS / Android / macOS / web conventions for one surface (navigation, buttons, sheets, motion, forms…), plus the porting rules — and an explicit do NOT port list.

get_design_examples

Curated real‑world examples of a pattern from top apps/sites, with notes on what each does well. (Screenshots are a local‑only asset — see Visual examples.)

design_review_checklist

An assembled audit checklist per project type and focus (UI, UX, accessibility, SEO, GEO, conversion, copywriting).

seo_geo_guide

SEO and GEO guides, optionally narrowed to a topic.

import_design_tokens

Already have a design system? Paste your CSS custom properties, shadcn :root block, DTCG file or theme JSON and get back the roles it names, the roles it leaves undefined, a WCAG check on the pairs it defines, and the whole set re‑emitted as CSS / Tailwind / SwiftUI / Compose / DTCG. The inverse of generate_design_tokens — take a web theme to iOS, or audit an inherited one. Only named tokens are read; JS configs are never evaluated.

generate_design_tokens

Real artifacts, not advice — turns a color/spacing/type spec into CSS variables, Tailwind v4, SwiftUI, Jetpack Compose, and W3C DTCG JSON.

audit_accessibility

Deterministic WCAG 2.2 checks — exact contrast ratios for color pairs + tap‑target sizes per platform, with fixes.

get_component_recipe

Production‑ready, accessible reference code for a component (button, input, modal, toast, card, switch, tabs, empty‑state, list‑row, navigation, search, select, table, tooltip, form, pagination, skeleton, badge, breadcrumb) in react‑tailwind, html‑css, SwiftUI, or Compose — all states, ARIA, keyboard, correct motion. Pass your scales — the neutral, primary and danger ramps generate_color_system returns — and the code comes back in your colours, dark‑mode shades included.

generate_color_system

One brand color → a full palette. A 50–950 tonal scale, a cohesive neutral ramp, status colors (danger / success / warning) harmonised with your brand, and light + dark semantic tokens — every text/UI pair WCAG‑verified and auto‑corrected. Feeds straight into generate_design_tokens.

suggest_font_pairing

Curated, production font pairings for a vibe (SaaS, editorial, bold, native…) — heading + body (+ mono) with paste‑ready CSS stacks, weights, rationale, and a type scale.

fix_contrast

Repairs a failing color pair: computes the nearest accessible color (hue/saturation preserved) that meets your WCAG target — the corrected value, not just a fail report.

suggest_icon_library

Recommends the right icon system for a vibe/platform (Lucide, Phosphor, Solar, SF Symbols, Material Symbols…) — with license, install command, coverage, fit rationale, and usage rules.

generate_type_scale

A modular type scale (base × ratio) → named steps with line‑heights, tracking, and fluid clamp(), as CSS variables + Tailwind.

generate_elevation_system

A cohesive layered box‑shadow ramp (flat→modal) as CSS variables + Tailwind, with dark‑mode guidance.

generate_layout_system

Breakpoints (with what changes at each), container widths, a column grid, an intrinsic auto‑fit grid, container queries, and a fluid section‑rhythm scale — CSS variables + Tailwind v4.

generate_motion

Easing + duration tokens and ready‑to‑paste keyframe animations (fade/slide/scale/spring/shimmer) in CSS, Framer Motion, or SwiftUI — reduced‑motion included.

design_lint

Lints an HTML/CSS/JSX/Tailwind snippet for design & a11y anti‑patterns (hardcoded values, killed focus, missing alt/labels, clickable divs, unlabelled inputs…) with line numbers and fixes. Tag‑aware, so formatting never changes the verdict. Returns markdown plus structured output — findings, a severity summary, and a machine‑readable notVisible list of what it could not check.

measure_screenshot

Measures your actual screen. Give it a PNG and it reports the real palette and colour count, true WCAG contrast ratios for the pairs on screen, density, structural detections (alignment, rhythm, off‑grid gaps) each with a confidence level, and a stock‑region fact when a significant cluster sits in Tailwind indigo/violet/purple — plus a self‑contained HTML report you can open and share. Pure‑Node PNG decoding, no network, no dependencies.

audit_project

Audits a real codebase, not a snippet. Point it at a directory: it walks your design source, lints every file, and scores the whole project for consistency — cross‑file drift being exactly what a single‑file lint cannot see. Findings ranked worst‑file‑first with file:line, plus an explicit list of what it did not look at. Returns markdown plus structured output — findings, a severity summary, a machine‑readable notVisible list, and a scan block reporting how many files and bytes were actually read, which were skipped for size or could not be opened, and whether a cap was hit. A missing or non‑directory path comes back as an error result, not an empty audit.

audit_security

Audits a web project or snippet for the defects that actually ship — missing or weak Content‑Security‑Policy, absent HSTS, unpinned cross‑origin scripts, mixed content, credentials in localStorage, secret‑named NEXT_PUBLIC_/VITE_ variables, unsandboxed third‑party iframes, wildcard postMessage, raw‑HTML sinks with no sanitiser, production source maps and un‑ignored .env files. Header state is inferred from wherever your stack declares it — next.config, vercel.json, netlify.toml, _headers, staticwebapp.config.json, firebase.json, Nuxt routeRules, a Remix headers export, SvelteKit hooks.server.ts / kit.csp, Astro middleware and Next middleware or its Next‑16 rename proxy.ts, new Response(…, { headers }) and new Headers({…}) on Workers/Deno/Bun, a quoted header‑name property in any JSON or object literal, any call whose method is set, setHeader, append or header whatever the object is named (res.set / res.setHeader, headers.set / headers.append, Fastify reply.header, Hono c.header, Koa ctx.set), and <meta http-equiv> — read as text and never evaluated; this makes no network request, and says what it could not see. Returns markdown plus structured output — findings, a severity summary, and a machine‑readable notVisible list of what it could not check. A missing or non‑directory path comes back as an error result, not an empty audit.

audit_seo_geo

Audits the SEO and GEO signals that are actually in your source — a missing <title> and one outside the width a result gives it, the same for the meta description, multiple H1s, skipped heading levels, a missing canonical, one written relative in a self‑contained document, one left pointing at localhost or staging, an hreflang set that never lists the page itself, JSON‑LD that does not parse or declares no @context/@type or declares a type whose rich result Google has retired, missing alt text, robots.txt crawl rules (including the AI crawlers behind ChatGPT, Claude, Perplexity and Google's AI surfaces), a robots.txt naming no sitemap, no llms.txt beside it, and content that only exists once a script has run. Absence is claimed only where it can be proven — a self‑contained HTML document, or a whole directory — and a capped scan downgrades every absence claim to an unconfirmed note. It reads source and measures nothing: no request is made, so no finding is a Core Web Vitals result, an indexing status or a ranking outcome. Returns markdown plus structured output — findings, a severity summary, and a machine‑readable notVisible list of what it could not check.

audit_performance

Audits the performance signals that are actually in your source — a hero image held back by loading="lazy" or contradicting its own fetchpriority, the LCP‑candidate image declaring no fetch priority at all, a hero background declared in CSS or an inline style that the HTML preload scanner never sees, images with no width/height or aspect-ratio to reserve their box, a <script src> in the <head> carrying neither defer nor async nor type="module", @font-face without font-display, third‑party font hosts, and scripts loaded from more distinct remote domains than any reading of "minimise" defends. The hero rules are deliberately narrow — the first image inside <main>, with the header logo and the mid‑article diagram structurally excluded — so some pages get no hero finding at all, and that is returned explicitly rather than left to read as a clean result. Core Web Vitals are field data; this loads nothing and times nothing. Returns markdown plus structured output.

audit_apple_ui

Audits an iOS or macOS app against Apple's own documentation. Point it at the Xcode project directory: it reads the four surfaces a project declares configuration on — the information property list, INFOPLIST_KEY_* build settings in project.pbxproj, the entitlements plist, and each colorset's Contents.json — infers whether the target is iOS or macOS from those plus the Swift imports, and runs eight rules: a custom colorset with no luminosity: dark appearance, the deprecated UIRequiresFullScreen key (either spelling), a microphone entitlement declared under one capability and not its twin, no App Sandbox entitlement on macOS (reported as a fact about the Mac App Store channel, not as a defect), plus NavigationView, .font(.system(size:)) on iOS only, a colour written as numbers, and a Button whose whole label is one SF Symbol. Every platform‑scoped rule stays silent when the signals do not settle the question, and the report names the verdict and the signals behind it so a silence reads as the gate rather than as a result. It builds nothing, runs no simulator and takes no screenshot. Returns markdown plus structured output — findings, a severity summary, a scan block, and the longest notVisible list this server ships, every entry of it derived from a run. Directory only; a code argument, a missing path or a path that is a file comes back as an error result, not an empty audit.

audit_android_ui

Audits an Android app against Material 3 and android-app-design. Point it at the project or module directory: it reads AndroidManifest.xml, resource XML and Kotlin, infers whether the folder is an Android project from those plus Compose/Android imports, and runs six rules: the edge-to-edge opt-out attribute (deprecated and ignored on Android 16), the predictive-back opt-out, a day theme XML with no values-night/ file among the surfaces read, a Color(0x…) literal, fontSize = N.sp, and a Material 2 component import. Every configuration rule stays silent when no Android signal was found, and the report names the verdict and the signals behind it so a silence reads as the gate rather than as a result. It builds nothing, starts no emulator and takes no screenshot. Returns markdown plus structured output — findings, a severity summary, a scan block, and a machine-readable notVisible list, every entry of it derived from a run. Directory only; a code argument, a missing path or a path that is a file comes back as an error result, not an empty audit.

audit_design_system

Is there actually a system here? Point it at real CSS/JSX and get a consistency score plus the sprawl behind it: how many distinct colors, sizes, radii, shadows and spacings are in use, which colors are indistinguishable duplicates, what's off the 4pt grid, token adoption — and a consolidation plan.

audit_generic_design

Audits for the specific defaults generated interfaces reach for — the stock Tailwind indigo/violet/purple gradient (as classes, hex, or OKLCH), Inter/Roboto/Open Sans/DM Sans/Plus Jakarta Sans as the only declared typeface on a brand surface, emoji standing in for icons, the rounded-2xl + shadow-lg + border card recipe repeated across a page, gradient‑filled heading text, an eyebrow label over every heading, the backdrop-blur + white/10 glassmorphism recipe, three or more animate-pulse / animate-shimmer placeholders, stock hype‑opener copy, stacked filler adverbs, and a page whose every CTA is drawn from the stock set. Every finding is a fact about the source — a class name, a phrase, a repeated structure — never a judgement about whether the result is good design; a 0–100 score counts distinct signals, not occurrences, and is itemised to rule and file:line. Pair with design_review_checklist or get_design_doc("design-critique-scoring") for the taste half. Returns markdown plus structured output — findings, a severity summary, a machine‑readable notVisible list, the itemised score, and (in directory mode) a scan block flagging a truncated read. A missing or non‑directory path comes back as an error result, not an empty audit.

audit_ux_copy

Objective copy audit — readability (Flesch), sentence length, passive voice, jargon, filler, user‑focus, weak CTAs — with flagged phrases and fixes.

audit_ethical_design

Audits a pasted snippet for named deceptive-pattern tells from ethical-design: confirmshaming decline copy ("No thanks, I hate…"), a pre-checked marketing or newsletter checkbox, a scarcity or deadline phrase with no live binding nearby, and an Accept all with no equally-named reject. Every finding is a fact about a phrase or an attribute — not a verdict on the business. It reads source and does not measure anything. Snippet only; there is no directory mode. Returns markdown plus structured output — findings, a severity summary, and a machine-readable notVisible list.

list_design_knowledge

Browse the full knowledge index by category / platform.

knowledge_freshness

Reports each doc's age vs a per‑category staleness threshold, so the base can be kept current.

Resources

Beyond tools, the knowledge base is exposed as MCP resources, so clients that support them (Claude Desktop, Cursor) can @‑mention a document directly — with id autocompletion — instead of spending a tool call:

URI

What it is

saglitzdesign://index

The whole index: every document by category, with platform and last‑verified date.

saglitzdesign://doc/{id}

One knowledge document in full (96 of them). Autocompletes on id.

saglitzdesign://recipe/{component}

A component's spec plus its reference implementation in every available stack.

Visual examples

get_design_examples serves a curated library of real app/site screens. The screenshots themselves are third‑party assets and are not redistributed, so the published npm package ships the annotations and source links without the images — the tool detects this and says so rather than pretending otherwise. If you clone the repo you can rebuild the local image library; see scripts/regenerate-examples.md.

Install

Requirements: Node.js 20+.

From npm (no clone needed):

npx saglitzdesign-mcp

From source:

git clone https://github.com/HalidSaglam/saglitzdesign-mcp.git
cd saglitzdesign-mcp
npm install
npm run build

Claude Code

Register it once (via npm — no clone), available in every project:

claude mcp add --scope user saglitzdesign -- npx -y saglitzdesign-mcp

Or, if you cloned the repo, point it at the built file:

claude mcp add --scope user saglitzdesign node /absolute/path/to/saglitzdesign-mcp/dist/index.js

As a plugin

One install brings all three pieces — the MCP server, all nine skills (the eight depth skills plus the umbrella that routes into them) and a slash command for every workflow:

claude plugin marketplace add HalidSaglam/saglitzdesign-mcp
claude plugin install saglitzdesign@saglitz

The plugin declares its server as npx -y saglitzdesign-mcp@latest, so the server itself still comes from npm; the skills and the commands are files inside the plugin. claude plugin details saglitzdesign@saglitz lists what arrived.

The three ways of installing do not carry the same payload:

Install

Server, knowledge base, recipes

Skills

/saglitzdesign:… commands

claude plugin install saglitzdesign@saglitz

yes

all nine — eight depth skills plus the umbrella

one per workflow

npx saglitzdesign-mcp / claude mcp add

yes

—

—

npx skills@latest add HalidSaglam/saglitzdesign-mcp

—

all nine — eight depth skills plus the umbrella

—

The npm package's files: list covers dist/, knowledge/ and recipes/, and does not name skills/ or commands/ — so an MCP-only install has every tool and every document and none of the skill or command files. The skills CLI is the mirror image: it copies each SKILL.md into your agent and brings no server, so the tools those skills point at are not there unless you also install one. Cloning the repository gets the source of all of it — but not a runnable server: dist/ is gitignored, so a clone needs npm install && npm run build before node dist/index.js starts. Everything else in the table is a tracked file and arrives with the clone.

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "saglitzdesign": {
      "command": "npx",
      "args": ["-y", "saglitzdesign-mcp"]
    }
  }
}

Cursor / other MCP clients

Run npx -y saglitzdesign-mcp over stdio (or node /absolute/path/to/dist/index.js from a clone).

Requires Node 20 or newer. It also runs on Node 18 with a warning; below that the launcher exits with an explanation instead of a syntax error.

Your client launches the server — you don't start it yourself. Run by hand it will print its status and then wait on standard input for a client that never arrives, which looks like a hang but is the server working correctly.

As skills (no MCP server)

Prefer lightweight, self-contained skills? Install the condensed SaglitzDesign skills into any skills-compatible agent:

npx skills@latest add HalidSaglam/saglitzdesign-mcp

Nine skills. saglitzdesign is the umbrella: it carries no depth guidance of its own, and routes the work into whichever of the other eight fits. Those eight — clean-interface-design, landing-page-conversion, design-review, motion-and-animation, apple-platform-design, android-platform-design, design-system-audit, ship-quality-gate — are each standalone guidance that also points to the full MCP for depth. See skills/.

Each skill is copied into your agent and its content hash pinned in skills-lock.json, so an installed skill does not change when this repository does. Re-run the command above to pick up a new skill or an edited one.

Dev & debug

npm run dev       # run from TypeScript via tsx
npm run inspect   # open the MCP Inspector UI

Usage

Once connected, just talk to your agent naturally — it decides when to call the tools:

"Using saglitzdesign, plan the design of an iOS fitness app." → get_design_roadmap returns a 7‑phase plan with the docs to read at each step.

"Review my landing page for conversion with saglitzdesign." → design_review_checklist (landing‑page / conversion) + get_design_examples.

"How should a primary button behave on mobile?" → get_component_guidance returns specs, states, labels and anti‑patterns.

"Show me real paywall examples." → get_design_examples returns annotated screenshots.

"What's llms.txt and how do I set it up?" → seo_geo_guide (GEO) returns the tactic with a ready‑to‑use example.

Your own design rules

Point the server at a directory of your own and your documents join the base — searchable, readable, and, if you ask, part of the review checklist:

claude mcp add --scope user saglitzdesign \
  --env SAGLITZDESIGN_KNOWLEDGE_DIR=/path/to/our-design-rules \
  -- npx -y saglitzdesign-mcp

Or in claude_desktop_config.json / any MCP client, alongside command and args:

"env": { "SAGLITZDESIGN_KNOWLEDGE_DIR": "/path/to/our-design-rules" }

Several directories are allowed, separated the way PATH is on your platform.

  • Your rules lead. When a search is genuinely about something you documented, your document comes first — measured by how many of the query's terms it covers, so a short house‑rules file is not buried by a long reference.

  • Same id replaces ours. A file with id: buttons takes over from the built‑in one. That is deliberate, and it is announced at startup rather than happening quietly. Wherever it is served it is marked as your team's document, so nothing of yours is ever quoted as though it were sourced platform guidance.

  • review: [website, saas-web-app] in the frontmatter puts the document into those project types' design_review_checklist, ahead of the curated list — the difference between your rules being findable and your rules being enforced.

Editing files inside the installed package works until npm update deletes them. Use the environment variable.

Adding to this repository

Drop a Markdown file anywhere under knowledge/ with frontmatter:

---
id: my-topic
title: "My Topic"
category: ux            # design-language | component | ux | seo | geo | pattern | craft | book | process | marketing | security
platform: both          # mobile | web | macos | both
tags: [tag1, tag2]
sources: ["https://…"]
updated: 2026-07-08
---

Content served verbatim to clients…

The server indexes every .md on startup — no rebuild needed for content changes (just restart the server). A /refresh-knowledge command (.claude/commands/) can re‑research stale docs with agents.

How the knowledge was built

Design‑language and SEO/GEO docs were researched from official documentation and current sources (cited in each file's sources). Real‑world UI patterns were studied from top apps and websites; the visual example library was curated the same way. Classic design and marketing books were distilled into original, prescriptive syntheses — no source text is reproduced.

On images: screenshot files are a local research asset. They are not included in this repository or any published package. Without them, get_design_examples gracefully degrades to descriptions plus source links. To rebuild the local image library (or add your own examples), see scripts/regenerate-examples.md.

Find it on

Also listed in the official MCP Registry and on npm.

License

MIT © 2026 Saglitz Design.

The knowledge/ documents are original syntheses with sources cited per file. Referenced screenshots are not part of this repo and may not be redistributed — see NOTICE.md.

Available Tools

36 tools
audit_accessibilityAudit AccessibilityA
Read-onlyIdempotent

Deterministic design-time accessibility checks: WCAG 2.2 color-contrast ratios for text/UI color pairs, and minimum tap/target sizes per platform (iOS 44pt, Android 48dp, web 24px min / 44 recommended). Returns exact ratios, pass/fail, and fixes — the machine-verifiable slice of a11y you can run before code. For keyboard/screen-reader/Dynamic Type checks, see get_design_doc('accessibility').

Inputs: tap_targets, contrast_pairs.

audit_android_uiAudit Android UiA
Read-onlyIdempotent

Audit an Android app's UI against Material 3 and android-app-design: point it at the project (or module) directory and it reads AndroidManifest.xml, resource XML and Kotlin, infers whether the folder is an Android project from those plus Compose/Android imports, and runs six rules. Configuration: windowOptOutEdgeToEdgeEnforcement="true" (deprecated and ignored on Android 16), enableOnBackInvokedCallback="false" (the predictive-back opt-out), and a values/themes.xml or values/colors.xml with no values-night/ file among the surfaces read. Compose: a Color(0x…) literal, fontSize = N.sp, and an androidx.compose.material.Button-style Material 2 import (not material3, not material.icons). Every configuration rule stays silent when no Android signal was found, and the report says whether the platform was inferred and from what, so a silence can be read as the gate rather than as a result. It reads source and does not measure anything: it builds nothing, starts no emulator, takes no screenshot, and no finding is or can be a rendered-output, contrast, TalkBack or Play review result. Returns markdown plus structured output: findings (rule, severity, message, fix, doc, file, line — configuration findings carry no line, since a manifest attribute has no useful source position), a severity summary, a scan block saying how much was actually read, and a machine-readable notVisible list of what it structurally could not check, every entry of it derived from a run. Directory only — there is no snippet mode, because configuration is the backbone of this audit and a snippet carries none of it. A missing path, a path that is a file, or a code argument is returned as an error result, not as an empty audit. Pair with get_design_doc("material-3") and get_design_doc("android-app-design") for the guidance behind the rules.

Inputs: code, path. Returns: scan, summary, findings, notVisible

audit_apple_uiAudit Apple UiA
Read-onlyIdempotent

Audit an iOS or macOS app's UI against Apple's own documentation: point it at the project directory and it reads the four surfaces an Xcode project declares configuration on — the information property list, INFOPLIST_KEY_* build settings in project.pbxproj, the entitlements plist, and each colorset's Contents.json — infers whether the project targets iOS or macOS from those plus the Swift imports, and runs eight rules. Configuration: a custom colorset with no luminosity: dark appearance, the deprecated UIRequiresFullScreen key (either spelling), a microphone entitlement declared under one capability and not its twin, and — on macOS only — no App Sandbox entitlement, reported as a fact about the Mac App Store channel rather than as a defect. Swift: NavigationView, .font(.system(size:)) on iOS only, a colour written as numbers, and a Button whose whole label is one SF Symbol. Every platform-scoped rule stays silent when the platform signals do not settle the question, and the report says which platform was inferred and from what, so a silence can be read as the gate rather than as a result. It reads source and does not measure anything: it builds nothing, runs no simulator, takes no screenshot, and no finding is or can be a rendered-output, contrast, notarization or App Review result. Returns markdown plus structured output: findings (rule, severity, message, fix, doc, file, line — configuration findings carry no line, since a missing key has no position), a severity summary, a scan block saying how much was actually read, and a long machine-readable notVisible list of what it structurally could not check, every entry of it derived from a run. Directory only — there is no snippet mode, because configuration is the backbone of this audit and a snippet carries none of it. A missing path, a path that is a file, or a code argument is returned as an error result, not as an empty audit. Pair with get_design_doc("apple-hig-liquid-glass"), get_design_doc("apple-accessibility") and get_design_doc("apple-shipping-readiness") for the guidance behind the rules.

Inputs: code, path. Returns: scan, summary, findings, notVisible

audit_design_systemAudit Design SystemA
Read-onlyIdempotent

Measure how systematic an existing UI really is: paste CSS / SCSS / Tailwind / JSX source and get a consistency score plus the sprawl behind it — how many distinct colors, font sizes, radii, shadows and spacing values it actually uses, which colors are near-duplicates nobody can tell apart, which spacing is off the 4pt grid, token adoption, stray font families, !important and magic z-index. Returns a consolidation plan wired to the generators. Use it before a redesign, on an inherited codebase, or to prove a design system is (or isn't) being followed. Deterministic static analysis; complements design_lint (per-line anti-patterns) with a whole-codebase view.

Inputs: code (required).

audit_ethical_designAudit Ethical DesignA
Read-onlyIdempotent

Audit a pasted snippet for named deceptive-pattern tells from ethical-design: confirmshaming decline copy, a pre-checked marketing or newsletter checkbox, a scarcity or deadline phrase with no live binding nearby, and an Accept all with no equally-named reject. It reads source and does not measure anything: no checkout is completed, no countdown is timed, no warehouse is queried, and no consent banner is clicked, so no finding is or can be a verdict on the business. Snippet only — there is no directory mode. Returns markdown plus structured output: findings (rule, severity, message, fix, doc, line), a severity summary, and a machine-readable notVisible list of what it could not check. Pair with get_design_doc('ethical-design') and a human looking at the render.

Inputs: code (required). Returns: summary, findings, notVisible

audit_generic_designAudit Generic DesignA
Read-onlyIdempotent

Audits a web project or snippet for the specific defaults generated interfaces reach for: the stock Tailwind indigo/violet/purple gradient (as classes, hex, or OKLCH), Inter/Roboto/Open Sans/DM Sans/Plus Jakarta Sans as the only declared typeface on a brand surface, emoji standing in for icons, the rounded-2xl + shadow-lg + border card recipe repeated across a page, gradient-filled heading text, an eyebrow label over every heading, the backdrop-blur + white/10 glassmorphism recipe, three or more animate-pulse or animate-shimmer placeholders, stock hype-opener copy ('unlock the power of', 'say goodbye to', …), stacked filler adverbs ('seamlessly', 'effortlessly', …), and a page whose every call to action is drawn from the stock set ('Get Started', 'Learn More'). Every finding is a fact about the source text — a class name, a phrase, a repeated structure — never a judgement about whether the result is good design; it reports facts, not taste, so pair it with design_review_checklist or get_design_doc("design-critique-scoring") for actual critique. It reads source and does not measure anything: it makes no network request, renders nothing, and no finding is or can be a rendered-output or aesthetic judgement. Returns markdown plus structured output: findings (rule, severity, message, fix, doc, file, line), a severity summary, a machine-readable notVisible list of what it could not check, and a 0-100 score itemised to the same rule, weight and evidence the markdown prints — each rule counts once no matter how many times it fires, so a long page never scores higher purely for its length. In directory mode it does not read story, test or fixture files (.stories., .story., .spec., .test., fixtures/, mocks/), whose job is to demonstrate a component rather than ship a surface; it reports how many it skipped. The copy rules match English only, so a page in another language is scored by the visual rules alone. A missing or non-directory path is returned as an error result, not as an empty audit. Pair with audit_project for design drift and design_review_checklist for critique.

Inputs: code, path, filename. Returns: scan, score, summary, findings, +1 more

audit_performanceAudit PerformanceA
Read-onlyIdempotent

Audit a page, a component or a whole web project for the performance signals that are actually in the source: a hero image held back by loading="lazy", or contradicting its own fetchpriority; the LCP-candidate image declaring no fetch priority at all; a hero background declared in CSS or an inline style, which the HTML preload scanner never sees; images with no width/height or aspect-ratio to reserve their box; a in the carrying neither defer nor async nor type="module"; @font-face blocks with no font-display; fonts served from a third-party font CDN; and scripts loaded from more distinct remote domains than any reading of "minimise" defends. It reads source and does not measure anything: Core Web Vitals are 75th-percentile field data from real devices, this loads nothing and times nothing, and no finding is or can be an LCP, INP or CLS verdict — so do not call it expecting a vitals report. Its hero rules are deliberately narrow (the first image inside , with the header logo and the mid-article diagram structurally excluded), which means some pages get no hero finding at all; that limitation and the others are returned explicitly rather than left to read as a clean result. Returns markdown plus structured output: findings (rule, severity, message, fix, doc, file, line), a severity summary, and a machine-readable notVisible list of what it could not check. A missing or non-directory path is returned as an error result, not as an empty audit. Pair with audit_seo_geo for the crawl and answer-engine signals, and measure_screenshot for the rendered result.

Inputs: code, path, filename. Returns: summary, findings, notVisible

audit_projectAudit ProjectA
Read-onlyIdempotent

Audit a real codebase instead of a pasted snippet: point it at a directory and it walks the design source, runs the design/accessibility lint over every file, and scores the whole thing for consistency — how many distinct colours, type sizes, radii, shadows and spacings the project actually uses, and which colours are indistinguishable duplicates. Returns findings ranked worst-file-first with file:line, plus an explicit list of what it did not look at. It reads source and does not measure anything: it loads no page, renders nothing, takes no screenshot, and no finding is or can be a rendered-output result. Returns markdown plus structured output: findings (rule, severity, message, fix, doc, file, line), a severity summary, a machine-readable notVisible list of what it could not check, and a scan block saying how many files and bytes were actually read, which files were skipped for size, which could not be opened, and whether the file or byte cap was hit — check that before trusting any absence in findings. It runs design_lint's rules and the consistency count, and nothing else: run audit_security, audit_generic_design, audit_seo_geo and audit_performance on the same directory for theirs. A missing or non-directory path is returned as an error result, not as an empty audit. Cross-file drift is the thing a single-file lint cannot see, which is the point of this tool. Reads only the directory you name; makes no network call. Pair with measure_screenshot for the rendered result and audit_ux_copy for the words.

Inputs: path (required), extensions. Returns: scan, summary, findings, notVisible

audit_securityAudit SecurityA
Read-onlyIdempotent

Audit a web project or snippet for security defects a frontend actually ships: missing or weak Content-Security-Policy, absent HSTS, unpinned cross-origin scripts, mixed content, credentials in localStorage, secret-named NEXT_PUBLIC_/VITE_ variables, unsandboxed third-party iframes, wildcard postMessage, raw-HTML sinks with no sanitiser, production source maps and un-ignored .env files. Header state is inferred from wherever your stack declares it — next.config, vercel.json, netlify.toml, _headers, staticwebapp.config.json, firebase.json, Nuxt routeRules, a Remix/React Router headers export, SvelteKit hooks.server.ts and kit.csp, Astro middleware and Next.js middleware or its Next 16 rename proxy.ts, new Response(body, { headers }) and new Headers({…}) on Cloudflare Workers/Deno/Bun — and, as rules rather than places, a quoted header-name property in any JSON or object literal, and any call whose method name is set, setHeader, append or header whatever the object is called (res.set, res.setHeader, headers.set, headers.append, Fastify reply.header, Hono c.header, Koa ctx.set) — and , read as text and never evaluated. It reads source and does not measure anything: it makes no request to your site, tests no live endpoint, and no finding is or can be a penetration-test or vulnerability-scan result — so do not call it expecting one. Returns markdown plus structured output: findings (rule, severity, message, fix, doc, file, line), a severity summary, and a machine-readable notVisible list of what it could not check. A missing or non-directory path is returned as an error result, not as an empty audit. Pair with audit_project for design drift and audit_accessibility for WCAG.

Inputs: code, path, filename. Returns: summary, findings, notVisible

audit_seo_geoAudit Seo GeoA
Read-onlyIdempotent

Audit a page, a component or a whole web project for the SEO and GEO signals that are actually in the source: a missing , and one longer or shorter than the width a result gives it; a missing meta description, and one outside the width a snippet gives it; more than one on a page; a heading level skipped in the outline; no canonical link at all; a canonical written as a relative URL in a self-contained document; a canonical left pointing at localhost or a staging host; an hreflang set that never lists the page itself; JSON-LD that does not parse, or that declares no @context or @type; JSON-LD declaring a type whose rich result Google has retired; an image with no alt attribute at all; robots.txt crawl rules, including the AI crawlers behind ChatGPT, Claude, Perplexity and Google's AI surfaces; a robots.txt that names no sitemap; no llms.txt beside it; and content that exists only once a script has run. It reads source and does not measure anything: no request is made to your site, nothing is rendered, and no finding is or can be a Core Web Vitals result, an indexing status or a ranking outcome — so do not call it expecting a vitals or ranking report. Absence is only ever claimed where it can be proven — a self-contained HTML document, or a whole directory — and a scan that hits its cap downgrades every absence claim to an unconfirmed note. Returns markdown plus structured output: findings (rule, severity, message, fix, doc, file, line), a severity summary, and a machine-readable notVisible list of what it could not check. A missing or non-directory path is returned as an error result, not as an empty audit. Pair with audit_performance for the delivery signals, audit_ux_copy for whether the writing earns the click, and seo_geo_guide for the guidance behind the rules.

Inputs: code, path, filename. Returns: summary, findings, notVisible

audit_ux_copyAudit Ux CopyA
Read-onlyIdempotent

Audit UI / marketing copy objectively: readability (Flesch reading ease + grade level), average sentence length, passive voice, jargon/hype words, filler, user-focus ('you' vs 'we'), and weak CTAs. Returns metrics plus specific flagged phrases and fixes. The machine-checkable slice of UX writing — pair with get_design_doc('ux-writing') for voice/tone judgment. It reads source and does not measure anything: no usability session is run, no A/B result is read, and no finding here is or can be a statement about whether the copy actually works for a reader. It also has no notion of register: it has no way to tell short UI copy from long-form prose, so a paragraph of accurate technical documentation can draw more jargon/filler hits than a paragraph of real hype. Returns markdown plus structured output: findings (rule, severity, message, fix, doc, line), a severity summary, a machine-readable notVisible list of what it could not check, and a metrics block carrying the same words/sentences/avgSentenceLen/Flesch/grade-level/you-we numbers the markdown table prints.

Inputs: text (required). Returns: metrics, summary, findings, notVisible

compare_design_languagesCompare Design LanguagesA
Read-onlyIdempotent

Compare how iOS (HIG/Liquid Glass), Android (Material 3), macOS and the web each solve ONE design problem — navigation, buttons, modals/sheets, typography, color, elevation, motion, forms, lists, icons, search or settings. Returns a side-by-side table of the concrete conventions per platform, the rules for porting a design between them, and an explicit 'do NOT port' list. Use when building the same product on more than one platform, or when deciding whether a pattern that works on one platform belongs on another.

Inputs: topic (required), platforms.

create_design_systemCreate Design SystemA
Read-onlyIdempotent

THE one-call foundation. Turn a brand color + product vibe + platform into a complete, coherent design-system starter: a direction card (named defaults to leave, the type pairing as a decision, one signature move, and a stock-region fact if the seed sits in indigo/violet/purple), accessibility-verified color (light+dark), a matched font pairing, an icon library, a modular type scale, an elevation ramp, ready-to-paste design tokens (CSS/Tailwind or SwiftUI/Compose), the components to build, and a build checklist — all generated to work together. Use this FIRST when someone says 'design/build me a website/app' to lay the foundation, then get_component_recipe for each component and get_design_roadmap for the full process.

Inputs: vibe (required), brand_color (required), name, platform.

design_lintDesign LintA
Read-onlyIdempotent

Lint a snippet of HTML / CSS / JSX / Tailwind for design & accessibility anti-patterns: hardcoded colors instead of tokens, px font-sizes, removed focus outlines, images without alt, clickable divs, icon-only buttons without labels, positive tabindex, ad-hoc radii, !important overuse. Returns findings with line numbers, severity, and fixes. It reads source and does not measure anything: nothing is rendered, no contrast ratio is computed and no tap target is sized, so no finding is or can be a visual or an accessibility verdict. Returns markdown plus structured output: findings (rule, severity, message, fix, doc, line), a severity summary, and a machine-readable notVisible list of what it could not check. Fast static design-time check — not a replacement for a full audit. Complements design_review_checklist.

Inputs: code (required). Returns: summary, findings, notVisible

design_review_checklistDesign Review ChecklistA
Read-onlyIdempotent

Generate a structured design-review checklist for a project type (mobile app, website, landing page, dashboard), assembled from the knowledge base: key rules and anti-patterns per area. Use it to audit an existing design or as acceptance criteria for a new one.

Inputs: project_type (required), focus.

fix_contrastFix ContrastA
Read-onlyIdempotent

Repair a failing color pair: given a foreground and background hex, compute the NEAREST accessible color (hue & saturation preserved, lightness nudged) that meets the WCAG 2.2 target — not just a pass/fail report. Use when audit_accessibility flags a pair and you need the corrected value to ship. For a full pass/fail audit use audit_accessibility; to build a whole palette use generate_color_system.

Inputs: background (required), foreground (required), adjust, target.

generate_color_systemGenerate Color SystemA
Read-onlyIdempotent

Turn ONE brand color into a complete, accessibility-verified palette: a 50–950 tonal scale, a cohesive brand-tinted neutral ramp, and full light + dark semantic tokens (background, surface, border, text, primary/onPrimary, subtle, focus ring). Every text/UI pair is checked against WCAG 2.2 and auto-adjusted to pass. Deterministic — outputs a real palette, not advice. Feed the result into generate_design_tokens, then audit_accessibility.

Inputs: brand_color (required).

generate_design_tokensGenerate Design TokensA
Read-onlyIdempotent

Turn a design-token spec (semantic colors + optional spacing/radius/type scales) into REAL, ready-to-use artifact files: CSS custom properties, Tailwind v4 @theme, SwiftUI, Jetpack Compose, and W3C DTCG JSON. Deterministic — outputs code, not advice. Use it to give a project one source of truth across web, iOS and Android. Pair with audit_accessibility to verify the palette's contrast.

Inputs: colors (required), name, radii, format, +3 more.

generate_elevation_systemGenerate Elevation SystemA
Read-onlyIdempotent

Generate a cohesive elevation / box-shadow ramp (layered ambient + direct light) with semantic level names (flat…modal), as CSS custom properties and Tailwind @theme, plus dark-mode guidance. Deterministic. Use one shadow token per level instead of hand-tuning shadows per component.

Inputs: hue, levels, strength.

generate_layout_systemGenerate Layout SystemA
Read-onlyIdempotent

Generate the layout foundation the other generators leave out: breakpoints (with what changes at each), container max-widths, edge padding, a column grid, an intrinsic auto-fit card grid, container queries, and a fluid section-rhythm scale — as CSS custom properties and a Tailwind v4 @theme block, plus the rules that matter more than the numbers (design narrow-first, cap the measure at 45–75ch, prefer intrinsic layout to media queries). Deterministic real code. Pair with generate_type_scale and generate_design_tokens.

Inputs: gutter, preset, columns, max_width, +1 more.

generate_motionGenerate MotionA
Read-onlyIdempotent

Generate a motion system: easing tokens (decelerate/accelerate/standard/spring as cubic-beziers), duration tokens, and ready-to-paste keyframe animations (fade-in, slide-up, scale-in, spring-pop, shimmer) in CSS, Framer Motion, or SwiftUI — grounded in the animation-craft rules (ease-out on enter, small distances, never scale(0), honor reduced-motion). Deterministic real code.

Inputs: stack, animation.

generate_type_scaleGenerate Type ScaleA
Read-onlyIdempotent

Generate a modular typographic scale from a base size and ratio: named steps (xs…6xl) with sizes, line-heights, letter-spacing, and optional fluid clamp() that scales display type down on small screens. Emits CSS custom properties and a Tailwind v4 @theme block. Deterministic real output. Pair with suggest_font_pairing and generate_design_tokens.

Inputs: base, fluid, ratio, steps.

get_component_guidanceGet Component GuidanceA
Read-onlyIdempotent

Get expert guidance for designing one UI component or screen pattern (button, form, navigation, card, modal, hero, pricing page, onboarding, paywall, checkout, empty state, dashboard…). Returns the most relevant docs in full — specs, states, sizing, anti-patterns, and real-world patterns from top apps/sites. Use when designing a specific element; for copy-paste code use get_component_recipe, for annotated screenshots use get_design_examples.

Inputs: component (required), platform.

get_component_recipeGet Component RecipeA
Read-onlyIdempotent

Get production-ready, accessible reference CODE for a UI component in a chosen stack (react-tailwind, html-css, swiftui, compose) — not advice, actual copy-paste code with all states, ARIA/accessibility, keyboard support and correct motion, grounded in the SaglitzDesign specs. Use when you need to actually build a button, input, modal, toast, card, switch, tabs, empty-state, list-row, navigation, search, select, table, tooltip, form, pagination, skeleton, badge, or breadcrumb. Pair with get_component_guidance (the design rationale) and generate_design_tokens (the theme).

Inputs: component (required), stack, scales, tokens.

get_design_docGet Design DocA
Read-onlyIdempotent

Fetch one knowledge-base document in full by its id. Returns the whole document — title, metadata, prescriptive body, and cited sources. Ids come from list_design_knowledge or search_design_knowledge; if the id is unknown it suggests near matches.

Inputs: id (required).

get_design_examplesGet Design ExamplesA
Read-onlyIdempotent

Fetch curated real-world examples of a design pattern from top apps and websites (paywalls, onboarding, auth, navigation, checkout, settings, empty states, heroes, pricing, features, social proof, signup, dashboards, footers). Returns, for each example, the app/site, what it does well, and a source link to view the screenshot. NOTE: this installation does not bundle the screenshot images (they are third-party assets, excluded from the published package), so the notes and links are returned WITHOUT inline images — open the links, or use your own browser tool, if you need to see them.

Inputs: query (required), limit, platform.

get_design_languageGet Design LanguageA
Read-onlyIdempotent

Fetch the full reference document for one modern design language or platform design system (Material 3, Apple HIG/Liquid Glass, iOS/Android/macOS, Apple Intelligence, visionOS, Fluent 2, 2026 web trends, design tokens). Returns the complete spec — rules, do/don't lists, numbers, and examples — for the chosen system. Use when you need the authoritative platform baseline before designing; for a specific component use get_component_guidance, and to plan a whole project use get_design_roadmap.

Inputs: language (required).

get_design_roadmapGet Design RoadmapA
Read-onlyIdempotent

The SaglitzDesign roadmap: a phased, expert design process for a given project type (website, landing page, iOS app, Android app, macOS app, SaaS web app). Each phase has a goal and the exact knowledge-base docs to consult. Use this FIRST when starting any design project, then fetch phase docs as you reach them.

Inputs: project_type (required).

import_design_tokensImport Design TokensA
Read-onlyIdempotent

Read an EXISTING design system and convert it: paste CSS custom properties (a Tailwind v4 @theme block, a shadcn :root block, plain CSS), a W3C DTCG token file, or a theme object as JSON, and get back the roles it names, the semantic roles it is missing, a WCAG contrast check on the pairs it defines, and the whole set re-emitted as CSS / Tailwind / SwiftUI / Compose / DTCG. The inverse of generate_design_tokens — use it to take a web theme to iOS or Android, to audit an inherited system, or to see what a third-party theme leaves undefined. Only NAMED tokens are read; a bare hex inside a rule carries no role and is never imported as one (use audit_design_system to count those). JavaScript configs are never evaluated.

Inputs: source (required), name, format.

knowledge_freshnessKnowledge FreshnessA
Read-onlyIdempotent

Report how fresh each knowledge document is (age since last verification vs its category's staleness threshold). Use this to decide which docs need re-research; refresh workflow is documented in the repo's /refresh-knowledge command.

Inputs: only_stale.

list_design_knowledgeList Design KnowledgeA
Read-onlyIdempotent

List the knowledge-base index (design languages, UI components, UX, craft, books, process, marketing, SEO, GEO, patterns). Returns every document grouped by category — each with its id, title, platform, and tags. Use this first to discover what's available and get exact ids; then read one with get_design_doc, or search by need with search_design_knowledge.

Inputs: category, platform.

measure_screenshotMeasure ScreenshotA
Read-onlyIdempotent

Measure a real screenshot from its actual pixels — the exact palette and how many distinct colours it really uses, true WCAG contrast ratios for the colour pairs on screen, whitespace/density, and structural detections (left-edge alignment, vertical rhythm, off-grid gaps) each carrying a confidence level. Returns a markdown measurement and, on request, a self-contained HTML report you can save, open and share. PNG only. Reads the local file you name; makes no network call. Use it before critiquing a UI so the review cites measured numbers instead of impressions; pair with fix_contrast for failing pairs and audit_design_system for the codebase behind the screen.

Inputs: path (required), scale, format, max_colors.

search_design_knowledgeSearch Design KnowledgeA
Read-onlyIdempotent

Search the whole knowledge base with a natural-language query — UI components, UX, accessibility, typography, color, motion, conversion, copywriting, SEO/GEO, platform design languages, craft standards, distilled design & marketing books, roadmaps, and real-world app/site patterns. Returns the top-matching documents, each with its single most relevant section excerpted and its id. Use for open-ended 'how should I…' questions; if you already know the id use get_design_doc, to browse everything use list_design_knowledge.

Inputs: query (required), limit, category, platform.

seo_geo_guideSeo Geo GuideA
Read-onlyIdempotent

SEO and GEO expertise for websites — classic SEO (technical, on-page, design-impact) and GEO, Generative Engine Optimization for AI answer engines (ChatGPT, Perplexity, Google AI Overviews, llms.txt, citations). Returns the full relevant guide docs, optionally narrowed to a topic. Use when planning or auditing a site's discoverability; pair with get_design_roadmap('website') for the full process.

Inputs: scope (required), topic.

suggest_font_pairingSuggest Font PairingA
Read-onlyIdempotent

Recommend production-ready font pairings for a brand/product from an intent or vibe (e.g. 'modern SaaS dashboard', 'luxury editorial', 'bold marketing landing', 'native iOS app', 'developer tool'). Returns matched heading + body (+ mono) with ready-to-paste CSS stacks, weights, source, the reason each pairing works, pairing rules, and a suggested type scale. Deterministic curated recommendations, not generic advice. Pair with generate_design_tokens to emit the fonts as tokens.

Inputs: intent (required), limit.

suggest_icon_librarySuggest Icon LibraryA
Read-onlyIdempotent

Recommend the right icon library for a product from an intent/vibe/platform (e.g. 'minimal SaaS dashboard', 'friendly consumer app with personality', 'iOS app', 'Android Material app', 'dense admin panel'). Returns matched open-source (or platform-native) icon systems with license, install command, coverage, the reason each fits, usage rules, and universal icon best-practices. Deterministic curated guidance — icons are NOT bundled; install the chosen library in your own project. Pair with suggest_font_pairing and generate_color_system.

Inputs: intent (required), limit.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.1/5.0

    Scored across 36 tools

    Disambiguation4/5

    The set is organized into clear families (knowledge retrieval, generators, audits) and descriptions cross-reference each other heavily, which helps an agent pick between them. The main confusable pair is audit_design_system vs audit_project, which both report color/shadow/spacing sprawl, and get_design_doc vs get_design_language overlap slightly as document fetchers.

    Naming Consistency4/5

    The vast majority follow a predictable verb_noun pattern across list_/search_/get_, generate_, audit_, suggest_, create_, compare_, measure_, and import_ families. A few outliers—design_review_checklist, seo_geo_guide, knowledge_freshness, and design_lint—break the pattern but are still readable.

    Tool Count2/5

    36 tools is far above the 25+ threshold and creates a heavy selection burden for an agent, even though the scope is broad. Several audit_* and generate_* tools could plausibly be consolidated, with audit_project largely subsuming design_lint plus audit_design_system's consistency counting.

    Completeness5/5

    The surface covers the full design workflow: knowledge discovery and planning, component guidance and recipes, deterministic design-token/color/type/motion generation, import of existing systems, screenshot measurement, and a wide matrix of audits across accessibility, copy, ethical design, security, SEO, performance, Apple, and Android. There are no obvious dead ends or missing lifecycle stages for the stated purpose.

    Maintenance

    ActivityStale
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      A
      quality
      D
      maintenance
      Provides comprehensive design principles and best practices to help LLMs generate modern, accessible web pages through guidance on layouts, colors, and typography. It enables users to review design approaches and access expert recommendations for responsive design, component structure, and current industry trends.
      12
      43 npm
      3
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      Exposes The Vibe Coder's Web Design Guide as tools for AI agents, enabling lookups of UI design patterns, CSS/JS snippets, and composition of optimized front-end prompts.
      -
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables coding agents to find real iOS app screens, user journeys, and website design systems, including colors, typography, components, and DESIGN.md files, so generated UIs resemble real products instead of AI defaults.
      8
      MIT