@urbicon-ui/mcp-server 8.20.0 → 8.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -38
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Model Context Protocol server for the Urbicon UI design system. Gives LLMs first-class access to the component catalog, design tokens, recipes, and implementation guidance.
|
|
4
4
|
|
|
5
5
|
> **Status (Option B, 2026-07-10): built, green, not advertised.** The consumer-facing
|
|
6
|
-
> surface is the `urbicon` CLI in [`@urbicon-ui/design`](
|
|
6
|
+
> surface is the `urbicon` CLI in [`@urbicon-ui/design`](https://github.com/urbicon/ui/blob/main/packages/design/README.md) — one dev-dependency,
|
|
7
7
|
> version-pinned, covers the full knowledge/judgment/memory surface locally. This server is
|
|
8
8
|
> the thin **remote adapter** over the same engine (`@urbicon-ui/design-engine`) and content
|
|
9
9
|
> bundle (`@urbicon-ui/design-content`), kept for the launch decision of hosting a public
|
|
@@ -75,50 +75,50 @@ For Cursor: see [Cursor's MCP docs](https://docs.cursor.com/context/model-contex
|
|
|
75
75
|
|
|
76
76
|
## Tools
|
|
77
77
|
|
|
78
|
-
All tools are read-only (`readOnlyHint: true`) — this server never touches the consumer's filesystem. Queries are Zod-validated. (Manifest read/write moved to the `urbicon` CLI in [`@urbicon-ui/design`](
|
|
79
|
-
|
|
80
|
-
| Tool | Purpose
|
|
81
|
-
| ------------------------------ |
|
|
82
|
-
| `find_components` | Fuzzy search across component names, tags, and descriptions. Filterable by package (`blocks`, `table`, `auth`). A hit needs a whole, distinctive query word, or two ordinary ones meeting on one component: when none lands, the answer is "no components found" plus the weak near misses that still scored, which are also listed beside the matches when one of them outranks the lot.
|
|
83
|
-
| `get_component` | Full per-component documentation: props, variants, slots, examples, source link. Optional `section` argument for streamed chunks (overview / examples / variants / api / slots).
|
|
84
|
-
| `get_recipe` | Full production-ready recipe (login-form, dashboard, settings-page, etc.) with component tree, code, and notes.
|
|
85
|
-
| `suggest_implementation` | Takes a natural-language goal and returns a component-tree suggestion, relevant recipes, Style-Patterns guide, and the implementation checklist.
|
|
86
|
-
| `get_implementation_checklist` | Design-Quality checklist (visual weight, intent semantics, spacing, radius, data-driven styling, dominance, identity) — embedded directly so the LLM can self-verify.
|
|
87
|
-
| `get_css_reference` | Full token reference — surface, text, border, intent, feedback tokens, radii, z-index. Includes an explicit "do not invent tokens" guardrail.
|
|
88
|
-
| `find_icons` | Browse the
|
|
89
|
-
| `get_design_principles` | Design heuristics (Layer 5): visual hierarchy, interaction, component selection, layout, accessibility, theming (paradigms, change decision tree). Call first when generating UI. `as="rubric"` returns the 8-criterion 1–5 scoring rubric for judging a generated UI.
|
|
90
|
-
| `get_pattern` | Composition patterns (Layer 4) for page archetypes
|
|
78
|
+
All tools are read-only (`readOnlyHint: true`) — this server never touches the consumer's filesystem. Queries are Zod-validated. (Manifest read/write moved to the `urbicon` CLI in [`@urbicon-ui/design`](https://github.com/urbicon/ui/blob/main/packages/design/README.md); a stateless remote server cannot reach a consumer's repo.)
|
|
79
|
+
|
|
80
|
+
| Tool | Purpose |
|
|
81
|
+
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
82
|
+
| `find_components` | Fuzzy search across component names, tags, and descriptions. Filterable by package (`blocks`, `table`, `auth`). A hit needs a whole, distinctive query word, or two ordinary ones meeting on one component: when none lands, the answer is "no components found" plus the weak near misses that still scored, which are also listed beside the matches when one of them outranks the lot. |
|
|
83
|
+
| `get_component` | Full per-component documentation: props, variants, slots, examples, source link. Optional `section` argument for streamed chunks (overview / examples / variants / api / slots). |
|
|
84
|
+
| `get_recipe` | Full production-ready recipe (login-form, dashboard, settings-page, etc.) with component tree, code, and notes. |
|
|
85
|
+
| `suggest_implementation` | Takes a natural-language goal and returns a component-tree suggestion, relevant recipes, Style-Patterns guide, and the implementation checklist. |
|
|
86
|
+
| `get_implementation_checklist` | Design-Quality checklist (visual weight, intent semantics, spacing, radius, data-driven styling, dominance, identity) — embedded directly so the LLM can self-verify. |
|
|
87
|
+
| `get_css_reference` | Full token reference — surface, text, border, intent, feedback tokens, radii, z-index. Includes an explicit "do not invent tokens" guardrail. |
|
|
88
|
+
| `find_icons` | Browse the 358-icon catalog by keyword, category, or name. |
|
|
89
|
+
| `get_design_principles` | Design heuristics (Layer 5): visual hierarchy, interaction, component selection, layout, accessibility, theming (paradigms, change decision tree). Call first when generating UI. `as="rubric"` returns the 8-criterion 1–5 scoring rubric for judging a generated UI. |
|
|
90
|
+
| `get_pattern` | Composition patterns (Layer 4) for page archetypes. Call it without a `name` to list what the bundle ships. |
|
|
91
91
|
| `validate_design` | Lint generated markup on two axes — **correctness** (raw colours, `dark:`/`focus:` misuse, hardcoded z-index, broken dynamic classes, hallucinated tokens, foreign-library component APIs, unlabelled icon buttons; the blocking gate) and the **craft** axis (20 system-agnostic "looks generic" heuristics: generic fonts, animated dimensions, grey-on-colour, touch targets, …; advisory). Returns a correctness score + a craft score and per-finding fixes for a generate → validate → fix loop. |
|
|
92
92
|
|
|
93
93
|
## Resources
|
|
94
94
|
|
|
95
|
-
| URI
|
|
96
|
-
|
|
|
97
|
-
| `urbicon://catalog`
|
|
98
|
-
| `urbicon://guide/api-grammar`
|
|
99
|
-
| `urbicon://guide/design-quality`
|
|
100
|
-
| `urbicon://guide/component-families` | Six-family component taxonomy - ARIA roles and per-family border-token source
|
|
101
|
-
| `urbicon://guide/customization`
|
|
102
|
-
| `urbicon://guide/auth`
|
|
103
|
-
| `urbicon://guide/style-patterns`
|
|
104
|
-
| `urbicon://guide/tokens`
|
|
95
|
+
| URI | Purpose |
|
|
96
|
+
| ------------------------------------ | --------------------------------------------------------------------------------------- |
|
|
97
|
+
| `urbicon://catalog` | Full component catalog in Markdown — used as the LLM's default context |
|
|
98
|
+
| `urbicon://guide/api-grammar` | Canonical prop conventions (`intent`, `variant`, `size`, callbacks) |
|
|
99
|
+
| `urbicon://guide/design-quality` | AVOID/INSTEAD design-quality patterns — spacing, hierarchy, colour and shape discipline |
|
|
100
|
+
| `urbicon://guide/component-families` | Six-family component taxonomy - ARIA roles and per-family border-token source |
|
|
101
|
+
| `urbicon://guide/customization` | `unstyled` / `slotClasses` / `preset` override system + `BlocksProvider` overrides |
|
|
102
|
+
| `urbicon://guide/auth` | Complete auth reference - served verbatim from the bundled, tarball-canonical `AUTH.md` |
|
|
103
|
+
| `urbicon://guide/style-patterns` | Reusable style presets and composition templates |
|
|
104
|
+
| `urbicon://guide/tokens` | OKLCH token reference, same data as `get_css_reference` |
|
|
105
105
|
|
|
106
106
|
## Prompts
|
|
107
107
|
|
|
108
|
-
The full design-verb table
|
|
108
|
+
The full design-verb table — client-agnostic workflows you invoke from any MCP client to run a multi-step recipe over the four design planes rather than a single-shot generation; see [AI-NATIVE-DX.md § The design loop](https://github.com/urbicon/ui/blob/main/docs/AI-NATIVE-DX.md#the-design-loop) for how the verbs fit the rest of the loop. Each recipe is the same text the local `@urbicon-ui/design` skill ships (single source, bundled via `@urbicon-ui/design-content`): it opens by reading the project's `design.manifest.md`, does the work through the read-only tools above, and closes by writing the decision back.
|
|
109
109
|
|
|
110
|
-
| Prompt | Arguments | Purpose
|
|
111
|
-
| ---------- | ------------------------------ |
|
|
112
|
-
| `onboard` | `brief?` | Greenfield: interview product intent + intake, seed the manifest.
|
|
113
|
-
| `adopt` | `brief?` | Brownfield: infer the design language from code, measure drift, seed the manifest.
|
|
114
|
-
| `compose` | `brief?`, `variants?` | New page via generate → validate → judge → synthesise (variants + rubric + linter gate).
|
|
115
|
-
| `redesign` | `brief?`, `code?`, `variants?` | Diagnose with linter + rubric, fix exactly the flagged weaknesses, preserve behaviour.
|
|
116
|
-
| `polish` | `brief?`, `code?` | Small token-level fixes that raise the craft score without restructuring.
|
|
110
|
+
| Prompt | Arguments | Purpose |
|
|
111
|
+
| ---------- | ------------------------------ | ------------------------------------------------------------------------------------------- |
|
|
112
|
+
| `onboard` | `brief?` | Greenfield: interview product intent + intake, seed the manifest. |
|
|
113
|
+
| `adopt` | `brief?` | Brownfield: infer the design language from code, measure drift, seed the manifest. |
|
|
114
|
+
| `compose` | `brief?`, `variants?` | New page via generate → validate → judge → synthesise (variants + rubric + linter gate). |
|
|
115
|
+
| `redesign` | `brief?`, `code?`, `variants?` | Diagnose with linter + rubric, fix exactly the flagged weaknesses, preserve behaviour. |
|
|
116
|
+
| `polish` | `brief?`, `code?` | Small token-level fixes that raise the craft score without restructuring. |
|
|
117
117
|
| `critique` | `brief?`, `code?` | Judge without changing: correctness + craft + rubric → a prioritised, verb-tagged fix-list. |
|
|
118
|
-
| `fix` | `brief?`, `code?` | Repair correctness defects (raw colours, `dark:`/`focus:`, z-index, hallucinated tokens).
|
|
119
|
-
| `retheme` | `brief?` | Rebrand: change the token layer once, propagate across every affected file.
|
|
120
|
-
| `audit` | `brief?` | App-wide sweep: validate the tree, check pattern cohorts, report drift over time.
|
|
121
|
-
| `migrate` | `brief?` | Roll out a pattern/library change across every site, gated per file.
|
|
118
|
+
| `fix` | `brief?`, `code?` | Repair correctness defects (raw colours, `dark:`/`focus:`, z-index, hallucinated tokens). |
|
|
119
|
+
| `retheme` | `brief?` | Rebrand: change the token layer once, propagate across every affected file. |
|
|
120
|
+
| `audit` | `brief?` | App-wide sweep: validate the tree, check pattern cohorts, report drift over time. |
|
|
121
|
+
| `migrate` | `brief?` | Roll out a pattern/library change across every site, gated per file. |
|
|
122
122
|
|
|
123
123
|
## Server Options
|
|
124
124
|
|
|
@@ -155,7 +155,7 @@ src/
|
|
|
155
155
|
└── utils/ search, format-catalog
|
|
156
156
|
```
|
|
157
157
|
|
|
158
|
-
The server reads its data from the version-pinned [`@urbicon-ui/design-content`](
|
|
158
|
+
The server reads its data from the version-pinned [`@urbicon-ui/design-content`](https://github.com/urbicon/ui/blob/main/packages/design-content/README.md) bundle (built by [`@urbicon-ui/docs-gen`](https://github.com/urbicon/ui/blob/main/packages/docs-gen/README.md): `component-catalog.json` with recipes, per-component `llm.txt`, design-system, guide template, `icons.json`). That means JSDoc in a component's `index.ts` is the **single source of truth**: one edit propagates to the docs site, `llms-full.txt`, and every MCP tool.
|
|
159
159
|
|
|
160
160
|
## Development
|
|
161
161
|
|
|
@@ -179,4 +179,4 @@ Smoke tests for catalog loading, tool wiring, and fuzzy search are already in pl
|
|
|
179
179
|
|
|
180
180
|
## Related
|
|
181
181
|
|
|
182
|
-
- [`@urbicon-ui/docs-gen`](
|
|
182
|
+
- [`@urbicon-ui/docs-gen`](https://github.com/urbicon/ui/blob/main/packages/docs-gen/README.md) — produces the catalog and llms.txt files this server reads
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@urbicon-ui/mcp-server",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.22.0",
|
|
4
4
|
"description": "Model Context Protocol server exposing the Urbicon UI component catalog, recipes and design intelligence to LLM agents",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
42
|
-
"@urbicon-ui/design-content": "8.
|
|
43
|
-
"@urbicon-ui/design-engine": "8.
|
|
42
|
+
"@urbicon-ui/design-content": "8.22.0",
|
|
43
|
+
"@urbicon-ui/design-engine": "8.22.0",
|
|
44
44
|
"zod": "^4.5.4"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|