Trois serveurs coexistent dans la même boucle. Le LLM les voit tous et choisit le bon selon le contexte.
main.ts
import { runAgentLoop, AnthropicProvider, autoui } from '@webmcp-auto-ui/agent';
import { designkit } from './designkit-server';
import myApiClient from './api-client';
const result = await runAgentLoop('Affiche les commandes du mois', {
provider: new AnthropicProvider({ proxyUrl: '/api/chat' }),
layers: [
myApiClient.layer(), // myapi_mcp_* → données métier
autoui.layer(), // autoui_webmcp_* → 31 widgets natifs
designkit.layer(), // designkit_webmcp_* → vos composants MUI
],
callbacks: {
onWidget: (type, data) => renderWidget(type, data),
},
});
séquence d'appels LLM automatique
designkit_webmcp_search_recipes({ query: "tableau" })
designkit_webmcp_get_recipe({ name: "DataTable" })
myapi_mcp_list_orders({ month: "2026-04", limit: 100 })
designkit_webmcp_widget_display({
name: "DataTable",
params: {
title: "Commandes — Avril 2026",
rows: [...],
columns: [
{ field: "id", headerName: "#", width: 80 },
{ field: "client", headerName: "Client", width: 200 },
{ field: "total", headerName: "Total €", width: 120 },
]
}
})
// → votre composant MUI s'affiche via onWidget