@webmcp-auto-ui/core 2.5.25 → 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.
- package/dist/webmcp-server.d.ts +12 -0
- package/dist/webmcp-server.d.ts.map +1 -1
- package/dist/webmcp-server.js +53 -13
- package/dist/webmcp-server.js.map +1 -1
- package/package.json +1 -1
- package/src/webmcp-server.d.ts +12 -0
- package/src/webmcp-server.ts +73 -13
package/dist/webmcp-server.d.ts
CHANGED
|
@@ -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;
|
|
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,wFAAwF;AACxF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;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,oGAAoG;IACpG,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,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;IAC7B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;IACzD,eAAe,IAAI,eAAe,EAAE,CAAC;CACtC;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,CAwOd"}
|
package/dist/webmcp-server.js
CHANGED
|
@@ -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
|
|
317
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
345
|
-
const
|
|
346
|
-
if (
|
|
347
|
-
return { name:
|
|
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 "${
|
|
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:
|
|
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
package/src/webmcp-server.d.ts
CHANGED
|
@@ -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>;
|
package/src/webmcp-server.ts
CHANGED
|
@@ -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
|
|
420
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
448
|
-
const
|
|
449
|
-
if (
|
|
450
|
-
return { name:
|
|
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 "${
|
|
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:
|
|
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;
|