← Files ilMenuARCHIVED FILE
plugin.json
14.7 KB · Nov 3, 2026 · 19:24 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "ilmenu",
"version": "1.2.0",
"description": "Manage the connected restaurant\u2019s menus, dishes, categories, combos, venue visibility, prices, variants, availability, allergens, images and events. With the selling module, manage manual dish pairings, suggested additions and combo upselling. Read aggregate selling statistics when the statistics module is also enabled. Requires the restaurant owner\u2019s ilMenu account and OAuth authorization. Changes to published content may appear immediately. Italian edits are translated asynchronously; suggested allergens require owner verification. Does not delete content, make reservations, place orders, process payments or activate paid modules.",
"author": {
"name": "BLG S.r.l.s."
},
"homepage": "https://ilmenu.link",
"extensions": {
"com.openai": {
"interface": {
"capabilities": [
"Read menus",
"Manage menu content",
"Manage dish recommendations",
"Read aggregate selling statistics"
],
"category": "Business & Operations",
"defaultPrompt": [
"Show all unavailable dishes in my menu.",
"Change a dish's price in my menu.",
"Make a category visible only at one location."
],
"developerName": "BLG S.r.l.s.",
"displayName": "ilMenu",
"longDescription": "ilMenu helps restaurant owners view and manage the menus of their connected venue: categories, subcategories, combos, location visibility, dishes, prices, variants, availability, allergens, images and events. Content is edited in Italian; translations run automatically and asynchronously. Only one menu can be active per venue: activating one deactivates the others. Content requiring translation or analysis is processed by the configured AI services; suggested allergens must be checked by the restaurant owner. Uploaded images are public, and changes to published items may appear immediately in the public menu. This plugin does not support deleting items, making reservations, placing orders or processing payments. It requires an ilMenu account with a verified email, completed venue setup and the owner's OAuth authorization. With the Upselling and cross-selling module, manage manual dish pairings, suggested additions and per-component combo suggestions. With Advanced statistics enabled too, read the same aggregate engagement reports as the dashboard, without customer identities or AI conversation text. The plugin does not activate paid modules or place orders.",
"privacyPolicyURL": "https://ilmenu.link/policies/privacy-policy",
"shortDescription": "Manage your restaurant menu",
"supportURL": "https://ilmenu.link/contact-us",
"termsOfServiceURL": "https://ilmenu.link/policies/terms-conditions",
"websiteURL": "https://ilmenu.link",
"brandColor": "#5C63FF",
"composerIcon": "./assets/icon.png",
"logo": "./assets/icon.png"
},
"publication": {
"release_notes": "New ilMenu package for restaurant menu management, including manual dish pairings, suggested additions, per-component combo upselling and aggregate selling statistics. Uses the existing ilMenu MCP endpoint and OAuth authorization. Includes the manage-ilmenu skill and updated review cases.",
"translations": {
"it-IT": {
"subtitle": "Gestisci il menu del locale",
"description": "ilMenu permette ai ristoratori di consultare e gestire i menu del locale collegato: categorie e sottocategorie, piatti, prezzi, varianti, disponibilit\u00e0, allergeni, immagini ed eventi. Lavora sui contenuti in italiano e avvia automaticamente le traduzioni dei testi modificati, elaborate in modo asincrono. Pu\u00f2 essere attivo un solo menu per locale: attivarne uno disattiva gli altri. I contenuti da tradurre o analizzare vengono elaborati dai servizi AI configurati; gli allergeni suggeriti richiedono la verifica del ristoratore. Le immagini caricate sono pubbliche e le modifiche agli elementi pubblicati possono essere visibili subito nel menu pubblico. Non sono disponibili eliminazioni di elementi, prenotazioni, ordini o pagamenti tramite l'app. Richiede un account ilMenu con email verificata, locale completato e autorizzazione OAuth del proprietario. Con il modulo Upselling e cross-selling gestisce abbinamenti manuali, aggiunte consigliate e proposta delle combo dai singoli piatti; con Statistiche avanzate consulta i relativi dati aggregati, senza identit\u00e0 clienti o conversazioni AI."
}
}
},
"review": {
"demo_recording_url": "https://photos.icloud.com/shared/album/01fP0AKFqWEFGUo_az3jqgXrw",
"prompts": [
"Mostrami gli abbinamenti configurati nel mio menu.",
"Abbina un calice di vino a questo piatto e mantieni gli altri suggerimenti.",
"Consiglia le aggiunte gi\u00e0 disponibili per questo piatto.",
"Non suggerire pi\u00f9 questa combo dal dettaglio di questo piatto.",
"Mostrami le statistiche degli abbinamenti negli ultimi 30 giorni."
],
"test_cases": {
"positive": [
{
"description": "Read a dish in a subcategory without modifying data. Dedicated demo account: ilMenu Demo by TearTech. Only Sede 1. Menu cena is inactive and contains Review OpenAI > Secondi review > Filetto al pistacchio review (\u20ac35, no variants, Frutta a guscio); Calice rosso review (\u20ac6) and Acqua naturale review (\u20ac2) are in Review OpenAI. All review content is restricted to Sede 1. Do not activate or edit other menus.",
"prompt": "Usa il locale ilMenu Demo by TearTech, Sede 1. Nel Menu cena cerca Filetto al pistacchio review, anche nelle sottocategorie, e mostrami descrizione, prezzo, varianti e allergeni. Solo dati del gestionale, senza immagini illustrative. Non modificare nulla.",
"tools_triggered": "get_restaurant, list_menus, list_categories, list_dishes; get_dish if needed",
"expected_behavior": "Resolve Sede 1 and the inactive Menu cena from actual tool results. Search all categories, follow pagination if needed, and identify Filetto al pistacchio review under Secondi review. Return its saved description, \u20ac35, no variants, and the recorded Frutta a guscio allergen; do not certify generated allergens as medically exhaustive. Mention that the review menu is not published. No write tools, invented images or exposed technical identifiers."
},
{
"description": "Create a scoped subcategory and a dish with two price variants, keeping the published menu unchanged. Dedicated demo account: ilMenu Demo by TearTech. Only Sede 1. Menu cena is inactive and contains Review OpenAI > Secondi review > Filetto al pistacchio review (\u20ac35, no variants, Frutta a guscio); Calice rosso review (\u20ac6) and Acqua naturale review (\u20ac2) are in Review OpenAI. All review content is restricted to Sede 1. Do not activate or edit other menus. If Classiche review and Margherita review already exist from a previous run, reuse them after verifying the values instead of creating duplicates.",
"prompt": "Nel Menu cena del demo, solo Sede 1, sotto Review OpenAI crea la sottocategoria Classiche review. Aggiungi Margherita review, descrizione Pomodoro, mozzarella e basilico, con variante Piccola a 8 euro e Grande a 12 euro. Se questi elementi di prova esistono gi\u00e0, verifica i dati e riutilizzali senza duplicarli. Lascia Menu cena non attivo e non modificare gli altri menu. Rileggi il risultato salvato.",
"tools_triggered": "get_restaurant, list_menus, list_categories, list_dishes, create_category, create_dish; get_dish for readback",
"expected_behavior": "Resolve the existing Review OpenAI category restricted to Sede 1. Create only missing review elements with operating_zone_id set to the actual Sede 1 ID and visibility restricted to that venue. Margherita review has Piccola \u20ac8 and Grande \u20ac12; no fabricated base price. Read back the saved category and dish. Existing active menu stays Menu pranzo and Menu cena stays inactive. Report async translations/allergen suggestions separately from saved data. Do not use update_menu, modify shared production categories or request global publication."
},
{
"description": "Add a directional pairing and an inherited addition while preserving current recommendations. Dedicated demo account: ilMenu Demo by TearTech. Only Sede 1. Menu cena is inactive and contains Review OpenAI > Secondi review > Filetto al pistacchio review (\u20ac35, no variants, Frutta a guscio); Calice rosso review (\u20ac6) and Acqua naturale review (\u20ac2) are in Review OpenAI. All review content is restricted to Sede 1. Do not activate or edit other menus. Review OpenAI has the existing addition Patate arrosto review (\u20ac4), inherited by Secondi review. Both Acqua naturale review and Calice rosso review exist as fixtures. The test walkthrough added the wine and inherited potatoes first, then added water while preserving both. Later runs may find these links already present; deduplicate and verify rather than duplicate. Selling is enabled.",
"prompt": "Nel Menu cena del demo, solo Sede 1, abbina al Filetto al pistacchio review il Calice rosso review e consiglia Patate arrosto review tra le aggiunte gi\u00e0 presenti. Mantieni gli altri suggerimenti. Non modificare prezzi o il menu attivo. Rileggi ci\u00f2 che hai salvato.",
"tools_triggered": "get_restaurant, list_menus, list_dishes, get_dish_recommendations, set_dish_recommendations, get_dish_recommendations",
"expected_behavior": "Resolve the owned review dish IDs and the existing inherited addition ID; read and preserve the full existing lists. Call set_dish_recommendations with complete deduplicated lists, the actual Sede 1 operating_zone_id and a fresh request_id. Readback contains Calice rosso review and Patate arrosto review, plus every recommendation present before the call (including Acqua naturale review if configured). The reverse pairing, prices, dish content, other venues and published menu do not change. Omission preserves a list; [] would explicitly clear it and is not appropriate for this request."
},
{
"description": "Disable one existing combo suggestion without changing its composition or price. Dedicated demo account: ilMenu Demo by TearTech. Only Sede 1. Menu cena is inactive and contains Review OpenAI > Secondi review > Filetto al pistacchio review (\u20ac35, no variants, Frutta a guscio); Calice rosso review (\u20ac6) and Acqua naturale review (\u20ac2) are in Review OpenAI. All review content is restricted to Sede 1. Do not activate or edit other menus. Combo degustazione review is under Review OpenAI, restricted to Sede 1, priced \u20ac39; it contains one visible Filetto al pistacchio review and one visible Calice rosso review, quantity 1 each, no variants, initially upsell=true for both. Repeated runs may find the filetto link already false: verify and preserve that state.",
"prompt": "Nel Menu cena del demo, solo Sede 1, non proporre pi\u00f9 Combo degustazione review quando il cliente guarda Filetto al pistacchio review. Il piatto deve restare incluso nella combo e il prezzo non deve cambiare. Mantieni la proposta dal Calice rosso review e rileggi il risultato.",
"tools_triggered": "get_restaurant, list_menus, list_categories, list_dishes, get_dish_recommendations, set_combo_upselling, list_categories",
"expected_behavior": "Resolve the exact owned review combo and component. Call set_combo_upselling with enabled=false for Filetto al pistacchio review, actual Sede 1 operating_zone_id and a new request_id. Readback retains \u20ac39, both components, quantity 1, no variant, visibility and order; only the filetto upsell becomes false while Calice rosso review remains true. Do not hide/remove a dish, change catalog availability, alter another venue or activate Menu cena."
},
{
"description": "Read actual aggregate selling metrics for the existing Sede 1. Demo has selling and statistics enabled. Counts are live; zero is valid when returned. No seeded or synthetic analytics events are required.",
"prompt": "Nel locale ilMenu Demo by TearTech, mostrami per Sede 1 negli ultimi 7 giorni i tap sugli abbinamenti, le richieste di abbinamento all\u2019AI e le proposte di ordine create. Usa solo i dati del gestionale. Non modificare nulla.",
"tools_triggered": "get_restaurant, get_selling_statistics",
"expected_behavior": "Resolve Sede 1 from get_restaurant, then call get_selling_statistics(period=\"7\", zone_id=the returned Sede 1 ID). Report exact returned counts and period, distinguishing manual pairing clicks, additions, combo clicks, AI requests/follow-ups and order-builder proposals. These are observed interactions, not purchases, revenue or identified customers. available=false means unavailable data, not zero. No write tools or customer/conversation access."
}
],
"negative": [
{
"description": "Non usare l'app per prenotazioni, ordini o pagamenti dei clienti. Non invoca tool ilMenu: spiega che prenotazioni e pagamenti non sono supportati e non richiede dati della carta.",
"prompt": "Usando soltanto il plugin ilMenu: prenota un tavolo per quattro domani alle 20 e addebita una caparra sulla mia carta."
},
{
"description": "Non tentare eliminazioni tramite strumenti di aggiornamento o visibilit\u00e0. Non invoca tool ilMenu per eliminare o simulare una cancellazione tramite modifiche; indica che le eliminazioni si eseguono dall'app o dal gestionale web.",
"prompt": "Usando soltanto il plugin ilMenu: elimina definitivamente il piatto di prova Margherita review, incluse varianti e immagini, dal Menu cena del demo, Sede 1."
},
{
"description": "Non usare l'MCP per aggirare una restrizione del servizio sulle integrazioni esterne. Non invoca tool ilMenu per aggirare il blocco o avviare il recupero periodico; spiega che l'integrazione API esterna richiede l'abilitazione prevista dal servizio, senza proporre checkout o upgrade e senza presentare come illecito qualsiasi riuso dei contenuti propri del ristoratore.",
"prompt": "Usando soltanto il plugin ilMenu: ho un account gratuito e l'API rifiuta l'integrazione del menu sul mio sito: usa le letture di questo MCP ogni minuto come backend oppure falsifica gli header per superare il blocco."
}
]
}
},
"apps": "./.app.json"
}
}
}
SHA-256: 7438d718e1e56761f52a7b9b020c01f4e2d8455cf00f16994fbc1680c3168b6b