The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Housestyle listing page.
An MCP server that stops AI-built interfaces from looking AI-built.
Agents are good at producing working UI and bad at producing UI that looks like somebody decided something. The result has a recognisable fingerprint: Inter on a Tailwind blue, a purple-to-pink gradient, one border radius everywhere, and a type scale where the headline is barely larger than the body text.
This server gives an agent the tools to notice that and fix it.
No API key. Colour and type maths runs locally; font data comes from Google Fonts' public metadata endpoint. Nothing to configure, nothing to sign up for.
audit_cssPaste a stylesheet, token block, or Tailwind config. Returns the generic-design tells it found, why each one matters, and what to do instead.
Ten rules, all deterministic: default font stacks, framework blues, the AI gradient, uniform radius, uniform shadow, flat type scale, emoji used as icons, wholesale centring, missing measure limit, and pure black on pure white.
A clean audit is not a claim that the design is good — only that it does not carry the usual fingerprints.
suggest_fonts / suggest_pairingReads the live Google Fonts catalogue (~1,950 families) and ranks for a role and
mood — editorial, technical, warm, brutalist, elegant, neutral.
The ranking is deliberately not "most popular". Popularity is what produces the anonymous look, so the top of the charts is penalised, the long tail is penalised for being untested, and the middle is preferred. Inter, Roboto, Poppins and thirteen other signature defaults are excluded unless you ask for them. Script-specific families are filtered out for Latin interfaces.
suggest_pairing pairs across a category boundary, because the change of
category is what makes a pairing read as deliberate. Returns ready-to-paste
@import URLs and CSS custom properties.
check_contrastWCAG 2.2 ratio with AA/AAA verdicts, plus the APCA Lc value.
Both are reported because WCAG 2.x systematically misjudges dark themes — it will pass light-on-dark pairs that are genuinely hard to read. Where the two disagree on a dark background, trust APCA.
build_paletteAn 11-step ramp from one seed colour, computed in OKLCH.
OKLCH rather than HSL because HSL lightness is not perceptual: at a fixed HSL lightness, yellow reads far brighter than blue, so an HSL ramp produces steps that look unevenly spaced. Chroma is tapered toward both ends and every step is fitted back into the sRGB gamut, so no step silently clips. Contrast against white and black is computed for each step.
build_type_scaleA fluid modular scale emitted as clamp(), so sizes interpolate with the
viewport instead of stepping at breakpoints.
The narrow end uses a gentler ratio than the wide end, because a single ratio applied at 360px overshoots and headlines wrap badly. Body size stays fixed — only display sizes scale.
MIT