@ikas/code-components-mcp 1.3.1 → 1.3.2-beta.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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "generatedAt": "2026-05-06T09:18:43.709Z",
2
+ "generatedAt": "2026-05-06T10:03:10.859Z",
3
3
  "functions": [
4
4
  {
5
5
  "name": "fbp_initAdvancedMatching",
@@ -1,5 +1,5 @@
1
1
  {
2
- "generatedAt": "2026-05-06T09:18:43.734Z",
2
+ "generatedAt": "2026-05-06T10:03:10.895Z",
3
3
  "types": [
4
4
  {
5
5
  "name": "IkasProductAttributeDetail",
package/dist/index.js CHANGED
@@ -43,6 +43,10 @@ function loadStorefrontTypes() {
43
43
  }
44
44
  return null;
45
45
  }
46
+ const SUBTREE_KINDS = ["children", "components", "sub-components"];
47
+ function normalizeName(value) {
48
+ return value.trim().replace(/^`+|`+$/g, "").trim();
49
+ }
46
50
  const storefrontData = loadStorefrontData();
47
51
  const frameworkData = loadJsonFile("../data/framework.json");
48
52
  const typesData = loadStorefrontTypes();
@@ -59,29 +63,100 @@ function listSectionTemplateNames() {
59
63
  return [];
60
64
  }
61
65
  }
62
- function loadSectionTemplate(name) {
66
+ function loadSectionMeta(name) {
63
67
  const root = path.join(SECTION_TEMPLATES_DIR, name);
64
68
  if (!fs.existsSync(root))
65
69
  return null;
66
70
  const metaPath = path.join(root, "_meta.json");
67
71
  if (!fs.existsSync(metaPath))
68
72
  return null;
69
- const meta = JSON.parse(fs.readFileSync(metaPath, "utf-8"));
70
- const files = {};
71
- const walk = (dir, rel) => {
72
- for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
73
- if (entry.name === "_meta.json")
74
- continue;
75
- const abs = path.join(dir, entry.name);
76
- const relPath = rel ? `${rel}/${entry.name}` : entry.name;
77
- if (entry.isDirectory())
78
- walk(abs, relPath);
79
- else
80
- files[relPath] = fs.readFileSync(abs, "utf-8");
73
+ return JSON.parse(fs.readFileSync(metaPath, "utf-8"));
74
+ }
75
+ function readDirFilesFlat(dir) {
76
+ const out = {};
77
+ if (!fs.existsSync(dir))
78
+ return out;
79
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
80
+ if (entry.isFile()) {
81
+ out[entry.name] = fs.readFileSync(path.join(dir, entry.name), "utf-8");
81
82
  }
83
+ }
84
+ return out;
85
+ }
86
+ function listDirEntries(dir, kind) {
87
+ if (!fs.existsSync(dir))
88
+ return [];
89
+ return fs
90
+ .readdirSync(dir, { withFileTypes: true })
91
+ .filter((e) => (kind === "file" ? e.isFile() : e.isDirectory()))
92
+ .map((e) => e.name)
93
+ .sort();
94
+ }
95
+ function loadSectionTemplateBundle(name, include) {
96
+ const meta = loadSectionMeta(name);
97
+ if (!meta)
98
+ return null;
99
+ const root = path.join(SECTION_TEMPLATES_DIR, name);
100
+ // Root-level files only (skip _meta.json and skip subdirectories).
101
+ const rootFiles = {};
102
+ for (const entry of fs.readdirSync(root, { withFileTypes: true })) {
103
+ if (entry.name === "_meta.json")
104
+ continue;
105
+ if (entry.isFile()) {
106
+ rootFiles[entry.name] = fs.readFileSync(path.join(root, entry.name), "utf-8");
107
+ }
108
+ }
109
+ const childrenDir = path.join(root, "children");
110
+ const componentsDir = path.join(root, "components");
111
+ const subComponentsDir = path.join(root, "sub-components");
112
+ const utilsDir = path.join(root, "utils");
113
+ const hooksDir = path.join(root, "hooks");
114
+ const bundle = {
115
+ title: meta.title,
116
+ description: meta.description,
117
+ rootFiles,
118
+ childNames: listDirEntries(childrenDir, "directory"),
119
+ componentNames: listDirEntries(componentsDir, "directory"),
120
+ subComponentNames: listDirEntries(subComponentsDir, "directory"),
121
+ utilFiles: listDirEntries(utilsDir, "file"),
122
+ hookFiles: listDirEntries(hooksDir, "file"),
82
123
  };
83
- walk(root, "");
84
- return { title: meta.title, description: meta.description, files };
124
+ if (include?.utils) {
125
+ bundle.utilContents = readDirFilesFlat(utilsDir);
126
+ }
127
+ if (include?.hooks) {
128
+ bundle.hookContents = readDirFilesFlat(hooksDir);
129
+ }
130
+ const collect = (dir, names) => {
131
+ const out = {};
132
+ for (const raw of names) {
133
+ const n = normalizeName(raw);
134
+ const full = path.join(dir, n);
135
+ if (fs.existsSync(full)) {
136
+ out[n] = readDirFilesFlat(full);
137
+ }
138
+ }
139
+ return out;
140
+ };
141
+ if (include?.children && include.children.length > 0) {
142
+ bundle.childContents = collect(childrenDir, include.children);
143
+ }
144
+ if (include?.components && include.components.length > 0) {
145
+ bundle.componentContents = collect(componentsDir, include.components);
146
+ }
147
+ if (include?.subComponents && include.subComponents.length > 0) {
148
+ bundle.subComponentContents = collect(subComponentsDir, include.subComponents);
149
+ }
150
+ return bundle;
151
+ }
152
+ function loadSectionSubtreeItem(section, subtree, name) {
153
+ const dir = path.join(SECTION_TEMPLATES_DIR, section, subtree, name);
154
+ if (!fs.existsSync(dir))
155
+ return null;
156
+ const files = readDirFilesFlat(dir);
157
+ if (Object.keys(files).length === 0)
158
+ return null;
159
+ return { files };
85
160
  }
86
161
  const sectionTemplateNames = listSectionTemplateNames();
87
162
  // --- Search helpers ---
@@ -156,7 +231,9 @@ function searchTypes(query) {
156
231
  function formatFunctionDoc(fn) {
157
232
  const lines = [];
158
233
  lines.push(`## ${fn.name}`);
159
- if (fn.displayName && fn.displayName !== fn.name) {
234
+ if (fn.displayName &&
235
+ fn.displayName !== fn.name &&
236
+ fn.displayName.toLowerCase() !== fn.name.toLowerCase()) {
160
237
  lines.push(`*Also known as: ${fn.displayName}*`);
161
238
  }
162
239
  if (fn.description) {
@@ -182,9 +259,6 @@ function formatFunctionDoc(fn) {
182
259
  if (fn.related.length > 0) {
183
260
  lines.push("", `**Related:** ${fn.related.map((r) => `\`${r}\``).join(", ")}`);
184
261
  }
185
- if (fn.categories.length > 0) {
186
- lines.push("", `**Categories:** ${fn.categories.join(", ")}`);
187
- }
188
262
  return lines.join("\n");
189
263
  }
190
264
  function formatFunctionSummary(fn) {
@@ -192,7 +266,8 @@ function formatFunctionSummary(fn) {
192
266
  const alias = fn.displayName && fn.displayName !== fn.name ? ` (alias: ${fn.displayName})` : "";
193
267
  return `- \`${fn.name}\`${alias} - ${desc}`;
194
268
  }
195
- function formatTypeDefinition(td) {
269
+ function formatTypeDefinition(td, opts = {}) {
270
+ const { includeRelatedFunctions = true } = opts;
196
271
  const lines = [];
197
272
  lines.push(`## ${td.name}`);
198
273
  lines.push("", `**Kind:** ${td.kind} | **Domain:** ${td.domain}`);
@@ -221,7 +296,9 @@ function formatTypeDefinition(td) {
221
296
  lines.push("```");
222
297
  }
223
298
  // Show related functions if available
224
- if (td.relatedFunctions && td.relatedFunctions.length > 0) {
299
+ if (includeRelatedFunctions &&
300
+ td.relatedFunctions &&
301
+ td.relatedFunctions.length > 0) {
225
302
  lines.push("", "### Related Functions", "");
226
303
  for (const fnName of td.relatedFunctions) {
227
304
  const fn = storefrontData.functions.find((f) => f.name === fnName);
@@ -254,7 +331,7 @@ const server = new McpServer({
254
331
  name: "ikas-code-components",
255
332
  version: "0.1.0",
256
333
  }, {
257
- instructions: "You are an AI assistant helping developers build ikas storefront components. CRITICAL RULE: All code examples and section templates provided by this server are API REFERENCE ONLY. You MUST create completely original JSX layouts, CSS class names, and visual designs. Never copy the HTML structure, styling, or class names from examples — only reuse the API patterns (imports, function calls, data access, type handling, form flows, null safety).",
334
+ instructions: "Examples and section templates from this server are API reference only reuse imports, function calls, and data-access patterns; create your own JSX structure, CSS class names, and visual design.",
258
335
  });
259
336
  // Tool: search_docs
260
337
  server.tool("search_docs", "Search across all ikas storefront API docs and framework guides. Returns matching functions and framework topics ranked by relevance.", { query: z.string().describe("Search keyword or phrase") }, async ({ query }) => {
@@ -321,69 +398,85 @@ server.tool("get_function_doc", "Get full documentation for a specific storefron
321
398
  return { content: [{ type: "text", text: formatFunctionDoc(fn) }] };
322
399
  });
323
400
  // Tool: list_functions
324
- server.tool("list_functions", "List all available storefront API functions, optionally filtered by category. Call without arguments to see all categories. Common categories include: ProductDetail, Cart, ProductList, Navigation, Customer, Order, Image, Blog, Brand, Category, Pricing, Form, Validation, Pagination, Filtering, and more.", { category: z.string().optional().describe("Optional category filter (e.g. 'ProductDetail', 'Cart', 'Image', 'Order', 'Blog', 'Brand')") }, async ({ category }) => {
325
- let functions = storefrontData.functions;
326
- if (category) {
327
- const catLower = category.toLowerCase();
328
- functions = functions.filter((f) => f.categories.some((c) => c.toLowerCase() === catLower));
329
- if (functions.length === 0) {
330
- const availableCategories = [...new Set(storefrontData.functions.flatMap((f) => f.categories))];
331
- return {
332
- content: [
333
- {
334
- type: "text",
335
- text: `No functions found in category "${category}". Available categories: ${availableCategories.join(", ")}`,
336
- },
337
- ],
338
- };
339
- }
340
- }
341
- const parts = [];
342
- if (category) {
343
- parts.push(`## ${category} Functions\n`);
344
- }
345
- else {
346
- parts.push(`## All Storefront Functions (${functions.length} total)\n`);
347
- }
348
- // Group by category if no filter
401
+ server.tool("list_functions", "List storefront API functions. Without a `category`, returns category names + counts so you can drill in. With a `category`, returns one-line summaries for that category. Use `limit`/`offset` to paginate.", {
402
+ category: z
403
+ .string()
404
+ .optional()
405
+ .describe("Optional category filter (e.g. 'ProductDetail', 'Cart', 'Image', 'Order')"),
406
+ limit: z
407
+ .number()
408
+ .int()
409
+ .positive()
410
+ .max(200)
411
+ .optional()
412
+ .describe("Max results per page (default 50, max 200)"),
413
+ offset: z
414
+ .number()
415
+ .int()
416
+ .nonnegative()
417
+ .optional()
418
+ .describe("Starting offset for pagination (default 0)"),
419
+ }, async ({ category, limit, offset }) => {
420
+ const pageSize = limit ?? 50;
421
+ const start = offset ?? 0;
349
422
  if (!category) {
423
+ // Category index only — drastically smaller payload than dumping every fn.
350
424
  const byCategory = new Map();
351
- const uncategorized = [];
352
- for (const fn of functions) {
425
+ let uncategorized = 0;
426
+ for (const fn of storefrontData.functions) {
353
427
  if (fn.categories.length === 0) {
354
- uncategorized.push(fn);
428
+ uncategorized += 1;
355
429
  }
356
430
  else {
357
431
  for (const cat of fn.categories) {
358
- const list = byCategory.get(cat) || [];
359
- list.push(fn);
360
- byCategory.set(cat, list);
432
+ byCategory.set(cat, (byCategory.get(cat) ?? 0) + 1);
361
433
  }
362
434
  }
363
435
  }
364
- for (const [cat, fns] of byCategory) {
365
- parts.push(`### ${cat}\n`);
366
- for (const fn of fns) {
367
- parts.push(formatFunctionSummary(fn));
368
- }
369
- parts.push("");
436
+ const sorted = [...byCategory.entries()].sort((a, b) => a[0].localeCompare(b[0]));
437
+ const lines = [
438
+ `## Function Categories (${sorted.length}, ${storefrontData.functions.length} functions total)`,
439
+ "",
440
+ ];
441
+ for (const [cat, count] of sorted) {
442
+ lines.push(`- \`${cat}\` (${count})`);
370
443
  }
371
- if (uncategorized.length > 0) {
372
- parts.push("### Other\n");
373
- for (const fn of uncategorized) {
374
- parts.push(formatFunctionSummary(fn));
375
- }
444
+ if (uncategorized > 0) {
445
+ lines.push(`- \`Other\` (${uncategorized})`);
376
446
  }
447
+ lines.push("", "Call `list_functions(category: \"<name>\")` to see one-line summaries for a category.");
448
+ return { content: [{ type: "text", text: lines.join("\n") }] };
449
+ }
450
+ const catLower = category.toLowerCase();
451
+ const filtered = storefrontData.functions.filter((f) => f.categories.some((c) => c.toLowerCase() === catLower));
452
+ if (filtered.length === 0) {
453
+ const availableCategories = [
454
+ ...new Set(storefrontData.functions.flatMap((f) => f.categories)),
455
+ ].sort();
456
+ return {
457
+ content: [
458
+ {
459
+ type: "text",
460
+ text: `No functions found in category "${category}". Available categories: ${availableCategories.join(", ")}`,
461
+ },
462
+ ],
463
+ };
377
464
  }
378
- else {
379
- for (const fn of functions) {
380
- parts.push(formatFunctionSummary(fn));
381
- }
465
+ const page = filtered.slice(start, start + pageSize);
466
+ const parts = [
467
+ `## ${category} Functions (${filtered.length} total, showing ${start + 1}-${start + page.length})`,
468
+ "",
469
+ ];
470
+ for (const fn of page) {
471
+ parts.push(formatFunctionSummary(fn));
472
+ }
473
+ if (start + page.length < filtered.length) {
474
+ parts.push("", `…and ${filtered.length - (start + page.length)} more. Pass \`offset: ${start + page.length}\` to continue.`);
382
475
  }
383
476
  return { content: [{ type: "text", text: parts.join("\n") }] };
384
477
  });
385
478
  // Tool: get_code_example
386
- server.tool("get_code_example", "Get an API usage reference for a specific task. The code shows correct function calls, imports, and data handling patterns from a real production theme. IMPORTANT: The JSX layout and CSS are illustrative only — create your own original visual design, HTML structure, and styling. Section examples include child components, sub-components, hooks, and utilities. Available examples: header-section, hero-slider-section, category-images-section, footer-section, login-section, register-section, forgot-password-section, recover-password-section, product-slider-section, account-info-section, category-list-section, product-detail-section, features-section, cart-section, blog-post-section, blog-home-section, email-verification-section, rich-text-section, product-reviews-section, not-found-section, add-to-cart, variant-selection, product-pricing, image-handling, navigation, component-renderer, favorites, bundle-products.", { task: z.string().describe("Task description or example ID (e.g. 'add to cart', 'product-detail-section', 'header-section', 'cart-section', 'login-section', 'variant-selection', 'navigation', 'component-renderer', 'bundle-products')") }, async ({ task }) => {
479
+ server.tool("get_code_example", "Get an API usage reference for a specific task. Shows correct function calls, imports, and data-handling patterns from a real production theme. The JSX layout and CSS are illustrative only — create your own original visual design. Call `list_examples()` to see available example IDs.", { task: z.string().describe("Task description or example ID (call `list_examples()` for the full list)") }, async ({ task }) => {
387
480
  const taskLower = task.toLowerCase();
388
481
  // Try exact ID match first
389
482
  let example = storefrontData.codeExamples.find((e) => e.id === taskLower);
@@ -447,7 +540,7 @@ server.tool("get_code_example", "Get an API usage reference for a specific task.
447
540
  return { content: [{ type: "text", text: parts.join("\n") }] };
448
541
  });
449
542
  // Tool: get_framework_guide
450
- server.tool("get_framework_guide", "Get a framework guide on a specific topic. Topics: project-structure, ikas-config, prop-types, component-structure, build-system, css-scoping, global-css, dev-server, imports, sections-vs-components, common-pitfalls, sub-component-patterns, ai-workflow, form-handling, async-data-patterns, product-detail-patterns, product-list-patterns, cart-patterns, account-patterns, header-footer-patterns, review-patterns, slider-overlay-patterns, blog-patterns, navigation-patterns, real-world-architecture, component-renderer-patterns (IkasComponentRenderer slots, filteredComponentIds, parentProps), private-var-map (how sections pass data to children via privateVarMap), page-composition (which sections compose each page type), sub-component-catalog (35+ reusable sub-components: Button, Input, Modal, Toast, ProductCard, etc.), config-advanced-features (filteredComponentIds, privateVarMap, isHeader/isFooter, propGroups, custom enums).", { topic: z.string().describe("Topic key or keyword (e.g. 'ai-workflow', 'common-pitfalls', 'prop-types', 'css-scoping', 'global-css', 'form-handling', 'async-data-patterns', 'imports')") }, async ({ topic }) => {
543
+ server.tool("get_framework_guide", "Get a framework guide on a specific topic (e.g. 'ai-workflow', 'common-pitfalls', 'prop-types', 'css-scoping', 'form-handling'). Call `list_topics()` to see all available topic keys.", { topic: z.string().describe("Topic key or keyword (call `list_topics()` for the full list)") }, async ({ topic }) => {
451
544
  const topicLower = topic.toLowerCase().replace(/\s+/g, "-");
452
545
  // Alias mapping for common alternative topic names
453
546
  const topicAliases = {
@@ -609,10 +702,15 @@ server.tool("get_functions_for_type", "Get full documentation for all utility fu
609
702
  return { content: [{ type: "text", text: parts.join("\n") }] };
610
703
  });
611
704
  // Tool: get_model_guide
612
- server.tool("get_model_guide", "Get a comprehensive guide for working with a storefront model type. Returns the type definition, all utility functions, matching code examples, related types, and import patterns. This is the one-stop-shop tool when you need to work with a model.", {
705
+ server.tool("get_model_guide", "Get an overview of a storefront model type. By default returns the type definition, related function names with one-line summaries, matching example titles/IDs, and related type summaries. Pass `mode: 'full'` to inline full function docs and example code.", {
613
706
  model: z.string().optional().describe("Model type name (e.g. 'IkasImage', 'IkasProduct', 'IkasOrder')"),
614
- name: z.string().optional().describe("Alias for 'model' — model type name (e.g. 'IkasImage', 'IkasProduct', 'IkasOrder')"),
615
- }, async ({ model: modelParam, name: nameParam }) => {
707
+ name: z.string().optional().describe("Alias for 'model'"),
708
+ mode: z
709
+ .enum(["summary", "full"])
710
+ .optional()
711
+ .describe("'summary' (default) returns names + summaries; 'full' inlines full docs and example code"),
712
+ }, async ({ model: modelParam, name: nameParam, mode }) => {
713
+ const resolvedMode = mode ?? "summary";
616
714
  const model = modelParam || nameParam;
617
715
  if (!model) {
618
716
  return {
@@ -647,37 +745,57 @@ server.tool("get_model_guide", "Get a comprehensive guide for working with a sto
647
745
  };
648
746
  }
649
747
  const parts = [`# Model Guide: ${td.name}\n`];
650
- // Section 1: Type definition
651
- parts.push("## 1. Type Definition\n");
652
- parts.push(formatTypeDefinition(td));
748
+ let sectionNum = 1;
749
+ // Section 1: Type definition (related functions are listed separately in the next section)
750
+ parts.push(`## ${sectionNum++}. Type Definition\n`);
751
+ parts.push(formatTypeDefinition(td, { includeRelatedFunctions: false }));
653
752
  parts.push("");
654
753
  // Section 2: Utility functions
655
754
  const relatedFns = td.relatedFunctions || [];
755
+ parts.push(`## ${sectionNum++}. Utility Functions\n`);
656
756
  if (relatedFns.length > 0) {
657
- parts.push("## 2. Utility Functions\n");
658
757
  for (const fnName of relatedFns) {
659
758
  const fn = storefrontData.functions.find((f) => f.name === fnName);
660
759
  if (fn) {
661
- parts.push(formatFunctionDoc(fn));
760
+ if (resolvedMode === "full") {
761
+ parts.push(formatFunctionDoc(fn));
762
+ }
763
+ else {
764
+ parts.push(formatFunctionSummary(fn));
765
+ }
662
766
  parts.push("");
663
767
  }
768
+ else {
769
+ parts.push(`- \`${fnName}\``);
770
+ }
664
771
  }
772
+ if (resolvedMode === "summary") {
773
+ parts.push("Call `get_function_doc(name)` for full docs of any function above.");
774
+ }
775
+ parts.push("");
665
776
  }
666
777
  else {
667
- parts.push("## 2. Utility Functions\n");
668
778
  parts.push("No dedicated utility functions found for this type.\n");
669
779
  }
670
- // Section 3: Code examples
780
+ // Section 3 (when present): Code examples
671
781
  const matchingExamples = storefrontData.codeExamples.filter((ex) => ex.relatedFunctions.some((f) => relatedFns.includes(f)) ||
672
782
  ex.code.includes(td.name));
673
783
  if (matchingExamples.length > 0) {
674
- parts.push("## 3. Code Examples\n");
784
+ parts.push(`## ${sectionNum++}. Code Examples\n`);
675
785
  for (const ex of matchingExamples) {
676
- parts.push(`### ${ex.title}\n`);
677
- parts.push(ex.description);
678
- parts.push("\n```typescript");
679
- parts.push(ex.code);
680
- parts.push("```\n");
786
+ if (resolvedMode === "full") {
787
+ parts.push(`### ${ex.title}\n`);
788
+ parts.push(ex.description);
789
+ parts.push("\n```typescript");
790
+ parts.push(ex.code);
791
+ parts.push("```\n");
792
+ }
793
+ else {
794
+ parts.push(`- \`${ex.id}\` — ${ex.title}`);
795
+ }
796
+ }
797
+ if (resolvedMode === "summary") {
798
+ parts.push("", "Call `get_code_example(id)` to fetch the code for any example above.");
681
799
  }
682
800
  }
683
801
  // Section 4: Related types (types referenced in properties)
@@ -705,7 +823,7 @@ server.tool("get_model_guide", "Get a comprehensive guide for working with a sto
705
823
  }
706
824
  }
707
825
  if (relatedTypeNames.size > 0) {
708
- parts.push("## 4. Related Types\n");
826
+ parts.push(`## ${sectionNum++}. Related Types\n`);
709
827
  for (const name of relatedTypeNames) {
710
828
  const relTd = typesData.types.find((t) => t.name === name);
711
829
  if (relTd) {
@@ -717,8 +835,8 @@ server.tool("get_model_guide", "Get a comprehensive guide for working with a sto
717
835
  }
718
836
  parts.push("");
719
837
  }
720
- // Section 5: Import patterns
721
- parts.push("## 5. Import Patterns\n");
838
+ // Final section: Import patterns
839
+ parts.push(`## ${sectionNum++}. Import Patterns\n`);
722
840
  parts.push("```typescript");
723
841
  parts.push(`import { ${td.name} } from "@ikas/bp-storefront";`);
724
842
  if (relatedFns.length > 0) {
@@ -749,59 +867,94 @@ server.tool("search_types", "Search storefront types and enums by keyword (e.g.
749
867
  return { content: [{ type: "text", text: parts.join("\n") }] };
750
868
  });
751
869
  // Tool: list_types
752
- server.tool("list_types", "List all storefront types and enums, optionally filtered by domain (product, cart, order, customer...) or kind (type, enum).", {
753
- domain: z.string().optional().describe("Optional domain filter (e.g. 'product', 'cart', 'order', 'customer')"),
754
- kind: z.enum(["type", "enum"]).optional().describe("Optional kind filter: 'type' or 'enum'"),
755
- }, async ({ domain, kind }) => {
870
+ server.tool("list_types", "List storefront types and enums. Use `domain` and/or `kind` to filter and `limit`/`offset` to paginate. Without a `domain`, returns domain names + counts so you can drill in.", {
871
+ domain: z
872
+ .string()
873
+ .optional()
874
+ .describe("Optional domain filter (e.g. 'product', 'cart', 'order', 'customer')"),
875
+ kind: z
876
+ .enum(["type", "enum"])
877
+ .optional()
878
+ .describe("Optional kind filter: 'type' or 'enum'"),
879
+ limit: z
880
+ .number()
881
+ .int()
882
+ .positive()
883
+ .max(200)
884
+ .optional()
885
+ .describe("Max results per page (default 50, max 200)"),
886
+ offset: z
887
+ .number()
888
+ .int()
889
+ .nonnegative()
890
+ .optional()
891
+ .describe("Starting offset for pagination (default 0)"),
892
+ }, async ({ domain, kind, limit, offset }) => {
756
893
  if (!typesData) {
757
894
  return {
758
- content: [{ type: "text", text: "Type data not available. Run 'npm run docs:generate' in storefront-docs first." }],
895
+ content: [
896
+ {
897
+ type: "text",
898
+ text: "Type data not available. Run 'npm run docs:generate' in storefront-docs first.",
899
+ },
900
+ ],
759
901
  };
760
902
  }
761
- let types = typesData.types;
762
- if (domain) {
763
- const domainLower = domain.toLowerCase();
764
- types = types.filter((t) => t.domain.toLowerCase() === domainLower);
903
+ const pageSize = limit ?? 50;
904
+ const start = offset ?? 0;
905
+ if (!domain) {
906
+ // Domain index only.
907
+ const byDomain = new Map();
908
+ for (const td of typesData.types) {
909
+ if (kind && td.kind !== kind)
910
+ continue;
911
+ byDomain.set(td.domain, (byDomain.get(td.domain) ?? 0) + 1);
912
+ }
913
+ const sorted = [...byDomain.entries()].sort((a, b) => a[0].localeCompare(b[0]));
914
+ const total = sorted.reduce((acc, [, n]) => acc + n, 0);
915
+ const lines = [
916
+ `## Type Domains (${sorted.length}, ${total} types total${kind ? ` — kind: ${kind}` : ""})`,
917
+ "",
918
+ ];
919
+ for (const [d, count] of sorted) {
920
+ lines.push(`- \`${d}\` (${count})`);
921
+ }
922
+ lines.push("", "Call `list_types(domain: \"<name>\")` to see summaries for a domain.");
923
+ return { content: [{ type: "text", text: lines.join("\n") }] };
765
924
  }
925
+ const domainLower = domain.toLowerCase();
926
+ let types = typesData.types.filter((t) => t.domain.toLowerCase() === domainLower);
766
927
  if (kind) {
767
928
  types = types.filter((t) => t.kind === kind);
768
929
  }
769
930
  if (types.length === 0) {
770
- const availableDomains = [...new Set(typesData.types.map((t) => t.domain))].sort();
931
+ const availableDomains = [
932
+ ...new Set(typesData.types.map((t) => t.domain)),
933
+ ].sort();
771
934
  return {
772
935
  content: [
773
936
  {
774
937
  type: "text",
775
- text: `No types found${domain ? ` in domain "${domain}"` : ""}${kind ? ` of kind "${kind}"` : ""}. Available domains: ${availableDomains.join(", ")}`,
938
+ text: `No types found in domain "${domain}"${kind ? ` of kind "${kind}"` : ""}. Available domains: ${availableDomains.join(", ")}`,
776
939
  },
777
940
  ],
778
941
  };
779
942
  }
780
- const parts = [];
781
- const filterDesc = [domain && `domain: ${domain}`, kind && `kind: ${kind}`].filter(Boolean).join(", ");
782
- parts.push(`## Storefront Types (${types.length} total${filterDesc ? ` — ${filterDesc}` : ""})\n`);
783
- if (!domain) {
784
- // Group by domain
785
- const byDomain = new Map();
786
- for (const td of types) {
787
- const list = byDomain.get(td.domain) || [];
788
- list.push(td);
789
- byDomain.set(td.domain, list);
790
- }
791
- for (const [d, tds] of [...byDomain.entries()].sort((a, b) => a[0].localeCompare(b[0]))) {
792
- parts.push(`### ${d}\n`);
793
- for (const td of tds) {
794
- parts.push(formatTypeSummary(td));
795
- }
796
- parts.push("");
797
- }
943
+ const page = types.slice(start, start + pageSize);
944
+ const filterDesc = [`domain: ${domain}`, kind && `kind: ${kind}`]
945
+ .filter(Boolean)
946
+ .join(", ");
947
+ const parts = [
948
+ `## Storefront Types (${types.length} total — ${filterDesc}, showing ${start + 1}-${start + page.length})`,
949
+ "",
950
+ ];
951
+ for (const td of page) {
952
+ parts.push(formatTypeSummary(td));
798
953
  }
799
- else {
800
- for (const td of types) {
801
- parts.push(formatTypeSummary(td));
802
- }
954
+ if (start + page.length < types.length) {
955
+ parts.push("", `…and ${types.length - (start + page.length)} more. Pass \`offset: ${start + page.length}\` to continue.`);
803
956
  }
804
- parts.push("\nUse `get_type_definition(name)` to get full details for any type.");
957
+ parts.push("", "Use `get_type_definition(name)` to get full details for any type.");
805
958
  return { content: [{ type: "text", text: parts.join("\n") }] };
806
959
  });
807
960
  // Tool: get_prop_types
@@ -821,11 +974,36 @@ server.tool("get_prop_types", "Get all available ikas.config.json prop types wit
821
974
  const sectionTemplateKeys = sectionTemplateNames.length > 0
822
975
  ? sectionTemplateNames
823
976
  : null;
824
- server.tool("get_section_template", `Get a starter template showing the correct API integration pattern for a common section type. Returns the main section files (index.tsx, types.ts, styles.css, ikas-config snippet) PLUS any child components discovered via COMPONENT_LIST/COMPONENT props with filteredComponentIds child implementations are bundled under children/<ComponentName>/ in the output. For example, "account-info-section" bundles AccountOrders, AccountOrderDetail, AccountAddresses, AccountFavorites, and AccountInfoContent; use those children/ entries as canonical references when you need implementations for components that don't have a standalone section template. IMPORTANT: Use the function calls and data access patterns, but create your own original JSX structure, CSS class names, and visual design — do not copy the template's layout or styling. Also returns a ready-to-run CLI command with \`--props\` flag.${sectionTemplateKeys ? ` Available section types: ${sectionTemplateKeys.join(", ")}.` : ""} Workflow: 1) Call this tool, 2) Run the CLI command (creates component + props + types.ts), 3) Write your OWN index.tsx and styles.css using the API patterns from the template. NEVER manually create or edit types.ts.`, {
825
- sectionType: (sectionTemplateKeys
826
- ? z.enum(sectionTemplateKeys)
827
- : z.string()).describe("The section type to generate a template for"),
828
- }, async ({ sectionType }) => {
977
+ server.tool("get_section_template", "Get the root files of a starter section template (index.tsx, types.ts, styles.css, ikas-config-snippet.json). Returns ONLY the section's root files plus the NAMES of any children, components, sub-components, utilities, and hookstheir files are NOT included by default. To view one item's full implementation, call `get_section_child(section, name, kind)` where kind is 'children' (default), 'components', or 'sub-components'. To bundle subtrees inline, pass `include`. Call `list_section_types()` for available section types. Use the API patterns shown create your own JSX structure, CSS class names, and visual design.", {
978
+ sectionType: z
979
+ .string()
980
+ .describe("The section type (call `list_section_types()` for valid values)"),
981
+ include: z
982
+ .object({
983
+ children: z
984
+ .array(z.string())
985
+ .optional()
986
+ .describe("Names of children to bundle inline (otherwise only listed)"),
987
+ components: z
988
+ .array(z.string())
989
+ .optional()
990
+ .describe("Names of components/ items to bundle inline"),
991
+ subComponents: z
992
+ .array(z.string())
993
+ .optional()
994
+ .describe("Names of sub-components/ items to bundle inline"),
995
+ utils: z
996
+ .boolean()
997
+ .optional()
998
+ .describe("If true, bundle utils/ files inline"),
999
+ hooks: z
1000
+ .boolean()
1001
+ .optional()
1002
+ .describe("If true, bundle hooks/ files inline"),
1003
+ })
1004
+ .optional()
1005
+ .describe("Optional opt-in to inline subtrees in the response"),
1006
+ }, async ({ sectionType, include }) => {
829
1007
  if (sectionTemplateNames.length === 0) {
830
1008
  return {
831
1009
  content: [
@@ -836,37 +1014,46 @@ server.tool("get_section_template", `Get a starter template showing the correct
836
1014
  ],
837
1015
  };
838
1016
  }
839
- const template = loadSectionTemplate(sectionType);
840
- if (!template) {
841
- const available = sectionTemplateNames.join(", ");
1017
+ const normalizedType = normalizeName(sectionType);
1018
+ if (!sectionTemplateNames.includes(normalizedType)) {
1019
+ return {
1020
+ content: [
1021
+ {
1022
+ type: "text",
1023
+ text: `Unknown section type "${sectionType}". Call \`list_section_types()\` to see all ${sectionTemplateNames.length} valid types.`,
1024
+ },
1025
+ ],
1026
+ };
1027
+ }
1028
+ const bundle = loadSectionTemplateBundle(normalizedType, include);
1029
+ if (!bundle) {
842
1030
  return {
843
1031
  content: [
844
1032
  {
845
1033
  type: "text",
846
- text: `Section template "${sectionType}" not found. Available: ${available}`,
1034
+ text: `Section template "${sectionType}" not found. Call \`list_section_types()\` to see available types.`,
847
1035
  },
848
1036
  ],
849
1037
  };
850
1038
  }
1039
+ const subtreeFullyIncluded = (names, requested) => names.length > 0 &&
1040
+ requested !== undefined &&
1041
+ names.every((n) => requested.map(normalizeName).includes(n));
1042
+ const childrenFullyIncluded = subtreeFullyIncluded(bundle.childNames, include?.children);
1043
+ const componentsFullyIncluded = subtreeFullyIncluded(bundle.componentNames, include?.components);
1044
+ const subComponentsFullyIncluded = subtreeFullyIncluded(bundle.subComponentNames, include?.subComponents);
1045
+ const anyOutstandingSubtree = (bundle.childNames.length > 0 && !childrenFullyIncluded) ||
1046
+ (bundle.componentNames.length > 0 && !componentsFullyIncluded) ||
1047
+ (bundle.subComponentNames.length > 0 && !subComponentsFullyIncluded);
851
1048
  const parts = [
852
- `## ${template.title} — API Integration Pattern Reference`,
853
- "",
854
- "> **CRITICAL: Do NOT import or use `observer()` on the root component export.** The ikas runtime wraps root renders in MobX `autorun()`, so root components are automatically reactive. Use `export default function ComponentName(...)` — a plain named function export. Only use `observer()` on extracted sub-components that independently read MobX stores.",
855
- "",
856
- "> **DESIGN ORIGINALITY REQUIRED:** This template shows the correct API integration pattern.",
857
- "> You MUST create your own original:",
858
- "> - JSX structure — different HTML hierarchy and layout",
859
- "> - CSS class names — your own naming convention",
860
- "> - Visual design — unique spacing, typography, colors, responsive breakpoints",
861
- "> - UX patterns — your own loading states, empty states, transitions",
862
- ">",
863
- "> KEEP from the template: imports, function calls, data access patterns, form handling flow, type casts, null safety.",
864
- "> REPLACE entirely: all HTML/JSX structure, all CSS rules, all class names, all visual design.",
865
- "",
866
- template.description,
1049
+ `## ${bundle.title} — API Integration Pattern Reference`,
867
1050
  "",
868
1051
  ];
869
- for (const [filename, content] of Object.entries(template.files)) {
1052
+ if (anyOutstandingSubtree) {
1053
+ parts.push("> **PARTIAL TEMPLATE — NOT A COMPLETE IMPLEMENTATION.** The files below are the section's root files only. The section also ships with child components, local components, and/or shared sub-components whose files are **not included** in this response. To view one's full implementation, call `get_section_child(section, name, kind)` for each item you need (kind = `children`, `components`, or `sub-components`). The root `index.tsx` alone is not a complete reference — its imports resolve to files that live in those subtrees.", "");
1054
+ }
1055
+ parts.push("> **Reactivity:** Do NOT wrap the root component export in `observer()`. The ikas runtime wraps root renders in MobX `autorun()`. Use a plain `export default function ComponentName(...)`. Only use `observer()` on extracted sub-components.", "", "> **Originality:** Reuse imports, function calls, data-access patterns, form-handling flow, type casts, and null safety. Replace JSX structure, CSS rules, class names, and visual design with your own.", "", bundle.description, "");
1056
+ const renderFile = (filename, content) => {
870
1057
  const ext = filename.split(".").pop() || "text";
871
1058
  const lang = ext === "tsx" || ext === "ts"
872
1059
  ? "typescript"
@@ -875,22 +1062,67 @@ server.tool("get_section_template", `Get a starter template showing the correct
875
1062
  : ext === "json"
876
1063
  ? "json"
877
1064
  : "text";
878
- // Add inline originality comments to CSS and TSX files
879
1065
  let fileContent = content;
880
1066
  if (ext === "css") {
881
- fileContent = "/* EXAMPLE STYLING — create your own original CSS with different class names and design */\n" + content;
1067
+ fileContent =
1068
+ "/* EXAMPLE STYLING — create your own original CSS with different class names and design */\n" +
1069
+ content;
882
1070
  }
883
1071
  else if (ext === "tsx") {
884
- fileContent = "// EXAMPLE COMPONENT — use the API patterns but create your own JSX structure and layout\n" + content;
1072
+ fileContent =
1073
+ "// EXAMPLE COMPONENT — use the API patterns but create your own JSX structure and layout\n" +
1074
+ content;
885
1075
  }
886
1076
  parts.push(`### ${filename}`, "", `\`\`\`${lang}`, fileContent, "```", "");
1077
+ };
1078
+ for (const [filename, content] of Object.entries(bundle.rootFiles)) {
1079
+ renderFile(filename, content);
1080
+ }
1081
+ const renderSubtreeList = (label, kind, names, fullyIncluded) => {
1082
+ if (names.length === 0 || fullyIncluded)
1083
+ return;
1084
+ parts.push(`**${label} (${names.length}) — call \`get_section_child("${normalizedType}", "<name>", "${kind}")\` to fetch each:**`, names.map((n) => `- ${n}`).join("\n"), "");
1085
+ };
1086
+ renderSubtreeList("Children", "children", bundle.childNames, childrenFullyIncluded);
1087
+ renderSubtreeList("Components", "components", bundle.componentNames, componentsFullyIncluded);
1088
+ renderSubtreeList("Sub-components", "sub-components", bundle.subComponentNames, subComponentsFullyIncluded);
1089
+ if (bundle.utilFiles.length > 0 && !bundle.utilContents) {
1090
+ parts.push("**Utils (call this tool again with `include: { utils: true }` to bundle inline):**", bundle.utilFiles.map((f) => `- utils/${f}`).join("\n"), "");
1091
+ }
1092
+ if (bundle.hookFiles.length > 0 && !bundle.hookContents) {
1093
+ parts.push("**Hooks (call this tool again with `include: { hooks: true }` to bundle inline):**", bundle.hookFiles.map((f) => `- hooks/${f}`).join("\n"), "");
1094
+ }
1095
+ if (bundle.utilContents) {
1096
+ parts.push("---", "", "### utils/", "");
1097
+ for (const [filename, content] of Object.entries(bundle.utilContents)) {
1098
+ renderFile(`utils/${filename}`, content);
1099
+ }
887
1100
  }
1101
+ if (bundle.hookContents) {
1102
+ parts.push("---", "", "### hooks/", "");
1103
+ for (const [filename, content] of Object.entries(bundle.hookContents)) {
1104
+ renderFile(`hooks/${filename}`, content);
1105
+ }
1106
+ }
1107
+ const renderInlineSubtree = (label, contents) => {
1108
+ if (!contents)
1109
+ return;
1110
+ for (const [name, files] of Object.entries(contents)) {
1111
+ parts.push("---", "", `### ${label}/${name}/`, "");
1112
+ for (const [filename, content] of Object.entries(files)) {
1113
+ renderFile(`${label}/${name}/${filename}`, content);
1114
+ }
1115
+ }
1116
+ };
1117
+ renderInlineSubtree("children", bundle.childContents);
1118
+ renderInlineSubtree("components", bundle.componentContents);
1119
+ renderInlineSubtree("sub-components", bundle.subComponentContents);
888
1120
  // Generate a ready-to-run CLI command from the config snippet
889
- const configSnippetStr = template.files["ikas-config-snippet.json"];
1121
+ const configSnippetStr = bundle.rootFiles["ikas-config-snippet.json"];
890
1122
  if (configSnippetStr) {
891
1123
  try {
892
1124
  const configSnippet = JSON.parse(configSnippetStr);
893
- const compName = configSnippet.name || sectionType;
1125
+ const compName = configSnippet.name || normalizedType;
894
1126
  const compType = configSnippet.type || "section";
895
1127
  const propsArr = configSnippet.props || [];
896
1128
  let cliCommand = `npx ikas-component config add-component --name "${compName}" --type ${compType}`;
@@ -900,7 +1132,10 @@ server.tool("get_section_template", `Get a starter template showing the correct
900
1132
  cliCommand += " --isFooter";
901
1133
  if (propsArr.length > 0) {
902
1134
  const propsJson = JSON.stringify(propsArr.map((p) => {
903
- const prop = { name: p.name, type: p.type };
1135
+ const prop = {
1136
+ name: p.name,
1137
+ type: p.type,
1138
+ };
904
1139
  if (p.displayName)
905
1140
  prop.displayName = p.displayName;
906
1141
  if (p.required)
@@ -909,15 +1144,187 @@ server.tool("get_section_template", `Get a starter template showing the correct
909
1144
  }));
910
1145
  cliCommand += ` --props '${propsJson}'`;
911
1146
  }
912
- parts.push("---", "", "### CLI Command (run this first)", "", "```bash", cliCommand, "```", "", "**IMPORTANT: Do NOT manually create or edit `types.ts`** — the CLI command above generates it automatically.", "");
1147
+ parts.push("---", "", "### CLI Command (run this first)", "", "```bash", cliCommand, "```", "", "**Do NOT manually create or edit `types.ts`** — the CLI command above generates it automatically.", "");
913
1148
  }
914
1149
  catch {
915
- // If config snippet parsing fails, skip the CLI command section
1150
+ // ignore parse errors
1151
+ }
1152
+ }
1153
+ return { content: [{ type: "text", text: parts.join("\n") }] };
1154
+ });
1155
+ // Tool: get_section_child
1156
+ server.tool("get_section_child", "Fetch one item's files from a section's children/, components/, or sub-components/ subtree (whichever was advertised by `get_section_template`). Returns the item's index.tsx, styles.css, types.ts, and ikas-config-snippet.json.", {
1157
+ section: z
1158
+ .string()
1159
+ .describe("The parent section type (same value passed to `get_section_template`)"),
1160
+ name: z
1161
+ .string()
1162
+ .optional()
1163
+ .describe("The item name as listed in `get_section_template`'s response (Children/Components/Sub-components)"),
1164
+ child: z
1165
+ .string()
1166
+ .optional()
1167
+ .describe("Alias for `name`"),
1168
+ kind: z
1169
+ .enum(["children", "components", "sub-components"])
1170
+ .optional()
1171
+ .describe("Which subtree to fetch from (default 'children'). Use 'components' for ./components and 'sub-components' for ./sub-components."),
1172
+ }, async ({ section, name, child, kind }) => {
1173
+ if (sectionTemplateNames.length === 0) {
1174
+ return {
1175
+ content: [
1176
+ {
1177
+ type: "text",
1178
+ text: "Section templates data not available.",
1179
+ },
1180
+ ],
1181
+ };
1182
+ }
1183
+ const normalizedSection = normalizeName(section);
1184
+ if (!sectionTemplateNames.includes(normalizedSection)) {
1185
+ return {
1186
+ content: [
1187
+ {
1188
+ type: "text",
1189
+ text: `Unknown section "${section}". Call \`list_section_types()\` to see all valid sections.`,
1190
+ },
1191
+ ],
1192
+ };
1193
+ }
1194
+ const itemRaw = name ?? child;
1195
+ if (!itemRaw) {
1196
+ return {
1197
+ content: [
1198
+ {
1199
+ type: "text",
1200
+ text: "Missing required parameter `name` (the item to fetch).",
1201
+ },
1202
+ ],
1203
+ };
1204
+ }
1205
+ const item = normalizeName(itemRaw);
1206
+ const subtree = kind ?? "children";
1207
+ const childBundle = loadSectionSubtreeItem(normalizedSection, subtree, item);
1208
+ if (!childBundle) {
1209
+ const subtreeDir = path.join(SECTION_TEMPLATES_DIR, normalizedSection, subtree);
1210
+ const available = listDirEntries(subtreeDir, "directory");
1211
+ // If they asked for the default subtree and it's empty, see if a
1212
+ // matching name exists in another subtree.
1213
+ if (kind === undefined) {
1214
+ for (const k of SUBTREE_KINDS) {
1215
+ if (k === subtree)
1216
+ continue;
1217
+ const altDir = path.join(SECTION_TEMPLATES_DIR, normalizedSection, k);
1218
+ const altList = listDirEntries(altDir, "directory");
1219
+ if (altList.includes(item)) {
1220
+ return {
1221
+ content: [
1222
+ {
1223
+ type: "text",
1224
+ text: `"${item}" was found under \`${k}/\` (not the default \`children/\`). Call \`get_section_child(section: "${normalizedSection}", name: "${item}", kind: "${k}")\` to fetch it.`,
1225
+ },
1226
+ ],
1227
+ };
1228
+ }
1229
+ }
1230
+ }
1231
+ if (available.length === 0) {
1232
+ return {
1233
+ content: [
1234
+ {
1235
+ type: "text",
1236
+ text: `Section "${normalizedSection}" has no \`${subtree}/\` subtree.`,
1237
+ },
1238
+ ],
1239
+ };
916
1240
  }
1241
+ return {
1242
+ content: [
1243
+ {
1244
+ type: "text",
1245
+ text: `"${item}" not found under \`${subtree}/\` for section "${normalizedSection}". Available: ${available.join(", ")}.`,
1246
+ },
1247
+ ],
1248
+ };
1249
+ }
1250
+ const parts = [
1251
+ `## ${item} — ${subtree}/ item for ${normalizedSection}`,
1252
+ "",
1253
+ "> **Originality:** Reuse imports, function calls, data-access patterns, and null safety. Replace JSX structure, CSS rules, and class names with your own.",
1254
+ "",
1255
+ ];
1256
+ for (const [filename, content] of Object.entries(childBundle.files)) {
1257
+ const ext = filename.split(".").pop() || "text";
1258
+ const lang = ext === "tsx" || ext === "ts"
1259
+ ? "typescript"
1260
+ : ext === "css"
1261
+ ? "css"
1262
+ : ext === "json"
1263
+ ? "json"
1264
+ : "text";
1265
+ let fileContent = content;
1266
+ if (ext === "css") {
1267
+ fileContent =
1268
+ "/* EXAMPLE STYLING — create your own original CSS with different class names and design */\n" +
1269
+ content;
1270
+ }
1271
+ else if (ext === "tsx") {
1272
+ fileContent =
1273
+ "// EXAMPLE COMPONENT — use the API patterns but create your own JSX structure and layout\n" +
1274
+ content;
1275
+ }
1276
+ parts.push(`### ${filename}`, "", `\`\`\`${lang}`, fileContent, "```", "");
917
1277
  }
918
- parts.push("---", "", "**IMPORTANT:** Do NOT use this template's JSX structure, CSS, or class names. This template only demonstrates the correct API usage pattern. Create a completely original visual design.", "", `Use \`get_framework_guide("${sectionType.includes("product") ? "product-detail-patterns" : "component-structure"}")\` for more patterns and best practices.`);
919
1278
  return { content: [{ type: "text", text: parts.join("\n") }] };
920
1279
  });
1280
+ // Tool: list_examples
1281
+ server.tool("list_examples", "List all available `get_code_example` IDs with their titles. Use this for discovery before calling `get_code_example`.", {}, async () => {
1282
+ const lines = [
1283
+ `## Available Code Examples (${storefrontData.codeExamples.length})`,
1284
+ "",
1285
+ ];
1286
+ for (const ex of storefrontData.codeExamples) {
1287
+ lines.push(`- \`${ex.id}\` — ${ex.title}`);
1288
+ }
1289
+ lines.push("", "Call `get_code_example(id_or_keyword)` to fetch one.");
1290
+ return { content: [{ type: "text", text: lines.join("\n") }] };
1291
+ });
1292
+ // Tool: list_topics
1293
+ server.tool("list_topics", "List all available `get_framework_guide` topic keys with their titles. Use this for discovery before calling `get_framework_guide`.", {}, async () => {
1294
+ const entries = Object.entries(frameworkData.topics);
1295
+ const lines = [
1296
+ `## Available Framework Topics (${entries.length})`,
1297
+ "",
1298
+ ];
1299
+ for (const [key, t] of entries) {
1300
+ lines.push(`- \`${key}\` — ${t.title}`);
1301
+ }
1302
+ lines.push("", "Call `get_framework_guide(topic)` to fetch one.");
1303
+ return { content: [{ type: "text", text: lines.join("\n") }] };
1304
+ });
1305
+ // Tool: list_section_types
1306
+ server.tool("list_section_types", "List all available `get_section_template` section types. Use this for discovery before calling `get_section_template`.", {}, async () => {
1307
+ if (sectionTemplateNames.length === 0) {
1308
+ return {
1309
+ content: [
1310
+ {
1311
+ type: "text",
1312
+ text: "Section templates data not available.",
1313
+ },
1314
+ ],
1315
+ };
1316
+ }
1317
+ const lines = [
1318
+ `## Available Section Types (${sectionTemplateNames.length})`,
1319
+ "",
1320
+ ];
1321
+ for (const name of sectionTemplateNames) {
1322
+ const meta = loadSectionMeta(name);
1323
+ lines.push(`- \`${name}\`${meta ? ` — ${meta.title}` : ""}`);
1324
+ }
1325
+ lines.push("", "Call `get_section_template(sectionType)` to fetch one.");
1326
+ return { content: [{ type: "text", text: lines.join("\n") }] };
1327
+ });
921
1328
  // --- Start server ---
922
1329
  async function main() {
923
1330
  const transport = new StdioServerTransport();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ikas/code-components-mcp",
3
- "version": "1.3.1",
3
+ "version": "1.3.2-beta.1",
4
4
  "description": "MCP server for ikas code components documentation",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",