mozaic-mcp-server 2.5.4 → 2.6.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 CHANGED
@@ -16,6 +16,104 @@ This package provides two complementary tools for working with the Mozaic Design
16
16
  - **🤖 Claude Code Skills** - 7 interactive skills for guided component building and design token usage
17
17
  - **🔌 MCP Server** - Model Context Protocol server with 17 tools for programmatic access to Mozaic resources
18
18
 
19
+ ## HTTP API
20
+
21
+ Public MCP server available at **https://mozaic-mcp.m14i.com**
22
+
23
+ **Endpoints:**
24
+ - `GET /health` - Health check
25
+ - `POST /mcp/list-tools` - List available tools
26
+ - `POST /mcp/call-tool` - Call a specific tool
27
+ - `GET /api` - [Swagger documentation](https://mozaic-mcp.m14i.com/api)
28
+
29
+ **Authentication:** Bearer token required. [Contact me](https://adeo-tech-community.slack.com/archives/D05E2CXR8TB) on Slack for access.
30
+
31
+ **Example:**
32
+ ```bash
33
+ curl -X POST https://mozaic-mcp.m14i.com/mcp/list-tools \
34
+ -H "Authorization: Bearer YOUR_TOKEN" \
35
+ -H "Content-Type: application/json"
36
+ ```
37
+
38
+ <details>
39
+ <summary>Example Response (17 MCP Tools)</summary>
40
+
41
+ ```json
42
+ {
43
+ "tools": [
44
+ {
45
+ "name": "get_design_tokens",
46
+ "description": "Get Mozaic design tokens with CSS/SCSS variables. Categories: colors (brand, semantic, component), typography (font sizes, weights, line heights), spacing (magic unit scale), shadows, borders, screens (breakpoints), grid (gutters)."
47
+ },
48
+ {
49
+ "name": "get_component_info",
50
+ "description": "Get Vue/React component details: props (types, defaults, required), slots, events, and code examples."
51
+ },
52
+ {
53
+ "name": "list_components",
54
+ "description": "List Mozaic Vue/React components by category."
55
+ },
56
+ {
57
+ "name": "generate_vue_component",
58
+ "description": "Generate ready-to-use Vue 3 code with Mozaic components (@mozaic-ds/vue-3)."
59
+ },
60
+ {
61
+ "name": "generate_react_component",
62
+ "description": "Generate ready-to-use React/TSX code with Mozaic components (@mozaic-ds/react)."
63
+ },
64
+ {
65
+ "name": "search_documentation",
66
+ "description": "Search Mozaic Design System documentation for installation guides, component usage, configuration, styling, tokens, patterns, and best practices."
67
+ },
68
+ {
69
+ "name": "get_css_utility",
70
+ "description": "Get CSS utility classes and examples for Mozaic layout and spacing utilities."
71
+ },
72
+ {
73
+ "name": "list_css_utilities",
74
+ "description": "List Mozaic CSS-only utilities (no framework needed)."
75
+ },
76
+ {
77
+ "name": "search_icons",
78
+ "description": "Search Mozaic Design System icons by name or type."
79
+ },
80
+ {
81
+ "name": "get_icon",
82
+ "description": "Get a specific Mozaic icon by name with SVG markup and ready-to-use code for React/Vue."
83
+ },
84
+ {
85
+ "name": "get_install_info",
86
+ "description": "Get installation commands and import statements for a Mozaic component."
87
+ },
88
+ {
89
+ "name": "generate_webcomponent",
90
+ "description": "Generate ready-to-use Web Component code using Mozaic Design System (@adeo/mozaic-web-components)."
91
+ },
92
+ {
93
+ "name": "get_webcomponent_info",
94
+ "description": "Get detailed information about a Mozaic Web Component including attributes, slots, events, CSS custom properties, and usage examples."
95
+ },
96
+ {
97
+ "name": "list_webcomponents",
98
+ "description": "List available Mozaic Web Components by category."
99
+ },
100
+ {
101
+ "name": "generate_freemarker",
102
+ "description": "Generate ready-to-use Freemarker macro code with import statements and configuration examples for Mozaic components."
103
+ },
104
+ {
105
+ "name": "get_freemarker_info",
106
+ "description": "Get detailed information about a Freemarker component including configuration options, CSS classes, and usage examples."
107
+ },
108
+ {
109
+ "name": "list_freemarker",
110
+ "description": "List available Mozaic Freemarker macros by category."
111
+ }
112
+ ]
113
+ }
114
+ ```
115
+ </details>
116
+
19
117
  ### What's Included
20
118
 
21
119
  | Resource Type | Count | Description |
@@ -127,28 +225,6 @@ Claude Code will automatically activate the appropriate skill (Vue or React buil
127
225
  | `get_icon` | Icons | Get icon SVG and framework code |
128
226
  | `get_install_info` | Install | Get npm/yarn/pnpm installation commands |
129
227
 
130
- ### v0.dev Integration (HTTP API)
131
-
132
- The MCP server can be deployed as an HTTP API for v0.dev integration:
133
-
134
- ```bash
135
- # Run locally
136
- DATABASE_PATH=./data/mozaic.db MCP_SERVER_PATH=./dist/index.js AUTH_TOKEN=your-secret-token node dist/main.js
137
-
138
- # Or deploy with Docker
139
- docker build -t mozaic-mcp-server .
140
- docker run -p 3000:3000 -e AUTH_TOKEN=your-secret-token mozaic-mcp-server
141
- ```
142
-
143
- **Endpoints:**
144
- - `GET /health` - Health check
145
- - `POST /mcp` - JSON-RPC endpoint for MCP protocol
146
- - `POST /mcp/list-tools` - List available tools
147
- - `POST /mcp/call-tool` - Call a specific tool
148
- - `GET /api` - Swagger documentation
149
-
150
- All endpoints require bearer token authentication. See deployment documentation for Dokploy integration.
151
-
152
228
  ### Configuration
153
229
 
154
230
  Add to your Claude Code or Claude Desktop settings:
@@ -0,0 +1,155 @@
1
+ import { ConfigService } from "@nestjs/config";
2
+ interface McpToolCall {
3
+ name: string;
4
+ arguments?: Record<string, unknown>;
5
+ }
6
+ interface McpResponse {
7
+ content: Array<{
8
+ type: string;
9
+ text: string;
10
+ }>;
11
+ }
12
+ export declare class McpLightController {
13
+ private configService;
14
+ private db;
15
+ constructor(configService: ConfigService);
16
+ listTools(): {
17
+ tools: ({
18
+ name: string;
19
+ description: string;
20
+ inputSchema: {
21
+ type: string;
22
+ properties: {
23
+ category: {
24
+ type: string;
25
+ enum: string[];
26
+ description: string;
27
+ default?: undefined;
28
+ };
29
+ format: {
30
+ type: string;
31
+ enum: string[];
32
+ default: string;
33
+ description: string;
34
+ };
35
+ name?: undefined;
36
+ includeClasses?: undefined;
37
+ query?: undefined;
38
+ type?: undefined;
39
+ size?: undefined;
40
+ limit?: undefined;
41
+ };
42
+ required: string[];
43
+ };
44
+ } | {
45
+ name: string;
46
+ description: string;
47
+ inputSchema: {
48
+ type: string;
49
+ properties: {
50
+ category: {
51
+ type: string;
52
+ enum: string[];
53
+ default: string;
54
+ description: string;
55
+ };
56
+ format?: undefined;
57
+ name?: undefined;
58
+ includeClasses?: undefined;
59
+ query?: undefined;
60
+ type?: undefined;
61
+ size?: undefined;
62
+ limit?: undefined;
63
+ };
64
+ required: any[];
65
+ };
66
+ } | {
67
+ name: string;
68
+ description: string;
69
+ inputSchema: {
70
+ type: string;
71
+ properties: {
72
+ name: {
73
+ type: string;
74
+ description: string;
75
+ };
76
+ includeClasses: {
77
+ type: string;
78
+ default: boolean;
79
+ description: string;
80
+ };
81
+ category?: undefined;
82
+ format?: undefined;
83
+ query?: undefined;
84
+ type?: undefined;
85
+ size?: undefined;
86
+ limit?: undefined;
87
+ };
88
+ required: string[];
89
+ };
90
+ } | {
91
+ name: string;
92
+ description: string;
93
+ inputSchema: {
94
+ type: string;
95
+ properties: {
96
+ query: {
97
+ type: string;
98
+ description: string;
99
+ };
100
+ type: {
101
+ type: string;
102
+ description: string;
103
+ };
104
+ size: {
105
+ type: string;
106
+ description: string;
107
+ };
108
+ limit: {
109
+ type: string;
110
+ default: number;
111
+ description: string;
112
+ };
113
+ category?: undefined;
114
+ format?: undefined;
115
+ name?: undefined;
116
+ includeClasses?: undefined;
117
+ };
118
+ required: string[];
119
+ };
120
+ } | {
121
+ name: string;
122
+ description: string;
123
+ inputSchema: {
124
+ type: string;
125
+ properties: {
126
+ name: {
127
+ type: string;
128
+ description: string;
129
+ };
130
+ format: {
131
+ type: string;
132
+ enum: string[];
133
+ default: string;
134
+ description: string;
135
+ };
136
+ category?: undefined;
137
+ includeClasses?: undefined;
138
+ query?: undefined;
139
+ type?: undefined;
140
+ size?: undefined;
141
+ limit?: undefined;
142
+ };
143
+ required: string[];
144
+ };
145
+ })[];
146
+ };
147
+ callTool(body: McpToolCall): McpResponse;
148
+ private getDesignTokens;
149
+ private listCssUtilities;
150
+ private getCssUtility;
151
+ private searchIcons;
152
+ private getIcon;
153
+ }
154
+ export {};
155
+ //# sourceMappingURL=mcp-light.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-light.controller.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-light.controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAqD/C,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED,qBAIa,kBAAkB;IAGjB,OAAO,CAAC,aAAa;IAFjC,OAAO,CAAC,EAAE,CAAoB;gBAEV,aAAa,EAAE,aAAa;IAShD,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+HT,QAAQ,CAAS,IAAI,EAAE,WAAW,GAAG,WAAW;IA0BhD,OAAO,CAAC,eAAe;IAuDvB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,aAAa;IAmCrB,OAAO,CAAC,WAAW;IA8CnB,OAAO,CAAC,OAAO;CAuDhB"}
@@ -0,0 +1,400 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { Controller, Post, Body, UseGuards, HttpCode, HttpStatus } from "@nestjs/common";
14
+ import { ApiTags, ApiOperation, ApiBearerAuth } from "@nestjs/swagger";
15
+ import { AuthGuard } from "../auth/auth.guard.js";
16
+ import Database from "better-sqlite3";
17
+ import { ConfigService } from "@nestjs/config";
18
+ import { getTokensByCategory, getCssUtility, listCssUtilities, searchIcons, getIconByName, } from "../db/queries.js";
19
+ import { mapCategoryToDbCategories } from "../parsers/tokens-parser.js";
20
+ import { generateSvg } from "../parsers/icons-parser.js";
21
+ // Token formatting functions
22
+ function formatAsScss(tokens) {
23
+ const lines = [];
24
+ for (const token of tokens) {
25
+ const varName = token.scssVariable || `$${token.path.replace(/\./g, "-")}`;
26
+ lines.push(`${varName}: ${token.valueRaw};`);
27
+ }
28
+ return lines.join("\n");
29
+ }
30
+ function formatAsCss(tokens) {
31
+ const lines = [":root {"];
32
+ for (const token of tokens) {
33
+ const varName = token.cssVariable || `--${token.path.replace(/\./g, "-")}`;
34
+ lines.push(` ${varName}: ${token.valueRaw};`);
35
+ }
36
+ lines.push("}");
37
+ return lines.join("\n");
38
+ }
39
+ function formatAsJs(tokens) {
40
+ const obj = {};
41
+ for (const token of tokens) {
42
+ const parts = token.path.split(".");
43
+ let current = obj;
44
+ for (let i = 0; i < parts.length - 1; i++) {
45
+ const part = parts[i];
46
+ if (!(part in current)) {
47
+ current[part] = {};
48
+ }
49
+ current = current[part];
50
+ }
51
+ current[parts[parts.length - 1]] = token.valueRaw;
52
+ }
53
+ return `export const tokens = ${JSON.stringify(obj, null, 2)};`;
54
+ }
55
+ let McpLightController = class McpLightController {
56
+ configService;
57
+ db;
58
+ constructor(configService) {
59
+ this.configService = configService;
60
+ const dbPath = this.configService.get("database.path");
61
+ this.db = new Database(dbPath, { readonly: true });
62
+ this.db.pragma("journal_mode = WAL");
63
+ }
64
+ listTools() {
65
+ return {
66
+ tools: [
67
+ {
68
+ name: "get_design_tokens",
69
+ description: "Get Mozaic design tokens (colors, typography, spacing, shadows, borders, screens, grid) in various formats (JSON, SCSS, CSS, JS)",
70
+ inputSchema: {
71
+ type: "object",
72
+ properties: {
73
+ category: {
74
+ type: "string",
75
+ enum: [
76
+ "colors",
77
+ "typography",
78
+ "spacing",
79
+ "shadows",
80
+ "borders",
81
+ "screens",
82
+ "grid",
83
+ "all",
84
+ ],
85
+ description: "Token category to retrieve",
86
+ },
87
+ format: {
88
+ type: "string",
89
+ enum: ["json", "scss", "css", "js"],
90
+ default: "json",
91
+ description: "Output format",
92
+ },
93
+ },
94
+ required: ["category"],
95
+ },
96
+ },
97
+ {
98
+ name: "list_css_utilities",
99
+ description: "List Mozaic CSS utilities (Flexy grid, Container, Margin, Padding, Ratio, Scroll). CSS-only, no framework needed.",
100
+ inputSchema: {
101
+ type: "object",
102
+ properties: {
103
+ category: {
104
+ type: "string",
105
+ enum: ["layout", "utility", "all"],
106
+ default: "all",
107
+ description: "Filter: layout (Flexy, Container) or utility (Margin, Padding, etc.)",
108
+ },
109
+ },
110
+ required: [],
111
+ },
112
+ },
113
+ {
114
+ name: "get_css_utility",
115
+ description: "Get CSS utility classes and examples. Available: flexy, container, margin, padding, ratio, scroll.",
116
+ inputSchema: {
117
+ type: "object",
118
+ properties: {
119
+ name: {
120
+ type: "string",
121
+ description: "Utility name (e.g., 'flexy', 'margin', 'padding')",
122
+ },
123
+ includeClasses: {
124
+ type: "boolean",
125
+ default: true,
126
+ description: "Include all CSS class names",
127
+ },
128
+ },
129
+ required: ["name"],
130
+ },
131
+ },
132
+ {
133
+ name: "search_icons",
134
+ description: "Search Mozaic icons by name or type. Returns icon names, types, and available sizes (16, 24, 32, 48, 64).",
135
+ inputSchema: {
136
+ type: "object",
137
+ properties: {
138
+ query: {
139
+ type: "string",
140
+ description: 'Search query (e.g., "arrow", "cart", "user")',
141
+ },
142
+ type: {
143
+ type: "string",
144
+ description: 'Filter by type (e.g., "navigation", "media", "social")',
145
+ },
146
+ size: {
147
+ type: "number",
148
+ description: "Filter by size (16, 24, 32, 48, 64)",
149
+ },
150
+ limit: {
151
+ type: "number",
152
+ default: 20,
153
+ description: "Max results",
154
+ },
155
+ },
156
+ required: ["query"],
157
+ },
158
+ },
159
+ {
160
+ name: "get_icon",
161
+ description: "Get specific icon by name with SVG markup. Use search_icons first to find names.",
162
+ inputSchema: {
163
+ type: "object",
164
+ properties: {
165
+ name: {
166
+ type: "string",
167
+ description: 'Icon name (e.g., "ArrowArrowBottom16", "Cart24")',
168
+ },
169
+ format: {
170
+ type: "string",
171
+ enum: ["svg", "json"],
172
+ default: "json",
173
+ description: "Output: svg (raw SVG) or json (metadata + SVG)",
174
+ },
175
+ },
176
+ required: ["name"],
177
+ },
178
+ },
179
+ ],
180
+ };
181
+ }
182
+ callTool(body) {
183
+ const { name, arguments: args = {} } = body;
184
+ switch (name) {
185
+ case "get_design_tokens":
186
+ return this.getDesignTokens(args);
187
+ case "list_css_utilities":
188
+ return this.listCssUtilities(args);
189
+ case "get_css_utility":
190
+ return this.getCssUtility(args);
191
+ case "search_icons":
192
+ return this.searchIcons(args);
193
+ case "get_icon":
194
+ return this.getIcon(args);
195
+ default:
196
+ return {
197
+ content: [
198
+ {
199
+ type: "text",
200
+ text: JSON.stringify({ error: `Unknown tool: ${name}` }),
201
+ },
202
+ ],
203
+ };
204
+ }
205
+ }
206
+ getDesignTokens(args) {
207
+ const { category, format = "json" } = args;
208
+ let tokens = [];
209
+ if (category === "all") {
210
+ tokens = getTokensByCategory(this.db, "all");
211
+ }
212
+ else {
213
+ const dbCategories = mapCategoryToDbCategories(category);
214
+ for (const cat of dbCategories) {
215
+ tokens.push(...getTokensByCategory(this.db, cat));
216
+ }
217
+ }
218
+ if (tokens.length === 0) {
219
+ return {
220
+ content: [{ type: "text", text: `No tokens found for category: ${category}` }],
221
+ };
222
+ }
223
+ let output;
224
+ switch (format) {
225
+ case "scss":
226
+ output = formatAsScss(tokens);
227
+ break;
228
+ case "css":
229
+ output = formatAsCss(tokens);
230
+ break;
231
+ case "js":
232
+ output = formatAsJs(tokens);
233
+ break;
234
+ case "json":
235
+ default:
236
+ output = JSON.stringify(tokens.map((t) => ({
237
+ category: t.category,
238
+ subcategory: t.subcategory,
239
+ name: t.name,
240
+ path: t.path,
241
+ value: t.valueRaw,
242
+ valueComputed: t.valueComputed,
243
+ cssVariable: t.cssVariable,
244
+ scssVariable: t.scssVariable,
245
+ description: t.description,
246
+ })), null, 2);
247
+ break;
248
+ }
249
+ return { content: [{ type: "text", text: output }] };
250
+ }
251
+ listCssUtilities(args) {
252
+ const { category = "all" } = args;
253
+ const utilities = listCssUtilities(this.db, category);
254
+ const output = utilities.map((u) => ({
255
+ name: u.name,
256
+ slug: u.slug,
257
+ category: u.category,
258
+ description: u.description,
259
+ classCount: u.classCount,
260
+ }));
261
+ return {
262
+ content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
263
+ };
264
+ }
265
+ getCssUtility(args) {
266
+ const { name, includeClasses = true } = args;
267
+ const utility = getCssUtility(this.db, name.toLowerCase());
268
+ if (!utility) {
269
+ return {
270
+ content: [
271
+ {
272
+ type: "text",
273
+ text: JSON.stringify({
274
+ error: `CSS utility not found: ${name}`,
275
+ available: ["flexy", "container", "margin", "padding", "ratio", "scroll"],
276
+ }),
277
+ },
278
+ ],
279
+ };
280
+ }
281
+ const output = {
282
+ name: utility.name,
283
+ category: utility.category,
284
+ description: utility.description,
285
+ classes: includeClasses ? utility.classes : [],
286
+ examples: utility.examples.map((e) => ({
287
+ title: e.title,
288
+ code: e.code,
289
+ })),
290
+ };
291
+ return {
292
+ content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
293
+ };
294
+ }
295
+ searchIcons(args) {
296
+ const { query, type, size, limit = 20, } = args;
297
+ const terms = query
298
+ .trim()
299
+ .split(/\s+/)
300
+ .filter((t) => t.length > 1);
301
+ const ftsQuery = terms.length > 0 ? terms.map((t) => `${t}*`).join(" OR ") : `${query}*`;
302
+ const results = searchIcons(this.db, ftsQuery, { type, size, limit });
303
+ const grouped = new Map();
304
+ for (const icon of results) {
305
+ const key = icon.iconName;
306
+ if (!grouped.has(key)) {
307
+ grouped.set(key, { iconName: icon.iconName, type: icon.type, sizes: [] });
308
+ }
309
+ grouped.get(key)?.sizes.push(icon.size);
310
+ }
311
+ const output = {
312
+ query,
313
+ resultCount: results.length,
314
+ uniqueIcons: grouped.size,
315
+ icons: Array.from(grouped.values()).map((g) => ({
316
+ name: g.iconName,
317
+ type: g.type,
318
+ availableSizes: g.sizes.sort((a, b) => a - b),
319
+ })),
320
+ };
321
+ return {
322
+ content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
323
+ };
324
+ }
325
+ getIcon(args) {
326
+ const { name, format = "json" } = args;
327
+ let icon = getIconByName(this.db, name);
328
+ if (!icon) {
329
+ for (const size of [16, 24, 32, 48, 64]) {
330
+ icon = getIconByName(this.db, `${name}${size}`);
331
+ if (icon)
332
+ break;
333
+ }
334
+ }
335
+ if (!icon) {
336
+ return {
337
+ content: [
338
+ {
339
+ type: "text",
340
+ text: JSON.stringify({
341
+ error: `Icon not found: ${name}`,
342
+ hint: "Use search_icons to find icons",
343
+ }),
344
+ },
345
+ ],
346
+ };
347
+ }
348
+ const parsedIcon = {
349
+ name: icon.name,
350
+ iconName: icon.iconName,
351
+ type: icon.type,
352
+ size: icon.size,
353
+ viewBox: icon.viewBox,
354
+ paths: icon.paths,
355
+ };
356
+ if (format === "svg") {
357
+ return {
358
+ content: [{ type: "text", text: generateSvg(parsedIcon) }],
359
+ };
360
+ }
361
+ const output = {
362
+ name: icon.name,
363
+ iconName: icon.iconName,
364
+ type: icon.type,
365
+ size: icon.size,
366
+ viewBox: icon.viewBox,
367
+ svg: generateSvg(parsedIcon),
368
+ rawPaths: icon.paths,
369
+ };
370
+ return {
371
+ content: [{ type: "text", text: JSON.stringify(output, null, 2) }],
372
+ };
373
+ }
374
+ };
375
+ __decorate([
376
+ Post("list-tools"),
377
+ HttpCode(HttpStatus.OK),
378
+ ApiOperation({ summary: "List available lightweight MCP tools (tokens, utilities, icons only)" }),
379
+ __metadata("design:type", Function),
380
+ __metadata("design:paramtypes", []),
381
+ __metadata("design:returntype", void 0)
382
+ ], McpLightController.prototype, "listTools", null);
383
+ __decorate([
384
+ Post("call-tool"),
385
+ HttpCode(HttpStatus.OK),
386
+ ApiOperation({ summary: "Call a lightweight MCP tool" }),
387
+ __param(0, Body()),
388
+ __metadata("design:type", Function),
389
+ __metadata("design:paramtypes", [Object]),
390
+ __metadata("design:returntype", Object)
391
+ ], McpLightController.prototype, "callTool", null);
392
+ McpLightController = __decorate([
393
+ ApiTags("MCP Light"),
394
+ Controller("mcp/light"),
395
+ UseGuards(AuthGuard),
396
+ ApiBearerAuth(),
397
+ __metadata("design:paramtypes", [ConfigService])
398
+ ], McpLightController);
399
+ export { McpLightController };
400
+ //# sourceMappingURL=mcp-light.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-light.controller.js","sourceRoot":"","sources":["../../src/mcp/mcp-light.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,6BAA6B;AAC7B,SAAS,YAAY,CAAC,MAAe;IACnC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,WAAW,CAAC,MAAe;IAClC,MAAM,KAAK,GAAa,CAAC,SAAS,CAAC,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;IACjD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,UAAU,CAAC,MAAe;IACjC,MAAM,GAAG,GAA4B,EAAE,CAAC;IAExC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,OAAO,GAAG,GAAG,CAAC;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACrB,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAA4B,CAAC;QACrD,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;IACpD,CAAC;IAED,OAAO,yBAAyB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;AAClE,CAAC;AAeM,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAGT;IAFZ,EAAE,CAAoB;IAE9B,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,eAAe,CAAC,CAAC;QAC/D,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACvC,CAAC;IAKD,SAAS;QACP,OAAO;YACL,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,mBAAmB;oBACzB,WAAW,EACT,kIAAkI;oBACpI,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,QAAQ,EAAE;gCACR,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE;oCACJ,QAAQ;oCACR,YAAY;oCACZ,SAAS;oCACT,SAAS;oCACT,SAAS;oCACT,SAAS;oCACT,MAAM;oCACN,KAAK;iCACN;gCACD,WAAW,EAAE,4BAA4B;6BAC1C;4BACD,MAAM,EAAE;gCACN,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;gCACnC,OAAO,EAAE,MAAM;gCACf,WAAW,EAAE,eAAe;6BAC7B;yBACF;wBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;qBACvB;iBACF;gBACD;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,WAAW,EACT,mHAAmH;oBACrH,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,QAAQ,EAAE;gCACR,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC;gCAClC,OAAO,EAAE,KAAK;gCACd,WAAW,EAAE,sEAAsE;6BACpF;yBACF;wBACD,QAAQ,EAAE,EAAE;qBACb;iBACF;gBACD;oBACE,IAAI,EAAE,iBAAiB;oBACvB,WAAW,EACT,oGAAoG;oBACtG,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,mDAAmD;6BACjE;4BACD,cAAc,EAAE;gCACd,IAAI,EAAE,SAAS;gCACf,OAAO,EAAE,IAAI;gCACb,WAAW,EAAE,6BAA6B;6BAC3C;yBACF;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,WAAW,EACT,2GAA2G;oBAC7G,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,8CAA8C;6BAC5D;4BACD,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,wDAAwD;6BACtE;4BACD,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,qCAAqC;6BACnD;4BACD,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,EAAE;gCACX,WAAW,EAAE,aAAa;6BAC3B;yBACF;wBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;qBACpB;iBACF;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,WAAW,EACT,kFAAkF;oBACpF,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,kDAAkD;6BAChE;4BACD,MAAM,EAAE;gCACN,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;gCACrB,OAAO,EAAE,MAAM;gCACf,WAAW,EAAE,gDAAgD;6BAC9D;yBACF;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAKD,QAAQ,CAAS,IAAiB;QAChC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;QAE5C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,mBAAmB;gBACtB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACpC,KAAK,oBAAoB;gBACvB,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACrC,KAAK,iBAAiB;gBACpB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAClC,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAChC,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5B;gBACE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;yBACzD;qBACF;iBACF,CAAC;QACN,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,IAA6B;QACnD,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAA6C,CAAC;QAEpF,IAAI,MAAM,GAAY,EAAE,CAAC;QAEzB,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;YACzD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,QAAQ,EAAE,EAAE,CAAC;aAC/E,CAAC;QACJ,CAAC;QAED,IAAI,MAAc,CAAC;QAEnB,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM;gBACT,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,KAAK;gBACR,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,IAAI;gBACP,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC5B,MAAM;YACR,KAAK,MAAM,CAAC;YACZ;gBACE,MAAM,GAAG,IAAI,CAAC,SAAS,CACrB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACjB,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,CAAC,CAAC,QAAQ;oBACjB,aAAa,EAAE,CAAC,CAAC,aAAa;oBAC9B,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;oBAC5B,WAAW,EAAE,CAAC,CAAC,WAAW;iBAC3B,CAAC,CAAC,EACH,IAAI,EACJ,CAAC,CACF,CAAC;gBACF,MAAM;QACV,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IAEO,gBAAgB,CAAC,IAA6B;QACpD,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,IAA6B,CAAC;QAC3D,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,UAAU,EAAE,CAAC,CAAC,UAAU;SACzB,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,IAA6B;QACjD,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,IAAkD,CAAC;QAE3F,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAE3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,0BAA0B,IAAI,EAAE;4BACvC,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;yBAC1E,CAAC;qBACH;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC9C,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrC,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,IAAI,EAAE,CAAC,CAAC,IAAI;aACb,CAAC,CAAC;SACJ,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,IAA6B;QAC/C,MAAM,EACJ,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,GAAG,EAAE,GACX,GAAG,IAKH,CAAC;QAEF,MAAM,KAAK,GAAG,KAAK;aAChB,IAAI,EAAE;aACN,KAAK,CAAC,KAAK,CAAC;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;QAEzF,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAG,IAAI,GAAG,EAA+D,CAAC;QACvF,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,MAAM,GAAG;YACb,KAAK;YACL,WAAW,EAAE,OAAO,CAAC,MAAM;YAC3B,WAAW,EAAE,OAAO,CAAC,IAAI;YACzB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9C,IAAI,EAAE,CAAC,CAAC,QAAQ;gBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;aAC9C,CAAC,CAAC;SACJ,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC;IAEO,OAAO,CAAC,IAA6B;QAC3C,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAyC,CAAC;QAE5E,IAAI,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAExC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;gBACxC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;gBAChD,IAAI,IAAI;oBAAE,MAAM;YAClB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,mBAAmB,IAAI,EAAE;4BAChC,IAAI,EAAE,gCAAgC;yBACvC,CAAC;qBACH;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;QAEF,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;aAC3D,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,WAAW,CAAC,UAAU,CAAC;YAC5B,QAAQ,EAAE,IAAI,CAAC,KAAK;SACrB,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC;CACF,CAAA;AAzWC;IAHC,IAAI,CAAC,YAAY,CAAC;IAClB,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,EAAE,sEAAsE,EAAE,CAAC;;;;mDA2HjG;AAKD;IAHC,IAAI,CAAC,WAAW,CAAC;IACjB,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;IAC/C,WAAA,IAAI,EAAE,CAAA;;;;kDAwBf;AAnKU,kBAAkB;IAJ9B,OAAO,CAAC,WAAW,CAAC;IACpB,UAAU,CAAC,WAAW,CAAC;IACvB,SAAS,CAAC,SAAS,CAAC;IACpB,aAAa,EAAE;qCAIqB,aAAa;GAHrC,kBAAkB,CAqX9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.module.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp.module.ts"],"names":[],"mappings":"AAIA,qBAKa,SAAS;CAAG"}
1
+ {"version":3,"file":"mcp.module.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp.module.ts"],"names":[],"mappings":"AAKA,qBAKa,SAAS;CAAG"}
@@ -6,12 +6,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { Module } from "@nestjs/common";
8
8
  import { McpController } from "./mcp.controller.js";
9
+ import { McpLightController } from "./mcp-light.controller.js";
9
10
  import { McpService } from "./mcp.service.js";
10
11
  let McpModule = class McpModule {
11
12
  };
12
13
  McpModule = __decorate([
13
14
  Module({
14
- controllers: [McpController],
15
+ controllers: [McpController, McpLightController],
15
16
  providers: [McpService],
16
17
  exports: [McpService],
17
18
  })
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.module.js","sourceRoot":"","sources":["../../src/mcp/mcp.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAOvC,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,SAAS;IALrB,MAAM,CAAC;QACN,WAAW,EAAE,CAAC,aAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,UAAU,CAAC;QACvB,OAAO,EAAE,CAAC,UAAU,CAAC;KACtB,CAAC;GACW,SAAS,CAAG"}
1
+ {"version":3,"file":"mcp.module.js","sourceRoot":"","sources":["../../src/mcp/mcp.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAOvC,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,SAAS;IALrB,MAAM,CAAC;QACN,WAAW,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;QAChD,SAAS,EAAE,CAAC,UAAU,CAAC;QACvB,OAAO,EAAE,CAAC,UAAU,CAAC;KACtB,CAAC;GACW,SAAS,CAAG"}
@@ -8,9 +8,9 @@ import { z } from "zod";
8
8
  declare const _ListFreemarkerInputSchema: z.ZodObject<{
9
9
  category: z.ZodDefault<z.ZodOptional<z.ZodEnum<["all", "action", "form", "feedback", "navigation", "layout", "data-display", "other"]>>>;
10
10
  }, "strip", z.ZodTypeAny, {
11
- category?: "all" | "form" | "navigation" | "feedback" | "layout" | "data-display" | "action" | "other";
11
+ category?: "all" | "layout" | "form" | "navigation" | "feedback" | "data-display" | "action" | "other";
12
12
  }, {
13
- category?: "all" | "form" | "navigation" | "feedback" | "layout" | "data-display" | "action" | "other";
13
+ category?: "all" | "layout" | "form" | "navigation" | "feedback" | "data-display" | "action" | "other";
14
14
  }>;
15
15
  export type ListFreemarkerInput = z.infer<typeof _ListFreemarkerInputSchema>;
16
16
  export declare function handleListFreemarker(db: Database.Database, input: ListFreemarkerInput): {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mozaic-mcp-server",
3
- "version": "2.5.4",
3
+ "version": "2.6.0",
4
4
  "description": "Self-contained Claude Code skills for Mozaic Design System by ADEO",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",