@udixio/mcp 0.3.2

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.
Files changed (54) hide show
  1. package/README.md +127 -0
  2. package/dist/bundled/components-index.json +369 -0
  3. package/dist/bundled/doc-src/components/Code.astro +14 -0
  4. package/dist/bundled/doc-src/components/ComponentPreview.astro +218 -0
  5. package/dist/bundled/doc-src/data/components/button.overview.mdx +152 -0
  6. package/dist/bundled/doc-src/data/components/card.overview.mdx +91 -0
  7. package/dist/bundled/doc-src/data/components/carousel.overview.mdx +108 -0
  8. package/dist/bundled/doc-src/data/components/checkbox.overview.mdx +172 -0
  9. package/dist/bundled/doc-src/data/components/chip.overview.mdx +216 -0
  10. package/dist/bundled/doc-src/data/components/date-picker.overview.mdx +102 -0
  11. package/dist/bundled/doc-src/data/components/divider.overview.mdx +54 -0
  12. package/dist/bundled/doc-src/data/components/fab-menu.overview.mdx +69 -0
  13. package/dist/bundled/doc-src/data/components/fab.overview.mdx +80 -0
  14. package/dist/bundled/doc-src/data/components/icon-button.overview.mdx +155 -0
  15. package/dist/bundled/doc-src/data/components/navigation-rail.overview.mdx +142 -0
  16. package/dist/bundled/doc-src/data/components/progress-indicator.overview.mdx +49 -0
  17. package/dist/bundled/doc-src/data/components/slider.overview.mdx +64 -0
  18. package/dist/bundled/doc-src/data/components/snackbar.overview.mdx +37 -0
  19. package/dist/bundled/doc-src/data/components/switch.overview.mdx +41 -0
  20. package/dist/bundled/doc-src/data/components/tabs.overview.mdx +171 -0
  21. package/dist/bundled/doc-src/data/components/temp.md +506 -0
  22. package/dist/bundled/doc-src/data/components/text-field.overview.mdx +90 -0
  23. package/dist/bundled/doc-src/data/components/tooltip.overview.mdx +159 -0
  24. package/dist/bundled/doc-src/data/pages/mcp.mdx +92 -0
  25. package/dist/bundled/doc-src/layouts/components.astro +87 -0
  26. package/dist/bundled/doc-src/layouts/layout.astro +55 -0
  27. package/dist/bundled/doc-src/pages/404.astro +18 -0
  28. package/dist/bundled/doc-src/pages/[...url].astro +34 -0
  29. package/dist/bundled/doc-src/pages/animations.astro +322 -0
  30. package/dist/bundled/doc-src/pages/components/[component]/api.astro +89 -0
  31. package/dist/bundled/doc-src/pages/components/[component]/index.astro +5 -0
  32. package/dist/bundled/doc-src/pages/components/[component]/overview.astro +37 -0
  33. package/dist/bundled/doc-src/pages/components/index.astro +130 -0
  34. package/dist/bundled/doc-src/pages/index.astro +5 -0
  35. package/dist/bundled/doc-src/pages/search.astro +12 -0
  36. package/dist/bundled/doc-src/pages/themes.astro +86 -0
  37. package/dist/bundled/theme.json +359 -0
  38. package/dist/cli.mjs +450 -0
  39. package/dist/index.d.ts +4 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.mjs +5 -0
  42. package/dist/lib/cli.d.ts +3 -0
  43. package/dist/lib/cli.d.ts.map +1 -0
  44. package/dist/lib/loaders/components.d.ts +6 -0
  45. package/dist/lib/loaders/components.d.ts.map +1 -0
  46. package/dist/lib/loaders/docs.d.ts +11 -0
  47. package/dist/lib/loaders/docs.d.ts.map +1 -0
  48. package/dist/lib/loaders/theme.d.ts +37 -0
  49. package/dist/lib/loaders/theme.d.ts.map +1 -0
  50. package/dist/lib/main.d.ts +3 -0
  51. package/dist/lib/main.d.ts.map +1 -0
  52. package/dist/lib/mcp.d.ts +3 -0
  53. package/dist/lib/mcp.d.ts.map +1 -0
  54. package/package.json +61 -0
package/README.md ADDED
@@ -0,0 +1,127 @@
1
+ # @udixio/mcp
2
+
3
+ Model Context Protocol (MCP) server for the Udixio UI Design System. This package exposes tools and resources to interact with the UI library documentation and theme tokens.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @udixio/mcp
9
+ # or
10
+ pnpm add @udixio/mcp
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ ### Running the MCP Server
16
+
17
+ ```bash
18
+ # Development
19
+ pnpm dev
20
+
21
+ # Production
22
+ pnpm start
23
+ ```
24
+
25
+ The server runs on `http://localhost:3000/mcp` by default.
26
+
27
+ ### Configuring with Claude Desktop
28
+
29
+ Add to your Claude Desktop configuration (`~/.config/claude/claude_desktop_config.json`):
30
+
31
+ ```json
32
+ {
33
+ "mcpServers": {
34
+ "udixio-ui": {
35
+ "command": "npx",
36
+ "args": ["@udixio/mcp"]
37
+ }
38
+ }
39
+ }
40
+ ```
41
+
42
+ ## Available Tools
43
+
44
+ ### Components
45
+
46
+ | Tool | Description |
47
+ |------|-------------|
48
+ | `listComponents` | Lists all available UI components |
49
+ | `getComponentDoc` | Gets documentation for a specific component (props, examples, links) |
50
+
51
+ ### Documentation
52
+
53
+ | Tool | Description |
54
+ |------|-------------|
55
+ | `searchDocs` | Full-text search in the documentation |
56
+
57
+ ### Theme
58
+
59
+ | Tool | Description |
60
+ |------|-------------|
61
+ | `getThemeTokens` | Gets all theme tokens (config, light/dark colors, palettes) |
62
+ | `getThemeConfig` | Gets theme configuration (sourceColor, contrastLevel, variant) |
63
+ | `listColors` | Lists all available colors in the theme |
64
+ | `getColor` | Gets details of a specific color (hex, tone) in light or dark mode |
65
+ | `listPalettes` | Lists all color palettes (hue, chroma) |
66
+ | `compareColor` | Compares a color between light and dark modes |
67
+
68
+ ## Available Resources
69
+
70
+ | Resource | URI Pattern | Description |
71
+ |----------|-------------|-------------|
72
+ | `doc` | `doc://{path}` | Access documentation files |
73
+ | `theme` | `theme://tokens` | Access complete theme tokens |
74
+
75
+ ## Example Queries
76
+
77
+ ### Get theme configuration
78
+ ```
79
+ Tool: getThemeConfig
80
+ ```
81
+
82
+ ### Get a specific color in dark mode
83
+ ```
84
+ Tool: getColor
85
+ Input: { "name": "primary", "mode": "dark" }
86
+ ```
87
+
88
+ ### Compare primary color between modes
89
+ ```
90
+ Tool: compareColor
91
+ Input: { "name": "primary" }
92
+ ```
93
+
94
+ ### List all available palettes
95
+ ```
96
+ Tool: listPalettes
97
+ ```
98
+
99
+ ## Building
100
+
101
+ ```bash
102
+ pnpm build
103
+ ```
104
+
105
+ ## Development
106
+
107
+ ```bash
108
+ # Run in development mode with hot reload
109
+ pnpm dev
110
+
111
+ # Run tests
112
+ pnpm test
113
+ ```
114
+
115
+ ## Architecture
116
+
117
+ The MCP server bundles documentation and theme data at build time via the `snapshot.ts` script. This allows the package to work standalone without requiring access to the full monorepo.
118
+
119
+ ### Bundled Assets
120
+
121
+ - `bundled/doc-src/` - Documentation source files (md, mdx, astro)
122
+ - `bundled/components-index.json` - Index of all UI components
123
+ - `bundled/theme.json` - Complete theme snapshot with colors and palettes
124
+
125
+ ## License
126
+
127
+ MIT
@@ -0,0 +1,369 @@
1
+ {
2
+ "count": 91,
3
+ "components": [
4
+ {
5
+ "name": "Button",
6
+ "file": "lib/components/Button.tsx"
7
+ },
8
+ {
9
+ "name": "Card",
10
+ "file": "lib/components/Card.tsx"
11
+ },
12
+ {
13
+ "name": "Carousel",
14
+ "file": "lib/components/Carousel.tsx"
15
+ },
16
+ {
17
+ "name": "CarouselItem",
18
+ "file": "lib/components/CarouselItem.tsx"
19
+ },
20
+ {
21
+ "name": "Checkbox",
22
+ "file": "lib/components/Checkbox.tsx"
23
+ },
24
+ {
25
+ "name": "Chip",
26
+ "file": "lib/components/Chip.tsx"
27
+ },
28
+ {
29
+ "name": "Chips",
30
+ "file": "lib/components/Chips.tsx"
31
+ },
32
+ {
33
+ "name": "DatePicker",
34
+ "file": "lib/components/DatePicker.tsx"
35
+ },
36
+ {
37
+ "name": "Divider",
38
+ "file": "lib/components/Divider.tsx"
39
+ },
40
+ {
41
+ "name": "Fab",
42
+ "file": "lib/components/Fab.tsx"
43
+ },
44
+ {
45
+ "name": "FabMenu",
46
+ "file": "lib/components/FabMenu.tsx"
47
+ },
48
+ {
49
+ "name": "IconButton",
50
+ "file": "lib/components/IconButton.tsx"
51
+ },
52
+ {
53
+ "name": "NavigationRail",
54
+ "file": "lib/components/NavigationRail.tsx"
55
+ },
56
+ {
57
+ "name": "NavigationRailSection",
58
+ "file": "lib/components/NavigationRailItem.tsx"
59
+ },
60
+ {
61
+ "name": "NavigationRailItem",
62
+ "file": "lib/components/NavigationRailItem.tsx"
63
+ },
64
+ {
65
+ "name": "ProgressIndicator",
66
+ "file": "lib/components/ProgressIndicator.tsx"
67
+ },
68
+ {
69
+ "name": "SideSheet",
70
+ "file": "lib/components/SideSheet.tsx"
71
+ },
72
+ {
73
+ "name": "Slider",
74
+ "file": "lib/components/Slider.tsx"
75
+ },
76
+ {
77
+ "name": "Snackbar",
78
+ "file": "lib/components/Snackbar.tsx"
79
+ },
80
+ {
81
+ "name": "Switch",
82
+ "file": "lib/components/Switch.tsx"
83
+ },
84
+ {
85
+ "name": "Tab",
86
+ "file": "lib/components/Tab.tsx"
87
+ },
88
+ {
89
+ "name": "TabGroup",
90
+ "file": "lib/components/TabGroup.tsx"
91
+ },
92
+ {
93
+ "name": "TabGroupContext",
94
+ "file": "lib/components/TabGroupContext.tsx"
95
+ },
96
+ {
97
+ "name": "TabPanel",
98
+ "file": "lib/components/TabPanel.tsx"
99
+ },
100
+ {
101
+ "name": "TabPanels",
102
+ "file": "lib/components/TabPanels.tsx"
103
+ },
104
+ {
105
+ "name": "Tabs",
106
+ "file": "lib/components/Tabs.tsx"
107
+ },
108
+ {
109
+ "name": "TextField",
110
+ "file": "lib/components/TextField.tsx"
111
+ },
112
+ {
113
+ "name": "Tooltip",
114
+ "file": "lib/components/Tooltip.tsx"
115
+ },
116
+ {
117
+ "name": "AnimateOnScrollInit",
118
+ "file": "lib/effects/AnimateOnScroll.ts"
119
+ },
120
+ {
121
+ "name": "State",
122
+ "file": "lib/effects/State.tsx"
123
+ },
124
+ {
125
+ "name": "SyncedFixedWrapper",
126
+ "file": "lib/effects/SyncedFixedWrapper.tsx"
127
+ },
128
+ {
129
+ "name": "ThemeProvider",
130
+ "file": "lib/effects/ThemeProvider.tsx"
131
+ },
132
+ {
133
+ "name": "BlockScroll",
134
+ "file": "lib/effects/block-scroll.effect.tsx"
135
+ },
136
+ {
137
+ "name": "CustomScroll",
138
+ "file": "lib/effects/custom-scroll/custom-scroll.effect.tsx"
139
+ },
140
+ {
141
+ "name": "SmoothScroll",
142
+ "file": "lib/effects/smooth-scroll.effect.tsx"
143
+ },
144
+ {
145
+ "name": "Icon",
146
+ "file": "lib/icon/icon.tsx"
147
+ },
148
+ {
149
+ "name": "Filled",
150
+ "file": "stories/action/button.stories.tsx"
151
+ },
152
+ {
153
+ "name": "Outlined",
154
+ "file": "stories/action/button.stories.tsx"
155
+ },
156
+ {
157
+ "name": "Text",
158
+ "file": "stories/action/button.stories.tsx"
159
+ },
160
+ {
161
+ "name": "Elevated",
162
+ "file": "stories/action/button.stories.tsx"
163
+ },
164
+ {
165
+ "name": "Tonal",
166
+ "file": "stories/action/button.stories.tsx"
167
+ },
168
+ {
169
+ "name": "Standard",
170
+ "file": "stories/action/icon-button.stories.tsx"
171
+ },
172
+ {
173
+ "name": "Filled",
174
+ "file": "stories/action/icon-button.stories.tsx"
175
+ },
176
+ {
177
+ "name": "Tonal",
178
+ "file": "stories/action/icon-button.stories.tsx"
179
+ },
180
+ {
181
+ "name": "Outlined",
182
+ "file": "stories/action/icon-button.stories.tsx"
183
+ },
184
+ {
185
+ "name": "StandardToggleable",
186
+ "file": "stories/action/icon-button.stories.tsx"
187
+ },
188
+ {
189
+ "name": "FilledToggleable",
190
+ "file": "stories/action/icon-button.stories.tsx"
191
+ },
192
+ {
193
+ "name": "TonalToggleable",
194
+ "file": "stories/action/icon-button.stories.tsx"
195
+ },
196
+ {
197
+ "name": "OutlinedToggleable",
198
+ "file": "stories/action/icon-button.stories.tsx"
199
+ },
200
+ {
201
+ "name": "LinearDeterminate",
202
+ "file": "stories/communication/ProgressIndicator.stories.tsx"
203
+ },
204
+ {
205
+ "name": "CircularIndeterminate",
206
+ "file": "stories/communication/ProgressIndicator.stories.tsx"
207
+ },
208
+ {
209
+ "name": "SingleLineSnackbar",
210
+ "file": "stories/communication/SnackBar.stories.tsx"
211
+ },
212
+ {
213
+ "name": "Plain",
214
+ "file": "stories/communication/tool-tip.stories.tsx"
215
+ },
216
+ {
217
+ "name": "PlainAuto",
218
+ "file": "stories/communication/tool-tip.stories.tsx"
219
+ },
220
+ {
221
+ "name": "Rich",
222
+ "file": "stories/communication/tool-tip.stories.tsx"
223
+ },
224
+ {
225
+ "name": "RichAuto",
226
+ "file": "stories/communication/tool-tip.stories.tsx"
227
+ },
228
+ {
229
+ "name": "Outlined",
230
+ "file": "stories/containment/card.stories.tsx"
231
+ },
232
+ {
233
+ "name": "Elevated",
234
+ "file": "stories/containment/card.stories.tsx"
235
+ },
236
+ {
237
+ "name": "Filled",
238
+ "file": "stories/containment/card.stories.tsx"
239
+ },
240
+ {
241
+ "name": "Horizontal",
242
+ "file": "stories/containment/divider.stories.tsx"
243
+ },
244
+ {
245
+ "name": "Vertical",
246
+ "file": "stories/containment/divider.stories.tsx"
247
+ },
248
+ {
249
+ "name": "Standard",
250
+ "file": "stories/containment/slide-sheet.stories.tsx"
251
+ },
252
+ {
253
+ "name": "Modal",
254
+ "file": "stories/containment/slide-sheet.stories.tsx"
255
+ },
256
+ {
257
+ "name": "SmoothScrollStory",
258
+ "file": "stories/effect/smooth-scroll.stories.tsx"
259
+ },
260
+ {
261
+ "name": "VerticalIconAndLabel",
262
+ "file": "stories/navigation/navigation-rail/navigation-rail-item.stories.tsx"
263
+ },
264
+ {
265
+ "name": "VerticalIconOnly",
266
+ "file": "stories/navigation/navigation-rail/navigation-rail-item.stories.tsx"
267
+ },
268
+ {
269
+ "name": "HorizontalIconAndLabel",
270
+ "file": "stories/navigation/navigation-rail/navigation-rail-item.stories.tsx"
271
+ },
272
+ {
273
+ "name": "HorizontalLabelOnly",
274
+ "file": "stories/navigation/navigation-rail/navigation-rail-item.stories.tsx"
275
+ },
276
+ {
277
+ "name": "PrimaryLabelOnly",
278
+ "file": "stories/navigation/navigation-rail/navigation-rail.stories.tsx"
279
+ },
280
+ {
281
+ "name": "PrimaryIconAndLabel",
282
+ "file": "stories/navigation/navigation-rail/navigation-rail.stories.tsx"
283
+ },
284
+ {
285
+ "name": "PrimaryIconOnly",
286
+ "file": "stories/navigation/navigation-rail/navigation-rail.stories.tsx"
287
+ },
288
+ {
289
+ "name": "SecondaryLabelOnly",
290
+ "file": "stories/navigation/navigation-rail/navigation-rail.stories.tsx"
291
+ },
292
+ {
293
+ "name": "SecondaryIconAndLabel",
294
+ "file": "stories/navigation/navigation-rail/navigation-rail.stories.tsx"
295
+ },
296
+ {
297
+ "name": "PrimaryIconAndLabel",
298
+ "file": "stories/navigation/tabs/tab.stories.tsx"
299
+ },
300
+ {
301
+ "name": "PrimaryIconOnly",
302
+ "file": "stories/navigation/tabs/tab.stories.tsx"
303
+ },
304
+ {
305
+ "name": "PrimaryLabelOnly",
306
+ "file": "stories/navigation/tabs/tab.stories.tsx"
307
+ },
308
+ {
309
+ "name": "SecondaryLabelOnly",
310
+ "file": "stories/navigation/tabs/tab.stories.tsx"
311
+ },
312
+ {
313
+ "name": "SecondaryIconAndLabel",
314
+ "file": "stories/navigation/tabs/tab.stories.tsx"
315
+ },
316
+ {
317
+ "name": "PrimaryLabelOnly",
318
+ "file": "stories/navigation/tabs/tabs.stories.tsx"
319
+ },
320
+ {
321
+ "name": "PrimaryIconAndLabel",
322
+ "file": "stories/navigation/tabs/tabs.stories.tsx"
323
+ },
324
+ {
325
+ "name": "PrimaryIconOnly",
326
+ "file": "stories/navigation/tabs/tabs.stories.tsx"
327
+ },
328
+ {
329
+ "name": "SecondaryLabelOnly",
330
+ "file": "stories/navigation/tabs/tabs.stories.tsx"
331
+ },
332
+ {
333
+ "name": "SecondaryIconAndLabel",
334
+ "file": "stories/navigation/tabs/tabs.stories.tsx"
335
+ },
336
+ {
337
+ "name": "Filled",
338
+ "file": "stories/text-inputs/text-field.stories.tsx"
339
+ },
340
+ {
341
+ "name": "FilledTrailingIcon",
342
+ "file": "stories/text-inputs/text-field.stories.tsx"
343
+ },
344
+ {
345
+ "name": "FilledLealingIconAndTrailingIcon",
346
+ "file": "stories/text-inputs/text-field.stories.tsx"
347
+ },
348
+ {
349
+ "name": "FilledLealingIcon",
350
+ "file": "stories/text-inputs/text-field.stories.tsx"
351
+ },
352
+ {
353
+ "name": "Outlined",
354
+ "file": "stories/text-inputs/text-field.stories.tsx"
355
+ },
356
+ {
357
+ "name": "OutlinedTrailingIcon",
358
+ "file": "stories/text-inputs/text-field.stories.tsx"
359
+ },
360
+ {
361
+ "name": "OutlinedLealingIconAndTrailingIcon",
362
+ "file": "stories/text-inputs/text-field.stories.tsx"
363
+ },
364
+ {
365
+ "name": "OutlinedLealingIcon",
366
+ "file": "stories/text-inputs/text-field.stories.tsx"
367
+ }
368
+ ]
369
+ }
@@ -0,0 +1,14 @@
1
+ ---
2
+ import { Code } from 'astro:components';
3
+ import { CodePreview } from '@/components/CodePreview';
4
+
5
+ const { 'data-code': code, 'data-language': language } = Astro.props;
6
+ ---
7
+ <CodePreview client:load code={code} preview={language == 'jsx'}>
8
+ <Code code={code} lang={language} defaultColor={false} />
9
+ </CodePreview>
10
+ <style is:global>
11
+ pre {
12
+ text-wrap: auto;
13
+ }
14
+ </style>