diff --git a/packages/mcp/package.json b/packages/mcp/package.json new file mode 100644 index 0000000..19e3350 --- /dev/null +++ b/packages/mcp/package.json @@ -0,0 +1,30 @@ +{ + "name": "pettyui-mcp", + "version": "0.1.0", + "description": "MCP server for PettyUI — AI interface to the component library", + "type": "module", + "bin": { + "pettyui": "./dist/cli.js", + "pettyui-mcp": "./dist/index.js" + }, + "exports": { + ".": { "import": "./dist/index.js" }, + "./registry": { "import": "./dist/registry.js" } + }, + "scripts": { + "build": "tsc", + "dev": "tsc --watch", + "test": "vitest run", + "start": "node dist/index.js", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@modelcontextprotocol/sdk": "^1.12.0", + "pettyui": "workspace:*", + "zod": "^4.3.6" + }, + "devDependencies": { + "typescript": "^6.0.2", + "vitest": "^4.1.2" + } +} diff --git a/packages/mcp/src/index.ts b/packages/mcp/src/index.ts new file mode 100644 index 0000000..41e40ab --- /dev/null +++ b/packages/mcp/src/index.ts @@ -0,0 +1,7 @@ +#!/usr/bin/env node +import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; +import { createPettyUIServer } from "./server.js"; + +const server = createPettyUIServer(); +const transport = new StdioServerTransport(); +await server.connect(transport); diff --git a/packages/mcp/src/server.ts b/packages/mcp/src/server.ts new file mode 100644 index 0000000..ccdccd2 --- /dev/null +++ b/packages/mcp/src/server.ts @@ -0,0 +1,10 @@ +import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; + +/** Creates and configures the PettyUI MCP server. */ +export function createPettyUIServer(): McpServer { + const server = new McpServer({ + name: "pettyui", + version: "0.1.0", + }); + return server; +} diff --git a/packages/mcp/tsconfig.json b/packages/mcp/tsconfig.json new file mode 100644 index 0000000..dfc43e5 --- /dev/null +++ b/packages/mcp/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "Node16", + "moduleResolution": "Node16", + "outDir": "dist", + "rootDir": "src", + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "strict": true, + "exactOptionalPropertyTypes": true, + "noUncheckedIndexedAccess": true, + "verbatimModuleSyntax": true, + "esModuleInterop": false, + "skipLibCheck": true, + "ignoreDeprecations": "6.0" + }, + "include": ["src"] +}