Better Design
Server Details
A design harness for AI coding agents: design systems, design principles, icons and UI review.
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 0.0% over the last 24 hours
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- better-designs/better-design-plugin
- GitHub Stars
- 0
- Server Listing
- Better Design
- ChatGPT
- –
- Claude
- Better Design
TDQS
Scored across 45 tools
Most tools have distinct purposes, but several families can be confused at selection time: get-ui-principle vs get-ux-principle, get-team-rules vs get-review-rules, review-dashboard-structure vs finalize-dashboard-review, and extract-design-system vs extract-from-url. Detailed descriptions help, but an agent must read carefully to avoid misselection across 45 tools.
All tools use kebab-case with a predictable verb-noun pattern such as build-feature-map, get-design-system-status, find-icons, review-illustration, and set-team-rules. Minor singular/plural differences in icon tools do not break the convention.
45 tools is excessive for a single MCP server, even given the broad design-system, review, guidance, and generation scope. Many tools could be grouped into fewer, parameterized tools without losing capability.
The surface covers design-system creation, extraction, configuration, preview, kits, icon workflows, review, guidance, feature maps, and content generation with few dead ends. Gaps remain around deleting or managing generated projects, removing installed icons, and approving or deleting team rules, but agents can mostly work around them.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
inspect-spacing4 fields changed- added
Input schema / properties / foldableAdded value: +{ + "description": "Set for an iPhone Duo or another foldable app. The call then needs nativeStates from at least two poses, closed and open, and returns status incomplete otherwise.", + "type": "boolean" +} - added
Output schema / properties / measuredAdded value: +{ + "description": "True only when status is completed. Report a score only then.", + "type": "boolean" +} - changed
Output schema / properties / status / enumPrevious value: -[ - "needs-capture", - "completed" -]New value: +[ + "needs-capture", + "incomplete", + "completed" +] - changed
Output schema / requiredPrevious value: -[ - "status" -]New value: +[ + "status", + "measured" +]
1 tool update
- Changed
get-jig-guide4 fields changed- changed
Input schema / properties / framework / descriptionPrevious value: -"Which tune-in-place setup to return. 'react' (default) for React/Next web projects; 'vanilla' for plain DOM or canvas work; 'react-native' for RN/Expo apps. Ignored when kind is 'standalone-tool' or 'variant-canvas'."New value: +"The platform the jig or picker goes into. 'react' (default) for React/Next web projects; 'vanilla' for plain DOM or canvas work; 'react-native' for RN/Expo apps; 'swiftui' for SwiftUI apps; 'shopify' for Liquid themes. Ignored when kind is 'standalone-tool' or 'wait-for-send'." - changed
Input schema / properties / framework / enumPrevious value: -[ - "react", - "vanilla", - "react-native" -]New value: +[ + "react", + "vanilla", + "react-native", + "swiftui", + "shopify" +] - changed
Input schema / properties / kind / descriptionPrevious value: -"What the user needs. 'tune-in-place' (default): a control panel for parameters in the UI you are building. 'standalone-tool': a separate reusable design tool, scaffolded with Toolcraft. 'variant-canvas': several variants of one component or screen side by side, for the user to compare and pick."New value: +"What the user needs. 'tune-in-place' (default): a control panel for parameters in the UI you are building. 'standalone-tool': a separate reusable design tool, scaffolded with Toolcraft. 'variant-canvas': three versions of one piece of UI on the real screen behind a picker. 'wait-for-send': wait for the person to select Send on a jig or picker you handed over, and receive what they chose." - changed
Input schema / properties / kind / enumPrevious value: -[ - "tune-in-place", - "standalone-tool", - "variant-canvas" -]New value: +[ + "tune-in-place", + "standalone-tool", + "variant-canvas", + "wait-for-send" +]
1 tool update
- Added
check-first-visit
1 tool update
- Changed
get-design-system-kit1 field changed- changed
Input schema / properties / target / descriptionPrevious value: -"Required build target. Use \"react\" for any host with filesystem + terminal; use \"html\" only for inline chat canvases/artifacts. Use \"shopify\" for Shopify stores and themes. Use \"dtcg\" to hand the tokens to a design tool: it returns a W3C Design Tokens document for Style Dictionary, Tokens Studio, Terrazzo, or a Figma plugin that creates variables. Use \"store-screenshots\" for App Store and Google Play screenshots in this system: it returns slide files and a render script that writes PNG files at the store sizes. Use \"react-native\" for a React Native or Expo app and \"swiftui\" for an iOS app: each returns this system's stored mobile kit, its own material on native primitives, plus the handoff to the matching guide."New value: +"Required build target. Use \"react\" for any host with filesystem + terminal; use \"html\" only for inline chat canvases/artifacts. Use \"shopify\" for Shopify stores and themes. Use \"dtcg\" to hand the tokens to a design tool: it returns a W3C Design Tokens document for Style Dictionary, Tokens Studio, Terrazzo, or a Figma plugin that creates variables. Use \"store-screenshots\" for App Store and Google Play screenshots in this system: it returns slide files and a render script that writes PNG files at the store sizes. Use \"react-native\" for a React Native or Expo app and \"swiftui\" for an iOS app: each returns this design system's own components for that platform: its theme and native primitives in its material, plus the handoff to the matching guide."
3 tool updates
- Changed
get-design-system-kit2 fields changed- changed
Input schema / properties / target / descriptionPrevious value: -"Required build target. Use \"react\" for any host with filesystem + terminal; use \"html\" only for inline chat canvases/artifacts. Use \"shopify\" for Shopify stores and themes. Use \"dtcg\" to hand the tokens to a design tool: it returns a W3C Design Tokens document for Style Dictionary, Tokens Studio, Terrazzo, or a Figma plugin that creates variables. Use \"store-screenshots\" for App Store and Google Play screenshots in this system: it returns slide files and a render script that writes PNG files at the store sizes. "New value: +"Required build target. Use \"react\" for any host with filesystem + terminal; use \"html\" only for inline chat canvases/artifacts. Use \"shopify\" for Shopify stores and themes. Use \"dtcg\" to hand the tokens to a design tool: it returns a W3C Design Tokens document for Style Dictionary, Tokens Studio, Terrazzo, or a Figma plugin that creates variables. Use \"store-screenshots\" for App Store and Google Play screenshots in this system: it returns slide files and a render script that writes PNG files at the store sizes. Use \"react-native\" for a React Native or Expo app and \"swiftui\" for an iOS app: each returns this system's stored mobile kit, its own material on native primitives, plus the handoff to the matching guide." - changed
Input schema / properties / target / enumPrevious value: -[ - "react", - "html", - "shopify", - "dtcg", - "store-screenshots" -]New value: +[ + "react", + "html", + "shopify", + "dtcg", + "store-screenshots", + "react-native", + "swiftui" +]
- Added
get-react-native-guide - Added
get-three-js-guide
1 tool update
- Changed
get-design-system-kit1 field changed- added
Input schema / properties / screenAdded value: +{ + "description": "react-native and swiftui only: a few words naming the screen you are building, such as \"habit tracker today\" or \"workout log\". The kit then shows how shipped apps built it.", + "maxLength": 80, + "minLength": 1, + "type": "string" +}
3 tool updates
- Changed
inspect-spacing2 fields changed- removed
Output schema / properties / findings / items / properties / evidence / items / properties / value / anyOfRemoved value: -[ - { - "type": "number" - }, - { - "type": "string" - } -] - added
Output schema / properties / findings / items / properties / evidence / items / properties / value / typeAdded value: +[ + "number", + "string" +]
- Added
send-feedback - Changed
set-design-config2 fields changed- removed
Input schema / properties / config / properties / icons / properties / variant / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / config / properties / icons / properties / variant / typeAdded value: +[ + "string", + "null" +]
1 tool update
- Changed
inspect-spacing1 field changed- added
Input schema / properties / nativeStatesAdded value: +{ + "description": "Native screens: a name for each, and the JSON `axe describe-ui` printed for it. Frames are in points and are measured as pixels.", + "items": { + "properties": { + "name": { + "maxLength": 100, + "minLength": 1, + "type": "string" + }, + "tree": { + "items": {}, + "maxItems": 20, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "name", + "tree" + ], + "type": "object" + }, + "maxItems": 6, + "minItems": 1, + "type": "array" +}
3 tool updates
- Changed
get-design-system-kit3 fields changed- added
Output schema / properties / installedToAdded value: +{ + "description": "The project folder this server installed the design system into. Build there; run no setup command.", + "type": "string" +} - added
Output schema / properties / localInstallAdded value: +{ + "description": "True when this server runs on the user's machine and installs the design system itself: call get-design-system-kit again with install: true.", + "type": "boolean" +} - added
Output schema / properties / newProjectCommandAdded value: +{ + "description": "Creates a Vite + React + TypeScript project with Tailwind v4, the @/* alias and components.json, for when there is no project yet. Run it, then run installCommand inside the new my-app folder.", + "type": "string" +}
- Changed
get-design-system-status3 fields changed- added
Output schema / properties / installedToAdded value: +{ + "description": "The project folder this server installed the design system into. Build there; run no setup command.", + "type": "string" +} - added
Output schema / properties / localInstallAdded value: +{ + "description": "True when this server runs on the user's machine and installs the design system itself: call get-design-system-kit again with install: true.", + "type": "boolean" +} - added
Output schema / properties / newProjectCommandAdded value: +{ + "description": "Creates a Vite + React + TypeScript project with Tailwind v4, the @/* alias and components.json, for when there is no project yet. Run it, then run installCommand inside the new my-app folder.", + "type": "string" +}
- Changed
preview-design-system3 fields changed- added
Output schema / properties / installedToAdded value: +{ + "description": "The project folder this server installed the design system into. Build there; run no setup command.", + "type": "string" +} - added
Output schema / properties / localInstallAdded value: +{ + "description": "True when this server runs on the user's machine and installs the design system itself: call get-design-system-kit again with install: true.", + "type": "boolean" +} - added
Output schema / properties / newProjectCommandAdded value: +{ + "description": "Creates a Vite + React + TypeScript project with Tailwind v4, the @/* alias and components.json, for when there is no project yet. Run it, then run installCommand inside the new my-app folder.", + "type": "string" +}
2 tool updates
- Changed
make-sales-page9 fields changed- changed
Input schema / properties / ctaLabel / descriptionPrevious value: -"The button label, for example \"Book a call\"."New value: +"Optional. The button label, for example \"Book a call\"." - removed
Input schema / properties / ctaLabel / minLengthRemoved value: -1 - changed
Input schema / properties / ctaUrl / descriptionPrevious value: -"Where the button goes, for example your calendar link."New value: +"Where the call to action goes, for example your calendar link." - removed
Input schema / properties / formatRemoved value: -{ - "description": "\"page\" makes a hosted sales page. \"pdf\" makes the same page as a one-page PDF to leave behind after a call.", - "enum": [ - "page", - "pdf" - ], - "type": "string" -} - changed
Input schema / properties / headline / descriptionPrevious value: -"The page's headline, written for this account."New value: +"Optional. The page's headline. Left out, Better Design writes it." - removed
Input schema / properties / headline / minLengthRemoved value: -1 - added
Input schema / properties / notesAdded value: +{ + "description": "Optional. What you know about the account: its business, its problem, the conversation so far.", + "maxLength": 2000, + "type": "string" +} - changed
Input schema / properties / problem / descriptionPrevious value: -"Optional. The problem the account has today."New value: +"Optional. The problem the account has today. Left out, Better Design writes it." - changed
Input schema / requiredPrevious value: -[ - "format", - "designSystemId", - "website", - "company", - "headline", - "offer", - "ctaLabel", - "ctaUrl" -]New value: +[ + "designSystemId", + "company", + "website", + "offer", + "ctaUrl" +]
- Changed
make-social-image7 fields changed- added
Input schema / properties / ctaUrlAdded value: +{ + "description": "Where the call to action goes, for example your calendar link.", + "format": "uri", + "maxLength": 2048, + "type": "string" +} - changed
Input schema / properties / headline / descriptionPrevious value: -"The image's headline."New value: +"Optional. The image's headline. Left out, Better Design writes it." - removed
Input schema / properties / headline / minLengthRemoved value: -1 - added
Input schema / properties / notesAdded value: +{ + "description": "Optional. What you know about the account: its business, its problem, the conversation so far.", + "maxLength": 2000, + "type": "string" +} - added
Input schema / properties / offerAdded value: +{ + "description": "What you offer this account and what it gets.", + "maxLength": 1200, + "minLength": 1, + "type": "string" +} - added
Input schema / properties / websiteAdded value: +{ + "description": "The account's website, for example https://acme.com.", + "format": "uri", + "maxLength": 2048, + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "designSystemId", - "company", - "headline" -]New value: +[ + "designSystemId", + "company", + "website", + "offer", + "ctaUrl" +]
1 tool update
- Changed
read-feature-map1 field changed- changed
Input schema / properties / planned / descriptionPrevious value: -"Routes, file paths or names of work you are about to build; checks each against the Main Quest."New value: +"Routes, file paths or names of work you are about to build; checks each against what the product already makes and the Main Quest."
2 tool updates
- Changed
inspect-spacing3 fields changed- added
Input schema / properties / densityAdded value: +{ + "description": "The layout density to check against: compact, comfortable or spacious. Omit it to use the project's design config, then the design system's default, both read from the page's --layout-density variable, then the mode closest to the measured page.", + "enum": [ + "compact", + "comfortable", + "spacious" + ], + "type": "string" +} - added
Input schema / properties / states / items / properties / densityAdded value: +{ + "description": "The density the page declares through the kit's --layout-density variable. The capture script fills it.", + "properties": { + "mode": { + "maxLength": 20, + "type": "string" + }, + "source": { + "maxLength": 20, + "type": "string" + }, + "unit": { + "exclusiveMinimum": 0, + "maximum": 64, + "type": "number" + } + }, + "type": "object" +} - added
Output schema / properties / densityAdded value: +{ + "additionalProperties": false, + "properties": { + "mode": { + "enum": [ + "compact", + "comfortable", + "spacious" + ], + "type": "string" + }, + "roles": { + "items": { + "additionalProperties": false, + "properties": { + "expected": { + "type": "number" + }, + "matches": { + "type": "boolean" + }, + "measured": { + "type": "number" + }, + "role": { + "enum": [ + "sidebarWidth", + "pageInset", + "sectionGap", + "columnGap", + "cardPadding" + ], + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "role", + "state", + "measured", + "expected", + "matches" + ], + "type": "object" + }, + "type": "array" + }, + "source": { + "enum": [ + "argument", + "project", + "design-system", + "measured" + ], + "type": "string" + } + }, + "required": [ + "mode", + "source", + "roles" + ], + "type": "object" +}
- Changed
set-design-config2 fields changed- changed
Input schema / properties / config / descriptionPrevious value: -"Partial design config to merge over the current one. Only pass the fields the user changed. Colors are oklch() strings (e.g. 'oklch(0.62 0.11 45)'); radius is a CSS length (e.g. '0.75rem'); fonts are family names."New value: +"Partial design config to merge over the current one. Only pass the fields the user changed. Colors are oklch() strings (e.g. 'oklch(0.62 0.11 45)'); radius is a CSS length (e.g. '0.75rem'); fonts are family names; density is compact, comfortable or spacious and overrides the design system's layout density." - added
Input schema / properties / config / properties / densityAdded value: +{ + "enum": [ + "compact", + "comfortable", + "spacious" + ], + "type": "string" +}
1 tool update
- Changed
inspect-spacing1 field changed- added
Output schema / properties / nextStepAdded value: +{ + "type": "string" +}
2 tool updates
- Added
make-sales-page - Added
make-social-image
Publisher details
- Operator
- Better Design
- Operator website
- https://better-design.com
- Vendor relationship
- First-party
- Documentation
- https://better-design.com
- Trust center
- https://better-design.com
- Restrictions
- https://better-design.com
Related MCP Connectors
Design intelligence for coding agents: audits, design systems, and a taste profile agents consult.
UI design from prompts, screenshots, and URLs for AI coding agents and theme tokens.
A design agent in your coding agent's loop: briefs each screen, reviews UX and visual quality.
Design systems, UI prompts, and layout variations for AI coding tools.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides design systems, UI prompts, and layout variation guidance to AI coding tools for generating better user interfaces.394 npm2,189MIT
- AlicenseNot gradedqualityCmaintenanceEquips coding agents with curated design rules, art directions, UI audits, component discovery, and reference guides so they can produce less generic, more polished interfaces in Claude Code, Codex, Cursor, and other MCP clients.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to create and manage consistent multi-screen UI designs through a token-efficient MCP interface, with design system tokens, components, flows, and visual review.118 npm2AGPL 3.0
- AlicenseNot gradedqualityBmaintenanceEnables AI coding assistants to generate bespoke design systems by synthesizing OKLCH color palettes, chamfer highlights and spring physics, teaching layout composition grammar, and returning micro-interaction primitives and component blueprints. Also audits JSX/TSX/HTML through a senior design director's lens to score and critique UI quality.13 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.