@lglab/compose-ui-mcp 0.0.1
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 +11 -0
- package/dist/assets/llms/accordion.md +184 -0
- package/dist/assets/llms/alert-dialog.md +306 -0
- package/dist/assets/llms/autocomplete.md +756 -0
- package/dist/assets/llms/avatar.md +166 -0
- package/dist/assets/llms/badge.md +478 -0
- package/dist/assets/llms/button.md +238 -0
- package/dist/assets/llms/card.md +264 -0
- package/dist/assets/llms/checkbox-group.md +158 -0
- package/dist/assets/llms/checkbox.md +83 -0
- package/dist/assets/llms/collapsible.md +165 -0
- package/dist/assets/llms/combobox.md +1255 -0
- package/dist/assets/llms/context-menu.md +371 -0
- package/dist/assets/llms/dialog.md +592 -0
- package/dist/assets/llms/drawer.md +437 -0
- package/dist/assets/llms/field.md +74 -0
- package/dist/assets/llms/form.md +1931 -0
- package/dist/assets/llms/input.md +47 -0
- package/dist/assets/llms/menu.md +484 -0
- package/dist/assets/llms/menubar.md +804 -0
- package/dist/assets/llms/meter.md +181 -0
- package/dist/assets/llms/navigation-menu.md +187 -0
- package/dist/assets/llms/number-field.md +243 -0
- package/dist/assets/llms/pagination.md +514 -0
- package/dist/assets/llms/popover.md +206 -0
- package/dist/assets/llms/preview-card.md +146 -0
- package/dist/assets/llms/progress.md +60 -0
- package/dist/assets/llms/radio-group.md +105 -0
- package/dist/assets/llms/scroll-area.md +132 -0
- package/dist/assets/llms/select.md +276 -0
- package/dist/assets/llms/separator.md +49 -0
- package/dist/assets/llms/skeleton.md +96 -0
- package/dist/assets/llms/slider.md +161 -0
- package/dist/assets/llms/switch.md +101 -0
- package/dist/assets/llms/table.md +1325 -0
- package/dist/assets/llms/tabs.md +327 -0
- package/dist/assets/llms/textarea.md +38 -0
- package/dist/assets/llms/toast.md +349 -0
- package/dist/assets/llms/toggle-group.md +261 -0
- package/dist/assets/llms/toggle.md +161 -0
- package/dist/assets/llms/toolbar.md +148 -0
- package/dist/assets/llms/tooltip.md +486 -0
- package/dist/assets/llms-full.txt +14515 -0
- package/dist/assets/llms.txt +65 -0
- package/dist/index.d.mts +1 -0
- package/dist/index.mjs +161 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Compose UI
|
|
2
|
+
|
|
3
|
+
> A React component library built on Base UI primitives with Tailwind CSS styling. Install via npm for type-safe, accessible components with modern theming.
|
|
4
|
+
|
|
5
|
+
Compose UI provides pre-styled, accessible React components built on Base UI. It uses Tailwind CSS for styling and class-variance-authority (CVA) for type-safe variants.
|
|
6
|
+
|
|
7
|
+
Key features:
|
|
8
|
+
- Built on @base-ui/react primitives (accessibility handled automatically)
|
|
9
|
+
- Styled with Tailwind CSS using design tokens
|
|
10
|
+
- Type-safe variants with CVA
|
|
11
|
+
- CSS variable-based theming (compatible with Tailwind v4)
|
|
12
|
+
- Tree-shakable ESM exports
|
|
13
|
+
|
|
14
|
+
## Getting Started
|
|
15
|
+
|
|
16
|
+
- [Quick Start](https://compose-ui.dev/overview/quick-start): Installation and basic usage
|
|
17
|
+
|
|
18
|
+
## Components
|
|
19
|
+
|
|
20
|
+
- [Tooltip](https://compose-ui.dev/components/tooltip.md): A popup that appears when an element is hovered or focused, showing a hint for sighted users.
|
|
21
|
+
- [Toolbar](https://compose-ui.dev/components/toolbar.md): A container for grouping a set of buttons and controls.
|
|
22
|
+
- [Toggle Group](https://compose-ui.dev/components/toggle-group.md): Provides a shared state to a series of toggle buttons.
|
|
23
|
+
- [Toggle](https://compose-ui.dev/components/toggle.md): A two-state button that can be on or off.
|
|
24
|
+
- [Toast](https://compose-ui.dev/components/toast.md): A notification message that appears temporarily to provide feedback.
|
|
25
|
+
- [Textarea](https://compose-ui.dev/components/textarea.md): A multi-line text input element.
|
|
26
|
+
- [Tabs](https://compose-ui.dev/components/tabs.md): A component for toggling between related panels on the same page with an animated indicator.
|
|
27
|
+
- [Table](https://compose-ui.dev/components/table.md): A responsive table component with support for variants, alignment, and a useTable hook for declarative column configuration.
|
|
28
|
+
- [Switch](https://compose-ui.dev/components/switch.md): A control that indicates whether a setting is on or off.
|
|
29
|
+
- [Slider](https://compose-ui.dev/components/slider.md): A control for selecting a value or range from a continuous or discrete set of values.
|
|
30
|
+
- [Skeleton](https://compose-ui.dev/components/skeleton.md): A placeholder component for content that is loading. Use className to define custom shapes and sizes.
|
|
31
|
+
- [Separator](https://compose-ui.dev/components/separator.md): A separator element accessible to screen readers.
|
|
32
|
+
- [Select](https://compose-ui.dev/components/select.md): A common form component for choosing a predefined value in a dropdown menu.
|
|
33
|
+
- [Scroll Area](https://compose-ui.dev/components/scroll-area.md): A native scroll container with custom scrollbars for consistent styling across browsers.
|
|
34
|
+
- [Radio Group](https://compose-ui.dev/components/radio-group.md): Provides shared state to a series of radio buttons.
|
|
35
|
+
- [Progress](https://compose-ui.dev/components/progress.md): The progressbar range widget indicates that a request has been received and the application is making progress toward completing the requested action.
|
|
36
|
+
- [Preview Card](https://compose-ui.dev/components/preview-card.md): A card that displays contextual content when hovering a link.
|
|
37
|
+
- [Popover](https://compose-ui.dev/components/popover.md): An accessible popup anchored to a button.
|
|
38
|
+
- [Pagination](https://compose-ui.dev/components/pagination.md): A composable pagination component for navigating through paginated content. Use with tables, search results, or any paginated data.
|
|
39
|
+
- [Number Field](https://compose-ui.dev/components/number-field.md): A numeric input element with increment and decrement buttons, and a scrub area.
|
|
40
|
+
- [Navigation Menu](https://compose-ui.dev/components/navigation-menu.md): A navigation component with support for dropdowns and submenus.
|
|
41
|
+
- [Meter](https://compose-ui.dev/components/meter.md): A graphical display of a numeric value within a defined range.
|
|
42
|
+
- [Menubar](https://compose-ui.dev/components/menubar.md): A horizontal menu bar with dropdown menus for application commands and options.
|
|
43
|
+
- [Menu](https://compose-ui.dev/components/menu.md): A component that displays a list of options on a temporary surface.
|
|
44
|
+
- [Input](https://compose-ui.dev/components/input.md): A single-line text input element.
|
|
45
|
+
- [Form](https://compose-ui.dev/components/form.md): A native form element with consolidated error handling. Examples include useActionState, Zod schema validation, React Hook Form, and TanStack Form integrations.
|
|
46
|
+
- [Field](https://compose-ui.dev/components/field.md): Provides accessible labeling and validation for form controls.
|
|
47
|
+
- [Drawer](https://compose-ui.dev/components/drawer.md): A panel that slides in from the edge of the screen, commonly used for navigation, filters, or supplementary content.
|
|
48
|
+
- [Dialog](https://compose-ui.dev/components/dialog.md): A popup that opens on top of the entire page with a backdrop, commonly used for confirmations, forms, and important messages.
|
|
49
|
+
- [Context Menu](https://compose-ui.dev/components/context-menu.md): A menu triggered by right-click or long press, rendering at the pointer position.
|
|
50
|
+
- [Combobox](https://compose-ui.dev/components/combobox.md): An input combined with a list of predefined items to select, with filtering support.
|
|
51
|
+
- [Collapsible](https://compose-ui.dev/components/collapsible.md): A component that allows content to be expanded or collapsed.
|
|
52
|
+
- [Checkbox Group](https://compose-ui.dev/components/checkbox-group.md): Provides shared state to a series of checkboxes.
|
|
53
|
+
- [Checkbox](https://compose-ui.dev/components/checkbox.md): A control that allows the user to toggle between checked and unchecked states.
|
|
54
|
+
- [Card](https://compose-ui.dev/components/card.md): A flexible card component with support for media, headers, content sections, and footers. Supports both vertical and horizontal layouts with multiple variants.
|
|
55
|
+
- [Button](https://compose-ui.dev/components/button.md): A versatile button component with multiple variants, sizes, and states including loading indicators.
|
|
56
|
+
- [Badge](https://compose-ui.dev/components/badge.md): A versatile badge component for displaying labels, status indicators, and tags with multiple variants, sizes, and shapes.
|
|
57
|
+
- [Avatar](https://compose-ui.dev/components/avatar.md): An easily stylable avatar component for displaying user profile pictures, initials, or fallback content.
|
|
58
|
+
- [Autocomplete](https://compose-ui.dev/components/autocomplete.md): An input field with a filterable dropdown list of suggestions.
|
|
59
|
+
- [Alert Dialog](https://compose-ui.dev/components/alert-dialog.md): A dialog that requires a user response to proceed.
|
|
60
|
+
- [Accordion](https://compose-ui.dev/components/accordion.md): A set of collapsible panels with headings.
|
|
61
|
+
|
|
62
|
+
## Optional
|
|
63
|
+
|
|
64
|
+
- [Base UI Documentation](https://base-ui.com/react/components): Underlying component APIs
|
|
65
|
+
- [GitHub Repository](https://github.com/LGLabGreg/compose-ui): Source code
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
|
+
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
|
+
import { readFile, readdir } from "node:fs/promises";
|
|
5
|
+
import { dirname, resolve } from "node:path";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
|
|
8
|
+
//#region src/resources/components.ts
|
|
9
|
+
const LLMS_DIR = resolve(dirname(fileURLToPath(import.meta.url)), "assets/llms");
|
|
10
|
+
function slugToName(slug) {
|
|
11
|
+
return slug.split("-").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
12
|
+
}
|
|
13
|
+
function parseMarkdownFile(content, slug) {
|
|
14
|
+
const lines = content.split("\n");
|
|
15
|
+
let name = slugToName(slug);
|
|
16
|
+
for (const line of lines) if (line.startsWith("# ")) {
|
|
17
|
+
name = line.slice(2).trim();
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
let description = "";
|
|
21
|
+
let foundHeading = false;
|
|
22
|
+
for (const line of lines) {
|
|
23
|
+
if (line.startsWith("# ")) {
|
|
24
|
+
foundHeading = true;
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (foundHeading && line.trim() !== "") {
|
|
28
|
+
description = line.trim();
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
name,
|
|
34
|
+
slug,
|
|
35
|
+
description,
|
|
36
|
+
documentationUri: `compose-ui://components/${slug}`
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
async function getComponentContent(slug) {
|
|
40
|
+
try {
|
|
41
|
+
return await readFile(resolve(LLMS_DIR, `${slug}.md`), "utf-8");
|
|
42
|
+
} catch {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async function getComponentsList() {
|
|
47
|
+
try {
|
|
48
|
+
const mdFiles = (await readdir(LLMS_DIR)).filter((f) => f.endsWith(".md")).sort();
|
|
49
|
+
const components = [];
|
|
50
|
+
for (const file of mdFiles) {
|
|
51
|
+
const slug = file.replace(".md", "");
|
|
52
|
+
const content = await readFile(resolve(LLMS_DIR, file), "utf-8");
|
|
53
|
+
components.push(parseMarkdownFile(content, slug));
|
|
54
|
+
}
|
|
55
|
+
return components;
|
|
56
|
+
} catch {
|
|
57
|
+
return [];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function registerComponentsResource(server) {
|
|
61
|
+
server.registerResource("components", "compose-ui://components", {
|
|
62
|
+
title: "Compose UI Components",
|
|
63
|
+
description: "List of all Compose UI components with metadata",
|
|
64
|
+
mimeType: "application/json"
|
|
65
|
+
}, async () => ({ contents: [{
|
|
66
|
+
uri: "compose-ui://components",
|
|
67
|
+
mimeType: "application/json",
|
|
68
|
+
text: JSON.stringify(await getComponentsList(), null, 2)
|
|
69
|
+
}] }));
|
|
70
|
+
}
|
|
71
|
+
function registerComponentDocResource(server) {
|
|
72
|
+
server.registerResource("component-doc", new ResourceTemplate("compose-ui://components/{slug}", { list: void 0 }), {
|
|
73
|
+
title: "Component Documentation",
|
|
74
|
+
description: "Full markdown documentation for a Compose UI component",
|
|
75
|
+
mimeType: "text/markdown"
|
|
76
|
+
}, async (uri, variables) => {
|
|
77
|
+
const slug = variables.slug;
|
|
78
|
+
const content = await getComponentContent(slug);
|
|
79
|
+
if (!content) throw new Error(`Component not found: ${slug}`);
|
|
80
|
+
return { contents: [{
|
|
81
|
+
uri: uri.href,
|
|
82
|
+
mimeType: "text/markdown",
|
|
83
|
+
text: content
|
|
84
|
+
}] };
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
//#endregion
|
|
89
|
+
//#region src/resources/overview.ts
|
|
90
|
+
const text = `# Compose UI
|
|
91
|
+
|
|
92
|
+
A React component library built on Base UI primitives with Tailwind CSS v4 styling.
|
|
93
|
+
|
|
94
|
+
## Key Principles
|
|
95
|
+
- Composition over configuration
|
|
96
|
+
- Base UI handles accessibility and behavior
|
|
97
|
+
- Tailwind CSS for styling
|
|
98
|
+
- TypeScript-first
|
|
99
|
+
|
|
100
|
+
## Using This MCP Server
|
|
101
|
+
|
|
102
|
+
To work with Compose UI components, use the available tools:
|
|
103
|
+
|
|
104
|
+
- \`compose-ui://components\`: List of available components
|
|
105
|
+
- \`compose-ui://components/{slug}\`: Documentation for a specific component
|
|
106
|
+
`;
|
|
107
|
+
function registerOverviewResource(server) {
|
|
108
|
+
server.registerResource("overview", "compose-ui://overview", {
|
|
109
|
+
title: "Compose UI Overview",
|
|
110
|
+
description: "Compose UI overview documentation",
|
|
111
|
+
mimeType: "text/plain"
|
|
112
|
+
}, async () => ({ contents: [{
|
|
113
|
+
uri: "compose-ui://overview",
|
|
114
|
+
mimeType: "text/markdown",
|
|
115
|
+
text
|
|
116
|
+
}] }));
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
//#endregion
|
|
120
|
+
//#region src/resources/index.ts
|
|
121
|
+
function registerResources(server) {
|
|
122
|
+
registerOverviewResource(server);
|
|
123
|
+
registerComponentsResource(server);
|
|
124
|
+
registerComponentDocResource(server);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
//#endregion
|
|
128
|
+
//#region src/tools/index.ts
|
|
129
|
+
function registerTools(server) {}
|
|
130
|
+
|
|
131
|
+
//#endregion
|
|
132
|
+
//#region src/server.ts
|
|
133
|
+
function createServer() {
|
|
134
|
+
const server = new McpServer({
|
|
135
|
+
name: "compose-ui-mcp",
|
|
136
|
+
version: "0.1.0"
|
|
137
|
+
});
|
|
138
|
+
registerResources(server);
|
|
139
|
+
/* @__PURE__ */ registerTools(server);
|
|
140
|
+
return server;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
//#endregion
|
|
144
|
+
//#region src/index.ts
|
|
145
|
+
async function main() {
|
|
146
|
+
const server = createServer();
|
|
147
|
+
const transport = new StdioServerTransport();
|
|
148
|
+
await server.connect(transport);
|
|
149
|
+
process.on("SIGINT", async () => {
|
|
150
|
+
await server.close();
|
|
151
|
+
process.exit(0);
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
main().catch((error) => {
|
|
155
|
+
console.error("Server error:", error);
|
|
156
|
+
process.exit(1);
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
//#endregion
|
|
160
|
+
export { };
|
|
161
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/resources/components.ts","../src/resources/overview.ts","../src/resources/index.ts","../src/tools/index.ts","../src/server.ts","../src/index.ts"],"sourcesContent":["import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport { readFile, readdir } from 'node:fs/promises'\nimport { dirname, resolve } from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst __dirname = dirname(fileURLToPath(import.meta.url))\nconst LLMS_DIR = resolve(__dirname, 'assets/llms')\n\ninterface ComponentInfo {\n name: string\n slug: string\n description: string\n documentationUri: string\n}\n\nfunction slugToName(slug: string): string {\n return slug\n .split('-')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ')\n}\n\nfunction parseMarkdownFile(content: string, slug: string): ComponentInfo {\n const lines = content.split('\\n')\n\n // Extract title from first # heading\n let name = slugToName(slug)\n for (const line of lines) {\n if (line.startsWith('# ')) {\n name = line.slice(2).trim()\n break\n }\n }\n\n // Extract description (first non-empty line after the heading)\n let description = ''\n let foundHeading = false\n for (const line of lines) {\n if (line.startsWith('# ')) {\n foundHeading = true\n continue\n }\n if (foundHeading && line.trim() !== '') {\n description = line.trim()\n break\n }\n }\n\n return {\n name,\n slug,\n description,\n documentationUri: `compose-ui://components/${slug}`,\n }\n}\n\nasync function getComponentContent(slug: string): Promise<string | null> {\n try {\n const filePath = resolve(LLMS_DIR, `${slug}.md`)\n return await readFile(filePath, 'utf-8')\n } catch {\n return null\n }\n}\n\nasync function getComponentsList(): Promise<ComponentInfo[]> {\n try {\n const files = await readdir(LLMS_DIR)\n const mdFiles = files.filter((f) => f.endsWith('.md')).sort()\n\n const components: ComponentInfo[] = []\n\n for (const file of mdFiles) {\n const slug = file.replace('.md', '')\n const content = await readFile(resolve(LLMS_DIR, file), 'utf-8')\n components.push(parseMarkdownFile(content, slug))\n }\n\n return components\n } catch {\n return []\n }\n}\n\nexport function registerComponentsResource(server: McpServer): void {\n server.registerResource(\n 'components',\n 'compose-ui://components',\n {\n title: 'Compose UI Components',\n description: 'List of all Compose UI components with metadata',\n mimeType: 'application/json',\n },\n async () => ({\n contents: [\n {\n uri: 'compose-ui://components',\n mimeType: 'application/json',\n text: JSON.stringify(await getComponentsList(), null, 2),\n },\n ],\n }),\n )\n}\n\nexport function registerComponentDocResource(server: McpServer): void {\n server.registerResource(\n 'component-doc',\n new ResourceTemplate('compose-ui://components/{slug}', { list: undefined }),\n {\n title: 'Component Documentation',\n description: 'Full markdown documentation for a Compose UI component',\n mimeType: 'text/markdown',\n },\n async (uri, variables) => {\n const slug = variables.slug as string\n const content = await getComponentContent(slug)\n if (!content) {\n throw new Error(`Component not found: ${slug}`)\n }\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'text/markdown',\n text: content,\n },\n ],\n }\n },\n )\n}\n","import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\n\nconst text = `# Compose UI\n\nA React component library built on Base UI primitives with Tailwind CSS v4 styling.\n\n## Key Principles\n- Composition over configuration\n- Base UI handles accessibility and behavior\n- Tailwind CSS for styling\n- TypeScript-first\n\n## Using This MCP Server\n\nTo work with Compose UI components, use the available tools:\n\n- \\`compose-ui://components\\`: List of available components\n- \\`compose-ui://components/{slug}\\`: Documentation for a specific component\n`\n\nexport function registerOverviewResource(server: McpServer): void {\n server.registerResource(\n 'overview',\n 'compose-ui://overview',\n {\n title: 'Compose UI Overview',\n description: 'Compose UI overview documentation',\n mimeType: 'text/plain',\n },\n async () => ({\n contents: [\n {\n uri: 'compose-ui://overview',\n mimeType: 'text/markdown',\n text,\n },\n ],\n }),\n )\n}\n","import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\n\nimport { registerComponentDocResource, registerComponentsResource } from './components.js'\nimport { registerOverviewResource } from './overview.js'\n\nexport function registerResources(server: McpServer): void {\n registerOverviewResource(server)\n registerComponentsResource(server)\n registerComponentDocResource(server)\n}\n","import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function registerTools(server: McpServer): void {\n // Tools will be registered here\n // Example: registerSearchTool(server)\n}\n","import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\n\nimport { registerResources } from './resources/index.js'\nimport { registerTools } from './tools/index.js'\n\nexport function createServer(): McpServer {\n const server = new McpServer({\n name: 'compose-ui-mcp',\n version: '0.1.0',\n })\n\n registerResources(server)\n registerTools(server)\n\n return server\n}\n","#!/usr/bin/env node\n\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'\n\nimport { createServer } from './server.js'\n\nasync function main() {\n const server = createServer()\n const transport = new StdioServerTransport()\n\n await server.connect(transport)\n\n process.on('SIGINT', async () => {\n await server.close()\n process.exit(0)\n })\n}\n\nmain().catch((error) => {\n console.error('Server error:', error) // eslint-disable-line no-console\n process.exit(1)\n})\n"],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lglab/compose-ui-mcp",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "MCP server exposing compose-ui library documentation to AI tools",
|
|
5
|
+
"author": "LGLab",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/LGLabGreg/compose-ui.git",
|
|
10
|
+
"directory": "packages/compose-ui-mcp"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://compose-ui.dev",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"mcp",
|
|
15
|
+
"model-context-protocol",
|
|
16
|
+
"compose-ui",
|
|
17
|
+
"ai",
|
|
18
|
+
"claude",
|
|
19
|
+
"cursor"
|
|
20
|
+
],
|
|
21
|
+
"type": "module",
|
|
22
|
+
"bin": {
|
|
23
|
+
"compose-ui-mcp": "./dist/index.mjs"
|
|
24
|
+
},
|
|
25
|
+
"scripts": {
|
|
26
|
+
"copy:llms": "tsx scripts/copy-llms.ts",
|
|
27
|
+
"prebuild": "pnpm copy:llms",
|
|
28
|
+
"build": "tsdown",
|
|
29
|
+
"dev": "tsdown --watch",
|
|
30
|
+
"start": "node dist/index.mjs",
|
|
31
|
+
"inspect": "npx @modelcontextprotocol/inspector node dist/index.mjs"
|
|
32
|
+
},
|
|
33
|
+
"main": "./dist/index.mjs",
|
|
34
|
+
"types": "./dist/index.d.ts",
|
|
35
|
+
"exports": {
|
|
36
|
+
".": {
|
|
37
|
+
"import": "./dist/index.mjs",
|
|
38
|
+
"types": "./dist/index.d.ts"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"files": [
|
|
42
|
+
"dist"
|
|
43
|
+
],
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"@modelcontextprotocol/sdk": "^1.25.3",
|
|
46
|
+
"zod": "^4.3.6"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/node": "^25.1.0",
|
|
50
|
+
"tsdown": "^0.12.9",
|
|
51
|
+
"tsx": "^4.21.0",
|
|
52
|
+
"typescript": "~5.9.3"
|
|
53
|
+
}
|
|
54
|
+
}
|