README.md

June 27, 2026 · View on GitHub

designer-skill-mcp

Plug-and-play MCP. UI superpowers for your agent.


plug_and_play npm downloads license


agents references tools detector


Overview · Setup · Reference · Tools · Development

npm i designer-skill-mcp

Route

dispatch_intent maps vague requests like "make it pop" or "it feels off" to the right design verb and reference files.

Know

15 reference files cover type, color, motion, a11y, anti-slop, and redesign loops. Your agent reads the right file before writing UI code.

Check

A 44-rule deterministic detector plus anti_slop_checklist runs before shipping. Generic UI gets caught before it lands.


overview

designer-skill-mcp is a small MCP server you add in one line. Your agent gets design tools, reference docs, and a ship gate so UI work stops looking generic.

flowchart LR
  A[Your prompt] --> B[dispatch_intent]
  B --> C[get_reference]
  C --> D[Build / polish UI]
  D --> E[anti_slop_checklist]
  E --> F[Ship]
  style A fill:#f8fafc,stroke:#94a3b8,color:#18181b
  style B fill:#eff6ff,stroke:#3b82f6,color:#1e3a8a
  style C fill:#faf5ff,stroke:#7c3aed,color:#4c1d95
  style D fill:#fff7ed,stroke:#e87a3d,color:#7c2d12
  style E fill:#ecfdf5,stroke:#10b981,color:#065f46
  style F fill:#f1f5f9,stroke:#64748b,color:#0f172a

Add the server. Ask in plain language. The agent handles the rest.

skill mcp

Built with it: pythinker.com — a live production site designed end-to-end with this skill.

pythinker.com — built with designer-skill


setup

claude codex cursor

One install gets both the skill and the MCP server:

/plugin marketplace add Pythoughts-labs/designer-skill
/plugin install designer-skill@pythoughts-labs

Codex CLI:

codex plugin marketplace add Pythoughts-labs/designer-skill

Then install designer-skill from the pythoughts-labs marketplace in /plugins. The skill appears as designer-skill:designer-skill.

Cursor: install from the marketplace (or open this repo). Plugin ships mcp.json, skills, and /designer-setup · /designer-status commands.

Plug in (any client)

Same one-liner everywhere. No API key. Repo-root mcp.json is the canonical MCP config (plugins reference it too):

{
  "mcpServers": {
    "designer-skill": {
      "command": "npx",
      "args": ["-y", "designer-skill-mcp@latest"]
    }
  }
}

Updates: @latest for newest npm; pin @0.11.0 for teams. Plugin skill content updates separately (/plugin update …). Registry: io.github.pythoughts-labs/designer-skill-mcp (publish via mcp-publisher after npm release).

pythinker codex claude cursor vscode kilo opencode pi

Client Quick install
Pythinkerpythinker mcp add --transport stdio designer-skill -- npx -y designer-skill-mcp · guide
Codex CLIcodex mcp add designer-skill -- npx -y designer-skill-mcp
Claude Codeclaude mcp add designer-skill -- npx -y designer-skill-mcp
CursorCursor plugin or copy mcp.json.cursor/mcp.json
VS Code.vscode/mcp.json ("servers" + "type": "stdio")
Kilo CodeMCP Settings → mcp_settings.json
Open Codeopencode.json (key "mcp")
PiMCP config or native skill path
Per-client config snippets

Pythinker (~/.pythinker/mcp.json)

{ "mcpServers": { "designer-skill": { "command": "npx", "args": ["-y", "designer-skill-mcp@latest"] } } }

Verify: pythinker mcp test designer-skill · TUI: /mcp lists the server, /tools shows mcp_designer-skill_*.

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

[mcp_servers.designer-skill]
command = "npx"
args = ["-y", "designer-skill-mcp"]

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json)

{ "mcpServers": { "designer-skill": { "command": "npx", "args": ["-y", "designer-skill-mcp@latest"] } } }

Cursor (.cursor/mcp.json — same shape as repo-root mcp.json)

VS Code (.vscode/mcp.json, requires 1.99+ or MCP extension)

{
  "servers": {
    "designer-skill": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "designer-skill-mcp"]
    }
  }
}

Kilo Code (MCP Settings → Edit MCP Settings)

{
  "mcpServers": {
    "designer-skill": {
      "command": "npx",
      "args": ["-y", "designer-skill-mcp"],
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

Open Code (opencode.json or ~/.config/opencode/config.json)

{
  "mcp": {
    "designer-skill": {
      "type": "local",
      "command": ["npx", "-y", "designer-skill-mcp"]
    }
  }
}

Pi (MCP config, same JSON as Pythinker, or register the skill natively):

{ "skills": [{ "path": "/path/to/skills/designer-skill/SKILL.md" }] }

Skill-only

skill_copy

cp -r skills/designer-skill/ ~/.claude/skills/designer-skill/   # Claude Code
cp -r skills/designer-skill/ ~/.codex/skills/designer-skill/     # Codex

Invoke with the Skill tool or $designer-skill on design tasks.

Invoke


Use designer-skill to redesign this pricing page without breaking functionality.



get_design_systemdispatch_intentget_reference → work → anti_slop_checklist




reference

Files

File Use when Tier
design-principles.mdTypography, spacing, color, layout, hierarchy (neutral baseline)core
differentiation-playbook.mdHow to be distinctive: inverse test, layout menu, one weird thing, named referencescore
aesthetic-systems.mdPicking a look: 5 systems with palettes, fonts, shadowscore
motion-and-interaction.mdAnimation timing, springs, scroll, reduced-motioncore
engineering-and-performance.mdTokens, a11y, responsive, Core Web Vitals, real-data hardeningcore
avoid-ai-slop.mdBan-list, category-reflex checks, output-completeness contractcore
refactor-and-redesign.mdAudit → diagnose → redesign without breaking behaviorcore
command-playbook.mdIntent → verb dispatch (build, finish, amplify, ship, …)core
interaction-design.mdFitts/Hick/Miller, forms, navigation, errors, loading statesextended
visual-critique.mdSeven-dimension critique instrumentextended
design-systems.mdToken architecture, component specs, themingextended
project-init.mdDiscovery interview, PRODUCT.md, DESIGN.md setupextended
craft-flow.mdShape-then-build pipeline with user gatesextended
live-mode.mdBrowser variant mode: element select, HMR, poll/steer/acceptextended
css-techniques.mdModern CSS cookbook: resets, centering, selectors, logical props, container queries, :has(), clamp()extended

core extended

Intent → verb

Phrase Verb(s) Read
"make it pop"amplify · coloraesthetic-systems, design-principles
"it feels off"check · layoutrefactor-and-redesign, avoid-ai-slop
"production-ready"ship · checkengineering-and-performance
"add some motion"motionmotion-and-interaction
"it looks AI-made"review · brandavoid-ai-slop, aesthetic-systems
"redesign this"check · refreshrefactor-and-redesign, command-playbook

Preflight

1 Scope the surface: brand register (distinctiveness) vs product register (earned familiarity).
2 Commit to one aesthetic system; never mix two signatures on one surface.
3 Run the category-reflex check in avoid-ai-slop.md.
4 Build on design-principles.md + engineering-and-performance.md; add motion last.
5 For existing UI, audit → diagnose → redesign. Do not rebuild from scratch.
6 Run the ship gate (anti_slop_checklist) before declaring done.

tools

Tool Purpose
get_design_systemSKILL.md router (call first)
load_project_contextRead PRODUCT.md / DESIGN.md from the project
get_referenceOne of fifteen reference files by name
list_commandsAll design verbs with descriptions
get_commandFull guidance + references for a specific verb
dispatch_intentMap a request → verb(s) + files to read
detect_antipatternsDeterministic scan (44 rules), no LLM, no API key
get_palette_seedOKLCH brand-seed for greenfield palette work
anti_slop_checklistShip gate: run before finishing any UI work

resources prompt

Resources: designer://skill · designer://reference/{name}

Prompt: design (args: task required, aesthetic optional)


development

cd designer-skill-mcp
npm install
npm run build   # syncs skills/designer-skill/ → assets/skill/, compiles TypeScript
npm test

HTTP mode (remote clients):

node dist/index.js --http --port 3017             # 127.0.0.1 (default)
node dist/index.js --http --port 3017 --host 0.0.0.0  # public: add auth/proxy

Endpoint: http://127.0.0.1:3017/mcp (Streamable HTTP). Includes Origin guard against DNS-rebinding; no built-in auth for public exposure.

Local checkout: replace npx with "command": "node", "args": ["/abs/path/to/designer-skill-mcp/dist/index.js"] in any config above.


MIT package skill