@webmcp-auto-ui/core 2.5.24 → 2.5.26

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.
@@ -26,10 +26,20 @@ export interface WidgetEntry {
26
26
  /** True when the renderer is a plain function (not a framework component). */
27
27
  vanilla: boolean;
28
28
  }
29
+ /** A flow recipe (non-widget): a multi-step procedure registered on a WebMCP server. */
30
+ export interface FlowRecipeEntry {
31
+ name: string;
32
+ description: string;
33
+ when: string;
34
+ body: string;
35
+ group: 'flow';
36
+ }
29
37
  export interface WebMcpServer {
30
38
  readonly name: string;
31
39
  readonly description: string;
32
40
  registerWidget(recipeMarkdown: string, renderer: WidgetRenderer): void;
41
+ /** Register a non-widget recipe (a multi-step flow described in markdown with YAML frontmatter). */
42
+ registerRecipe(recipeMarkdown: string): void;
33
43
  addTool(tool: WebMcpToolDef): void;
34
44
  /** Register a list of recipe summaries exposed to the UI for browsing. */
35
45
  setRecipes(recipes: McpRecipeSummary[]): void;
@@ -42,6 +52,8 @@ export interface WebMcpServer {
42
52
  };
43
53
  getWidget(name: string): WidgetEntry | undefined;
44
54
  listWidgets(): WidgetEntry[];
55
+ getFlowRecipe(name: string): FlowRecipeEntry | undefined;
56
+ listFlowRecipes(): FlowRecipeEntry[];
45
57
  }
46
58
  export interface ParsedFrontmatter {
47
59
  frontmatter: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"webmcp-server.d.ts","sourceRoot":"","sources":["../src/webmcp-server.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAChE;AAED,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,8FAA8F;AAC9F,MAAM,MAAM,cAAc,GACtB,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAChF,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IACvE,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAEnC,0EAA0E;IAC1E,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAE9C,KAAK,IAAI;QACP,QAAQ,EAAE,QAAQ,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,aAAa,EAAE,CAAC;QACvB,OAAO,EAAE,gBAAgB,EAAE,CAAC;KAC7B,CAAC;IAEF,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IACjD,WAAW,IAAI,WAAW,EAAE,CAAC;CAC9B;AAMD,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAgBpE;AAsMD;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,WAAW,EACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,YAAY,EAAE,GACtB,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CA8BrB;AA8CD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,mBAAmB,GAC3B,YAAY,CAyLd"}
1
+ {"version":3,"file":"webmcp-server.d.ts","sourceRoot":"","sources":["../src/webmcp-server.ts"],"names":[],"mappings":"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"}
@@ -287,6 +287,7 @@ function sanitizeImageUrls(obj) {
287
287
  }
288
288
  export function createWebMcpServer(name, options) {
289
289
  const widgets = new Map();
290
+ const flowRecipes = new Map();
290
291
  const customTools = [];
291
292
  let builtinTools = null;
292
293
  let currentRecipes = [];
@@ -313,40 +314,48 @@ export function createWebMcpServer(name, options) {
313
314
  },
314
315
  execute: async (params) => {
315
316
  const query = params.query?.toLowerCase();
316
- const all = [...widgets.values()].map(w => ({ name: w.name, description: w.description, group: w.group }));
317
- return all.filter(w => !query || w.name.includes(query) || w.description.toLowerCase().includes(query));
317
+ const widgetSummaries = [...widgets.values()].map(w => ({ name: w.name, description: w.description, group: w.group ?? 'widget' }));
318
+ const flowSummaries = [...flowRecipes.values()].map(f => ({ name: f.name, description: f.description, group: f.group, when: f.when }));
319
+ const all = [...widgetSummaries, ...flowSummaries];
320
+ return all.filter(r => !query || r.name.toLowerCase().includes(query) || (r.description?.toLowerCase().includes(query) ?? false));
318
321
  },
319
322
  },
320
323
  {
321
324
  name: 'list_recipes',
322
- description: 'List ALL available widget recipes with their name, description, and group. Use this when search_recipes returned no results, or when the user wants to explore all display capabilities. Returns the complete catalog of widgets useful for choosing the best visualization when the exact widget type is unclear. Does not accept any parameters.',
325
+ description: 'List ALL available recipes — both widget recipes (display primitives) and flow recipes (multi-step procedures). Use this when search_recipes returned no results, or when the user wants to explore all available capabilities. Returns the complete catalog with {name, description, group} for each entry; the `group` field is "widget" for display primitives and "flow" for multi-step procedures. Does not accept any parameters.',
323
326
  inputSchema: {
324
327
  type: 'object',
325
328
  properties: {},
326
329
  additionalProperties: false,
327
330
  },
328
331
  execute: async () => {
329
- return [...widgets.values()].map(w => ({ name: w.name, description: w.description, group: w.group }));
332
+ const widgetSummaries = [...widgets.values()].map(w => ({ name: w.name, description: w.description, group: w.group ?? 'widget' }));
333
+ const flowSummaries = [...flowRecipes.values()].map(f => ({ name: f.name, description: f.description, group: f.group, when: f.when }));
334
+ return [...widgetSummaries, ...flowSummaries];
330
335
  },
331
336
  },
332
337
  {
333
338
  name: 'get_recipe',
334
- description: 'Retrieve the full recipe for a specific widget type, including its JSON schema and step-by-step usage instructions. Call this BEFORE calling widget_display to understand the exact parameter structure expected by the widget. Returns {name, description, schema, recipe} where schema is the JSON Schema for params validation and recipe contains markdown instructions. If the widget name is not found, returns an error with the list of available widget names.',
339
+ description: 'Retrieve the full recipe for a specific widget or flow. For widgets, returns {name, description, schema, recipe} where schema is the JSON Schema for params validation and recipe contains markdown instructions. For flows, returns {name, description, when, body, group: "flow"} with the full markdown body describing the multi-step procedure. Call this BEFORE acting on a recipe to read its instructions. If the name is not found, returns an error with the list of available names.',
335
340
  inputSchema: {
336
341
  type: 'object',
337
342
  properties: {
338
- name: { type: 'string', description: 'Exact widget type name as returned by search_recipes or list_recipes, e.g. "chart-rich", "data-table", "stat-card", "hemicycle". Must match exactly — no partial matches.' },
343
+ name: { type: 'string', description: 'Exact recipe name as returned by search_recipes or list_recipes. For widgets: e.g. "chart-rich", "data-table", "kv". For flows: e.g. "canary-display", "weather-viz". Must match exactly — no partial matches.' },
339
344
  },
340
345
  required: ['name'],
341
346
  additionalProperties: false,
342
347
  },
343
348
  execute: async (params) => {
344
- const widgetName = params.name;
345
- const entry = widgets.get(widgetName);
346
- if (entry) {
347
- return { name: entry.name, description: entry.description, schema: entry.inputSchema, recipe: entry.recipe };
349
+ const recipeName = params.name;
350
+ const widgetEntry = widgets.get(recipeName);
351
+ if (widgetEntry) {
352
+ return { name: widgetEntry.name, description: widgetEntry.description, schema: widgetEntry.inputSchema, recipe: widgetEntry.recipe, group: widgetEntry.group ?? 'widget' };
353
+ }
354
+ const flowEntry = flowRecipes.get(recipeName);
355
+ if (flowEntry) {
356
+ return { name: flowEntry.name, description: flowEntry.description, when: flowEntry.when, body: flowEntry.body, group: 'flow' };
348
357
  }
349
- return { error: `Recipe "${widgetName}" not found`, available: [...widgets.keys()] };
358
+ return { error: `Recipe "${recipeName}" not found`, available: [...widgets.keys(), ...flowRecipes.keys()] };
350
359
  },
351
360
  },
352
361
  {
@@ -415,6 +424,22 @@ export function createWebMcpServer(name, options) {
415
424
  widgets.set(widgetName, entry);
416
425
  ensureBuiltinTools();
417
426
  },
427
+ registerRecipe(recipeMarkdown) {
428
+ const { frontmatter, body } = parseFrontmatter(recipeMarkdown);
429
+ const recipeName = frontmatter.id ?? frontmatter.name;
430
+ if (!recipeName) {
431
+ throw new Error('Flow recipe frontmatter must include an "id" or "name" field.');
432
+ }
433
+ const entry = {
434
+ name: recipeName,
435
+ description: frontmatter.description ?? frontmatter.name ?? '',
436
+ when: frontmatter.when ?? '',
437
+ body,
438
+ group: 'flow',
439
+ };
440
+ flowRecipes.set(recipeName, entry);
441
+ ensureBuiltinTools();
442
+ },
418
443
  addTool(tool) {
419
444
  customTools.push(tool);
420
445
  },
@@ -422,7 +447,7 @@ export function createWebMcpServer(name, options) {
422
447
  currentRecipes = recipes;
423
448
  },
424
449
  layer() {
425
- if (!builtinTools && widgets.size > 0) {
450
+ if (!builtinTools && (widgets.size > 0 || flowRecipes.size > 0)) {
426
451
  ensureBuiltinTools();
427
452
  }
428
453
  const allTools = [...customTools];
@@ -433,12 +458,21 @@ export function createWebMcpServer(name, options) {
433
458
  displayTool.description = `Render a widget on the user's canvas with the specified type and parameters. Use this tool whenever you need to display data visually — charts, tables, statistics, timelines, maps, galleries, etc. The widget type must match one of the available widget names (use search_recipes or get_recipe first to learn the exact schema). Returns the widget's unique ID for later updates via the canvas tool. Do NOT use this tool for plain text responses. Available widgets: ${names.join(', ')}.`;
434
459
  allTools.push(...builtinTools);
435
460
  }
461
+ // Merge flow recipes into the layer's recipe list so the UI can browse them
462
+ // alongside any explicitly set McpRecipeSummary entries.
463
+ const flowSummaries = [...flowRecipes.values()].map((f) => ({
464
+ name: f.name,
465
+ description: f.description,
466
+ body: f.body,
467
+ group: 'flow',
468
+ }));
469
+ const mergedRecipes = [...currentRecipes, ...flowSummaries];
436
470
  return {
437
471
  protocol: 'webmcp',
438
472
  serverName: name,
439
473
  description: options.description,
440
474
  tools: allTools,
441
- recipes: currentRecipes,
475
+ recipes: mergedRecipes,
442
476
  };
443
477
  },
444
478
  getWidget(widgetName) {
@@ -447,6 +481,12 @@ export function createWebMcpServer(name, options) {
447
481
  listWidgets() {
448
482
  return [...widgets.values()];
449
483
  },
484
+ getFlowRecipe(recipeName) {
485
+ return flowRecipes.get(recipeName);
486
+ },
487
+ listFlowRecipes() {
488
+ return [...flowRecipes.values()];
489
+ },
450
490
  };
451
491
  return server;
452
492
  }
@@ -1 +1 @@
1
- {"version":3,"file":"webmcp-server.js","sourceRoot":"","sources":["../src/webmcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webmcp-server.js","sourceRoot":"","sources":["../src/webmcp-server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webmcp-auto-ui/core",
3
- "version": "2.5.24",
3
+ "version": "2.5.26",
4
4
  "description": "W3C WebMCP polyfill + MCP Streamable HTTP client — zero dependencies, framework-agnostic",
5
5
  "license": "AGPL-3.0-or-later",
6
6
  "author": "jb@media.mit.edu",
@@ -26,10 +26,20 @@ export interface WidgetEntry {
26
26
  /** True when the renderer is a plain function (not a framework component). */
27
27
  vanilla: boolean;
28
28
  }
29
+ /** A flow recipe (non-widget): a multi-step procedure registered on a WebMCP server. */
30
+ export interface FlowRecipeEntry {
31
+ name: string;
32
+ description: string;
33
+ when: string;
34
+ body: string;
35
+ group: 'flow';
36
+ }
29
37
  export interface WebMcpServer {
30
38
  readonly name: string;
31
39
  readonly description: string;
32
40
  registerWidget(recipeMarkdown: string, renderer: WidgetRenderer): void;
41
+ /** Register a non-widget recipe (a multi-step flow described in markdown with YAML frontmatter). */
42
+ registerRecipe(recipeMarkdown: string): void;
33
43
  addTool(tool: WebMcpToolDef): void;
34
44
  /** Register a list of recipe summaries exposed to the UI for browsing. */
35
45
  setRecipes(recipes: McpRecipeSummary[]): void;
@@ -42,6 +52,8 @@ export interface WebMcpServer {
42
52
  };
43
53
  getWidget(name: string): WidgetEntry | undefined;
44
54
  listWidgets(): WidgetEntry[];
55
+ getFlowRecipe(name: string): FlowRecipeEntry | undefined;
56
+ listFlowRecipes(): FlowRecipeEntry[];
45
57
  }
46
58
  export interface ParsedFrontmatter {
47
59
  frontmatter: Record<string, unknown>;
@@ -46,11 +46,22 @@ export interface WidgetEntry {
46
46
  vanilla: boolean;
47
47
  }
48
48
 
49
+ /** A flow recipe (non-widget): a multi-step procedure registered on a WebMCP server. */
50
+ export interface FlowRecipeEntry {
51
+ name: string;
52
+ description: string;
53
+ when: string;
54
+ body: string;
55
+ group: 'flow';
56
+ }
57
+
49
58
  export interface WebMcpServer {
50
59
  readonly name: string;
51
60
  readonly description: string;
52
61
 
53
62
  registerWidget(recipeMarkdown: string, renderer: WidgetRenderer): void;
63
+ /** Register a non-widget recipe (a multi-step flow described in markdown with YAML frontmatter). */
64
+ registerRecipe(recipeMarkdown: string): void;
54
65
  addTool(tool: WebMcpToolDef): void;
55
66
 
56
67
  /** Register a list of recipe summaries exposed to the UI for browsing. */
@@ -66,6 +77,8 @@ export interface WebMcpServer {
66
77
 
67
78
  getWidget(name: string): WidgetEntry | undefined;
68
79
  listWidgets(): WidgetEntry[];
80
+ getFlowRecipe(name: string): FlowRecipeEntry | undefined;
81
+ listFlowRecipes(): FlowRecipeEntry[];
69
82
  }
70
83
 
71
84
  // ---------------------------------------------------------------------------
@@ -388,6 +401,7 @@ export function createWebMcpServer(
388
401
  options: WebMcpServerOptions,
389
402
  ): WebMcpServer {
390
403
  const widgets = new Map<string, WidgetEntry>();
404
+ const flowRecipes = new Map<string, FlowRecipeEntry>();
391
405
  const customTools: WebMcpToolDef[] = [];
392
406
  let builtinTools: WebMcpToolDef[] | null = null;
393
407
  let currentRecipes: McpRecipeSummary[] = [];
@@ -416,40 +430,48 @@ export function createWebMcpServer(
416
430
  },
417
431
  execute: async (params: Record<string, unknown>) => {
418
432
  const query = (params.query as string | undefined)?.toLowerCase();
419
- const all = [...widgets.values()].map(w => ({ name: w.name, description: w.description, group: w.group }));
420
- return all.filter(w => !query || w.name.includes(query) || w.description.toLowerCase().includes(query));
433
+ const widgetSummaries = [...widgets.values()].map(w => ({ name: w.name, description: w.description, group: w.group ?? 'widget' }));
434
+ const flowSummaries = [...flowRecipes.values()].map(f => ({ name: f.name, description: f.description, group: f.group, when: f.when }));
435
+ const all = [...widgetSummaries, ...flowSummaries];
436
+ return all.filter(r => !query || r.name.toLowerCase().includes(query) || (r.description?.toLowerCase().includes(query) ?? false));
421
437
  },
422
438
  },
423
439
  {
424
440
  name: 'list_recipes',
425
- description: 'List ALL available widget recipes with their name, description, and group. Use this when search_recipes returned no results, or when the user wants to explore all display capabilities. Returns the complete catalog of widgets useful for choosing the best visualization when the exact widget type is unclear. Does not accept any parameters.',
441
+ description: 'List ALL available recipes — both widget recipes (display primitives) and flow recipes (multi-step procedures). Use this when search_recipes returned no results, or when the user wants to explore all available capabilities. Returns the complete catalog with {name, description, group} for each entry; the `group` field is "widget" for display primitives and "flow" for multi-step procedures. Does not accept any parameters.',
426
442
  inputSchema: {
427
443
  type: 'object',
428
444
  properties: {},
429
445
  additionalProperties: false,
430
446
  },
431
447
  execute: async () => {
432
- return [...widgets.values()].map(w => ({ name: w.name, description: w.description, group: w.group }));
448
+ const widgetSummaries = [...widgets.values()].map(w => ({ name: w.name, description: w.description, group: w.group ?? 'widget' }));
449
+ const flowSummaries = [...flowRecipes.values()].map(f => ({ name: f.name, description: f.description, group: f.group, when: f.when }));
450
+ return [...widgetSummaries, ...flowSummaries];
433
451
  },
434
452
  },
435
453
  {
436
454
  name: 'get_recipe',
437
- description: 'Retrieve the full recipe for a specific widget type, including its JSON schema and step-by-step usage instructions. Call this BEFORE calling widget_display to understand the exact parameter structure expected by the widget. Returns {name, description, schema, recipe} where schema is the JSON Schema for params validation and recipe contains markdown instructions. If the widget name is not found, returns an error with the list of available widget names.',
455
+ description: 'Retrieve the full recipe for a specific widget or flow. For widgets, returns {name, description, schema, recipe} where schema is the JSON Schema for params validation and recipe contains markdown instructions. For flows, returns {name, description, when, body, group: "flow"} with the full markdown body describing the multi-step procedure. Call this BEFORE acting on a recipe to read its instructions. If the name is not found, returns an error with the list of available names.',
438
456
  inputSchema: {
439
457
  type: 'object',
440
458
  properties: {
441
- name: { type: 'string', description: 'Exact widget type name as returned by search_recipes or list_recipes, e.g. "chart-rich", "data-table", "stat-card", "hemicycle". Must match exactly — no partial matches.' },
459
+ name: { type: 'string', description: 'Exact recipe name as returned by search_recipes or list_recipes. For widgets: e.g. "chart-rich", "data-table", "kv". For flows: e.g. "canary-display", "weather-viz". Must match exactly — no partial matches.' },
442
460
  },
443
461
  required: ['name'],
444
462
  additionalProperties: false,
445
463
  },
446
464
  execute: async (params: Record<string, unknown>) => {
447
- const widgetName = params.name as string;
448
- const entry = widgets.get(widgetName);
449
- if (entry) {
450
- return { name: entry.name, description: entry.description, schema: entry.inputSchema, recipe: entry.recipe };
465
+ const recipeName = params.name as string;
466
+ const widgetEntry = widgets.get(recipeName);
467
+ if (widgetEntry) {
468
+ return { name: widgetEntry.name, description: widgetEntry.description, schema: widgetEntry.inputSchema, recipe: widgetEntry.recipe, group: widgetEntry.group ?? 'widget' };
469
+ }
470
+ const flowEntry = flowRecipes.get(recipeName);
471
+ if (flowEntry) {
472
+ return { name: flowEntry.name, description: flowEntry.description, when: flowEntry.when, body: flowEntry.body, group: 'flow' };
451
473
  }
452
- return { error: `Recipe "${widgetName}" not found`, available: [...widgets.keys()] };
474
+ return { error: `Recipe "${recipeName}" not found`, available: [...widgets.keys(), ...flowRecipes.keys()] };
453
475
  },
454
476
  },
455
477
  {
@@ -528,6 +550,26 @@ export function createWebMcpServer(
528
550
  ensureBuiltinTools();
529
551
  },
530
552
 
553
+ registerRecipe(recipeMarkdown: string): void {
554
+ const { frontmatter, body } = parseFrontmatter(recipeMarkdown);
555
+
556
+ const recipeName = (frontmatter.id as string | undefined) ?? (frontmatter.name as string | undefined);
557
+ if (!recipeName) {
558
+ throw new Error('Flow recipe frontmatter must include an "id" or "name" field.');
559
+ }
560
+
561
+ const entry: FlowRecipeEntry = {
562
+ name: recipeName,
563
+ description: (frontmatter.description as string | undefined) ?? (frontmatter.name as string | undefined) ?? '',
564
+ when: (frontmatter.when as string | undefined) ?? '',
565
+ body,
566
+ group: 'flow',
567
+ };
568
+
569
+ flowRecipes.set(recipeName, entry);
570
+ ensureBuiltinTools();
571
+ },
572
+
531
573
  addTool(tool: WebMcpToolDef): void {
532
574
  customTools.push(tool);
533
575
  },
@@ -537,7 +579,7 @@ export function createWebMcpServer(
537
579
  },
538
580
 
539
581
  layer() {
540
- if (!builtinTools && widgets.size > 0) {
582
+ if (!builtinTools && (widgets.size > 0 || flowRecipes.size > 0)) {
541
583
  ensureBuiltinTools();
542
584
  }
543
585
 
@@ -552,12 +594,22 @@ export function createWebMcpServer(
552
594
  allTools.push(...builtinTools);
553
595
  }
554
596
 
597
+ // Merge flow recipes into the layer's recipe list so the UI can browse them
598
+ // alongside any explicitly set McpRecipeSummary entries.
599
+ const flowSummaries: McpRecipeSummary[] = [...flowRecipes.values()].map((f) => ({
600
+ name: f.name,
601
+ description: f.description,
602
+ body: f.body,
603
+ group: 'flow',
604
+ }));
605
+ const mergedRecipes = [...currentRecipes, ...flowSummaries];
606
+
555
607
  return {
556
608
  protocol: 'webmcp' as const,
557
609
  serverName: name,
558
610
  description: options.description,
559
611
  tools: allTools,
560
- recipes: currentRecipes,
612
+ recipes: mergedRecipes,
561
613
  };
562
614
  },
563
615
 
@@ -568,6 +620,14 @@ export function createWebMcpServer(
568
620
  listWidgets(): WidgetEntry[] {
569
621
  return [...widgets.values()];
570
622
  },
623
+
624
+ getFlowRecipe(recipeName: string): FlowRecipeEntry | undefined {
625
+ return flowRecipes.get(recipeName);
626
+ },
627
+
628
+ listFlowRecipes(): FlowRecipeEntry[] {
629
+ return [...flowRecipes.values()];
630
+ },
571
631
  };
572
632
 
573
633
  return server;