FoodEatUp · API

Documentation de l'API FoodEatUp

L'API FoodEatUp expose l'ensemble de votre restaurant — stocks, carte, commandes, HACCP, équipe, marketing, fidélité — via un point d'entrée unique au protocole JSON-RPC 2.0 (MCP). Connectez-la à n8n, Make, Zapier ou à vos propres scripts pour construire vos automatisations, exactement comme nos équipes. 187 outils sont disponibles, présentés module par module.

1. Authentification

L'API s'utilise avec une clé API d'établissement, créée en autonomie depuis votre backoffice : Mon profil → API Clients. Vous y obtenez un couple client_id / client_secret (le secret n'est affiché qu'une seule fois — conservez-le dans un gestionnaire de secrets).

Échangez ensuite ces identifiants contre un jeton d'accès :

curl -X POST https://foodeatup.com/api/auth/token \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "VOTRE_CLIENT_ID",
    "client_secret": "VOTRE_CLIENT_SECRET"
  }'

Réponse :

{
  "token_type": "Bearer",
  "access_token": "eyJ0b2tlbl9leGVtcGxlLi4u",
  "expires_in": 86400
}

Toutes les requêtes suivantes portent ce jeton dans l'en-tête Authorization: Bearer <access_token>. La clé est liée à votre établissement : chaque appel est automatiquement restreint à ses données — il est impossible de lire ou modifier un autre établissement, même en passant un autre establishment_id (il est réécrit côté serveur).

Astuce n8n/Make : GET /api/me (avec le même Bearer) renvoie l'establishment_id lié à votre clé — plus aucun identifiant codé en dur dans vos workflows.

2. Protocole JSON-RPC (MCP)

Point d'entrée unique : POST https://foodeatup.com/api/mcp. Le corps est une enveloppe JSON-RPC 2.0 conforme au Model Context Protocol — ce qui rend l'API directement utilisable par les agents IA (Claude, n8n AI Agent…) en plus des workflows classiques.

Lister les outils disponibles

curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }'

Appeler un outil

curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "list_stocks",
      "arguments": { "establishment_id": 1 }
    }
  }'

Chaque réponse d'outil suit la même enveloppe — le résultat métier est le JSON contenu dans result.content[0].text :

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [
      { "type": "text", "text": "[ { \"id\": 12, \"name\": \"Tomates\", \"qte\": 8.5 }, … ]" }
    ]
  }
}

3. Jetons & scopes

Trois types de jetons peuvent appeler l'API — choisissez selon votre besoin :

JetonObtentionPérimètre
Clé API d'établissement (recommandé) Backoffice → Mon profil → API Clients, puis POST /api/auth/token Catalogue complet, données de votre établissement uniquement
Jeton employé (Jarvis) Fiche employé → onglet Jarvis (généré par le propriétaire) Catalogue filtré par les permissions du rôle de l'employé — le scope indiqué sur chaque outil ci-dessous est la permission exigée
OAuth 2.0 Connecteurs (Claude.ai, n8n) via POST /api/oauth/token Scoppé aux établissements du compte connecté

Sur chaque outil, le badge scope indique la permission requise pour un jeton employé. Le badge propriétaire signale un outil réservé au propriétaire (jamais accessible à un jeton employé).

4. Erreurs & limites

CodeSignificationQue faire
HTTP 401 / -32001Jeton absent, invalide ou révoquéRégénérez un jeton via POST /api/auth/token
-32003Permission refusée (jeton employé) ou établissement non autoriséVérifiez le rôle de l'employé ou l'établissement visé
-32600 / -32601Enveloppe JSON-RPC invalide / méthode inconnueVérifiez jsonrpc: "2.0" et method
-32602Paramètres invalides ou ressource introuvableComparez vos arguments au tableau de paramètres de l'outil
-32603Erreur interneRéessayez ; contactez le support si l'erreur persiste
HTTP 429Limite de débit atteinteRalentissez — voir les limites ci-dessous

Limites de débit par jeton (ou adresse IP) :

  • POST /api/mcp — 120 requêtes / minute
  • POST /api/auth/token — 20 requêtes / minute
  • API REST v1 (/api/predibot/v1/…) — 120 requêtes / minute

Bonnes pratiques : réutilisez votre jeton (ne redemandez pas un jeton à chaque appel), et en cas de 429 appliquez un retry exponentiel (2 s, 4 s, 8 s…).

5. Outils par module

Catalogue généré automatiquement depuis le serveur — il reflète toujours exactement les outils réellement disponibles. Les exemples n'incluent que les paramètres requis ; les paramètres optionnels sont listés dans le tableau de chaque outil.

Aucun outil ne correspond à cette recherche.

Stocks 3 outils

list_stocks

Liste tous les articles en stock d'un établissement. stock.inventory.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_stocks",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

list_low_stocks

Liste les articles en stock dont le niveau est bas (is_low = true). stock.inventory.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_low_stocks",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

adjust_stock

Ajuste le stock d'un PRODUIT (establishment_product_id) ou d'un INGRÉDIENT (ingredient_id). Chaque ajustement écrit un mouvement tracé ; les stocks négatifs sont refusés sauf allow_negative:true. stock.inventory.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
establishment_product_id integer optionnel ID du produit (champ "id" de list_products) — OU ingredient_id
ingredient_id integer optionnel ID de l'ingrédient (list_ingredients) — OU establishment_product_id
quantity number requis Quantité à appliquer
mode string — set | increment optionnel set = remplace la valeur (inventaire), increment = ajoute/retire (delta, peut être négatif). Défaut : set
motif string optionnel Motif du mouvement (livraison, perte, casse, inventaire…) — tracé dans le registre
allow_negative boolean optionnel Autorise un résultat négatif (écart d'inventaire assumé). Défaut : false
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "adjust_stock",
        "arguments": {
            "establishment_id": 1,
            "quantity": 1
        }
    }
}'

Produits 5 outils

list_products

Liste tous les produits d'un établissement. produits.products.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_products",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_product

Crée un nouveau produit dans le menu d'un établissement. produits.products.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
name string requis Nom du produit
description string optionnel Description (optionnel)
price_by_unit number requis Prix unitaire HT
unit string requis Unité (ex: pièce, kg, L)
stock_quantity number optionnel Quantité en stock (défaut: 0)
is_promotion boolean optionnel En promotion (défaut: false)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_product",
        "arguments": {
            "establishment_id": 1,
            "name": "exemple",
            "price_by_unit": 1,
            "unit": "exemple"
        }
    }
}'

get_product

Retourne le détail d'un produit du catalogue d'un établissement. produits.products.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
establishment_product_id integer requis ID du produit (champ "id" renvoyé par list_products)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_product",
        "arguments": {
            "establishment_id": 1,
            "establishment_product_id": 1
        }
    }
}'

update_product

Modifie un produit du catalogue (prix, unité, stock, description, nom, promotion). produits.products.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
establishment_product_id integer requis ID du produit (champ "id" de list_products)
name string optionnel Nouveau nom (optionnel)
price_by_unit number optionnel Nouveau prix unitaire (optionnel)
unit string optionnel Nouvelle unité (optionnel)
stock_quantity number optionnel Nouvelle quantité en stock (optionnel)
description string optionnel Nouvelle description (optionnel)
ref string optionnel Référence (optionnel)
location string optionnel Emplacement (optionnel)
is_promotion boolean optionnel En promotion (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_product",
        "arguments": {
            "establishment_id": 1,
            "establishment_product_id": 1
        }
    }
}'

delete_product

Supprime un produit du catalogue d'un établissement. Action irréversible. produits.products.delete

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
establishment_product_id integer requis ID du produit (champ "id" de list_products)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "delete_product",
        "arguments": {
            "establishment_id": 1,
            "establishment_product_id": 1
        }
    }
}'

Ingrédients 5 outils

create_ingredient

Crée un nouvel ingrédient pour un établissement. ingredients.ingredients.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
name string requis Nom de l'ingrédient
unit string requis Unité (ex: g, kg, ml, L, pièce)
cooking_coefficient number optionnel Coefficient de transformation à la cuisson : poids_final = poids_brut × coefficient. 1 = neutre, >1 expansion (riz ≈3, pâtes ≈2.5), <1 perte (viande ≈0.7). Défaut 1.
price_per_unit number requis Prix unitaire
quantity_in_stock number requis Quantité en stock
alert_threshold number optionnel Seuil d'alerte stock
description string optionnel Description (optionnel)
calories number optionnel Calories pour 100g
proteins number optionnel Protéines (g)
carbs number optionnel Glucides (g)
fats number optionnel Lipides (g)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_ingredient",
        "arguments": {
            "establishment_id": 1,
            "name": "exemple",
            "unit": "exemple",
            "price_per_unit": 1,
            "quantity_in_stock": 1
        }
    }
}'

list_ingredients

Liste les ingrédients d'un établissement. Filtres optionnels : recherche par nom, type. ingredients.ingredients.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
search string optionnel Recherche par nom (optionnel)
type string — frais | surgele | sec | autres optionnel Filtre par type (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_ingredients",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

get_ingredient

Retourne le détail d'un ingrédient d'un établissement. ingredients.ingredients.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
ingredient_id integer requis ID de l'ingrédient
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_ingredient",
        "arguments": {
            "establishment_id": 1,
            "ingredient_id": 1
        }
    }
}'

update_ingredient

Modifie un ingrédient (nom, unité, prix, stock, seuil, valeurs nutritionnelles). ingredients.ingredients.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
ingredient_id integer requis ID de l'ingrédient
name string optionnel Nouveau nom (optionnel)
unit string optionnel Unité (optionnel)
cooking_coefficient number optionnel Coefficient de transformation cuisson : poids_final = poids_brut × coefficient (1=neutre, >1 expansion, <1 perte). Optionnel.
price_per_unit number optionnel Prix unitaire (optionnel)
quantity_in_stock number optionnel Quantité en stock (optionnel)
alert_threshold number optionnel Seuil d'alerte (optionnel)
description string optionnel Description (optionnel)
calories number optionnel Calories (optionnel)
proteins number optionnel Protéines (optionnel)
carbs number optionnel Glucides (optionnel)
fats number optionnel Lipides (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_ingredient",
        "arguments": {
            "establishment_id": 1,
            "ingredient_id": 1
        }
    }
}'

delete_ingredient

Supprime un ingrédient d'un établissement. Action irréversible. ingredients.ingredients.delete

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
ingredient_id integer requis ID de l'ingrédient
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "delete_ingredient",
        "arguments": {
            "establishment_id": 1,
            "ingredient_id": 1
        }
    }
}'

Recettes 5 outils

list_recipes

Liste toutes les recettes d'un établissement. recettes.sheets.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_recipes",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_recipe

Crée une recette COMPLÈTE (ingrédients + étapes + catégories) pour un établissement. NE PAS mettre les étapes ni les ingrédients dans "desc" : utiliser les tableaux "ingredients" et "steps". "desc" est une courte description générale uniquement. recettes.sheets.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
name string requis Nom de la recette
desc string optionnel Courte description générale (PAS les étapes ni la liste d'ingrédients)
dificulty integer optionnel Difficulté 1-3 (1=facile, 2=moyen, 3=difficile)
preparation_time integer optionnel Temps de préparation en minutes
how_many_people integer optionnel Nombre de personnes (portions)
ingredients array<object> optionnel Liste des ingrédients de la recette. Chaque ingrédient est retrouvé par nom dans l'établissement (ou créé s'il n'existe pas).
steps array<object> optionnel Étapes de préparation, dans l'ordre. Numérotées automatiquement.
category_ids array<integer> optionnel IDs des catégories (multi). Optionnel.
category_names array<string> optionnel Noms des catégories (multi) — créées si absentes. Optionnel.
recommended_price number optionnel Prix de vente recommandé
target_margin_rate number optionnel Taux de marge cible en % (base "marge" = (PV−coût)/coût)
margin_basis string — marge | coefficient optionnel Base de marge (défaut "marge")
price_includes_tax boolean optionnel Le prix saisi est-il TTC ? (défaut false = HT)
tax_rate number optionnel Taux de TVA en % (0-100)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_recipe",
        "arguments": {
            "establishment_id": 1,
            "name": "exemple"
        }
    }
}'

get_recipe

Retourne le détail d'une recette d'un établissement. recettes.sheets.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
recipe_id integer requis ID de la recette
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_recipe",
        "arguments": {
            "establishment_id": 1,
            "recipe_id": 1
        }
    }
}'

update_recipe

Modifie une recette. ingredients/steps/category_ids/category_names ne sont resynchronisés QUE s'ils sont fournis (sinon l'existant est conservé). NE PAS mettre étapes/ingrédients dans "desc". recettes.sheets.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
recipe_id integer requis ID de la recette
name string optionnel Nouveau nom (optionnel)
desc string optionnel Courte description (optionnel, PAS les étapes/ingrédients)
dificulty integer optionnel Difficulté 1-3 (optionnel)
preparation_time integer optionnel Temps de préparation en minutes (optionnel)
how_many_people integer optionnel Nombre de personnes / portions (optionnel)
status integer optionnel Statut (optionnel)
ingredients array<object> optionnel Remplace TOUS les ingrédients si fourni. Items {name|ingredient_id, quantity, unit}.
steps array<object> optionnel Remplace TOUTES les étapes si fourni. Items {description, preparation_time?}.
category_ids array<integer> optionnel IDs catégories (multi) — remplace si fourni.
category_names array<string> optionnel Noms catégories (multi, créées si absentes) — remplace si fourni.
recommended_price number optionnel Prix de vente recommandé (optionnel)
target_margin_rate number optionnel Taux de marge cible en % (optionnel)
margin_basis string — marge | coefficient optionnel Base de marge (optionnel, défaut marge)
price_includes_tax boolean optionnel Prix saisi TTC ? (optionnel)
tax_rate number optionnel Taux de TVA en % (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_recipe",
        "arguments": {
            "establishment_id": 1,
            "recipe_id": 1
        }
    }
}'

delete_recipe

Supprime une recette d'un établissement (corbeille / soft delete). recettes.sheets.delete

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
recipe_id integer requis ID de la recette
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "delete_recipe",
        "arguments": {
            "establishment_id": 1,
            "recipe_id": 1
        }
    }
}'

Catégories 4 outils

list_categories

Liste les catégories d'un établissement (y compris les catégories globales). categories.categories.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_categories",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_category

Crée une catégorie d'ingrédient, de produit ou de recette pour un établissement (paramètre type). Les catégories de PLAT (carte/vitrine) se gèrent dans l'éditeur de carte. categories.categories.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
name string requis Nom de la catégorie
type string — ingredient | produit | recette optionnel Module concerné (défaut ingredient). Détermine dans quel select la catégorie apparaît.
description string optionnel Description (optionnel)
parent_id integer optionnel ID de la catégorie parente (optionnel)
icon string optionnel Icône (optionnel)
color string optionnel Couleur (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_category",
        "arguments": {
            "establishment_id": 1,
            "name": "exemple"
        }
    }
}'

update_category

Modifie une catégorie d'un établissement. categories.categories.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
category_id integer requis ID de la catégorie
name string optionnel Nouveau nom (optionnel)
description string optionnel Description (optionnel)
parent_id integer optionnel Catégorie parente (optionnel)
icon string optionnel Icône (optionnel)
color string optionnel Couleur (optionnel)
is_active boolean optionnel Active (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_category",
        "arguments": {
            "establishment_id": 1,
            "category_id": 1
        }
    }
}'

delete_category

Supprime une catégorie propre à un établissement (les catégories globales sont protégées). categories.categories.delete

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
category_id integer requis ID de la catégorie
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "delete_category",
        "arguments": {
            "establishment_id": 1,
            "category_id": 1
        }
    }
}'

Carte & plats 7 outils

list_dishes

Liste les plats de la carte d'un établissement. carte.dishes.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
active boolean optionnel Filtrer par statut actif (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_dishes",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_dish

Ajoute un plat à la carte d'un établissement. carte.dishes.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
name string requis Nom du plat
price number requis Prix
tva_nature string — immediate | conservable | alcohol | exonere optionnel Nature TVA : immediate=10% (plat à consommation immédiate), conservable=10% sur place/5,5% emporté (emballé/sous vide), alcohol=20% (boisson alcoolisée). Défaut immediate.
description string optionnel Description (optionnel)
category_id integer optionnel Catégorie (optionnel)
prep_time integer optionnel Temps de préparation en minutes (optionnel)
portions integer optionnel Nombre de portions (optionnel)
active boolean optionnel Actif (défaut : true)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_dish",
        "arguments": {
            "establishment_id": 1,
            "name": "exemple",
            "price": 1
        }
    }
}'

create_dish_category

Crée une catégorie de PLAT (carte / vitrine), éventuellement comme sous-catégorie (2 niveaux max via parent_id ou parent_name). Apparaît dans la carte des plats et la vitrine. carte.categories.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
name string requis Nom de la catégorie de plat
parent_id integer optionnel ID de la catégorie parente (sous-catégorie). Optionnel.
parent_name string optionnel Nom de la catégorie parente (alternative à parent_id). Optionnel.
description string optionnel Description (optionnel)
show_on_storefront boolean optionnel Visible sur la vitrine (défaut true)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_dish_category",
        "arguments": {
            "establishment_id": 1,
            "name": "exemple"
        }
    }
}'

import_storefront_menu

Construit TOUTE la carte vitrine en un appel : catégories + sous-catégories + plats, et formules éditoriales (formule > sections > groupes > éléments + notes). Idempotent sur les noms (catégories/plats existants réutilisés). Idéal pour bâtir la carte complète d'un restaurant. carte.dishes.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
categories array<object> optionnel Catégories de plats (2 niveaux). Les plats sont créés/reliés par nom.
formules array<object> optionnel Formules éditoriales (façon brochure MEEMA).
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "import_storefront_menu",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

update_dish

Modifie un plat de la carte d'un établissement. carte.dishes.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
dish_id integer requis ID du plat
name string optionnel Nouveau nom (optionnel)
price number optionnel Nouveau prix (optionnel)
tva_nature string — immediate | conservable | alcohol | exonere optionnel Nature TVA : immediate=10%, conservable=10/5,5%, alcohol=20% (optionnel).
description string optionnel Description (optionnel)
category_id integer optionnel Catégorie (optionnel)
prep_time integer optionnel Temps de préparation (optionnel)
portions integer optionnel Portions (optionnel)
active boolean optionnel Actif (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_dish",
        "arguments": {
            "establishment_id": 1,
            "dish_id": 1
        }
    }
}'

delete_dish

Supprime un plat de la carte d'un établissement. Action irréversible. carte.dishes.delete

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
dish_id integer requis ID du plat
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "delete_dish",
        "arguments": {
            "establishment_id": 1,
            "dish_id": 1
        }
    }
}'

list_beverages

Carte des vins & boissons (par catégorie). carte.dishes.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_beverages",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

Unités 1 outil

list_units

Liste les unités de mesure disponibles (référentiel global, lecture seule). unites.units.view

Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_units",
        "arguments": {}
    }
}'

Fournisseurs 3 outils

list_suppliers

Liste tous les fournisseurs d'un établissement. fournisseurs.suppliers.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
name string optionnel Filtre optionnel par nom du fournisseur
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_suppliers",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

get_supplier

Retourne les détails d'un fournisseur spécifique. fournisseurs.suppliers.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
supplier_id integer requis ID du fournisseur
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_supplier",
        "arguments": {
            "establishment_id": 1,
            "supplier_id": 1
        }
    }
}'

create_supplier

Crée un nouveau fournisseur pour un établissement. fournisseurs.suppliers.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
name string requis Nom du fournisseur
adresse string optionnel Adresse
ville string optionnel Ville
pays string optionnel Pays
code_postal string optionnel Code postal
tel string optionnel Téléphone
email string optionnel Email
website string optionnel Site web
type string optionnel Type de produits fournis
status string — actif | inactif optionnel Statut (défaut: actif)
reliability number optionnel Fiabilité de 0 à 5
livraison boolean optionnel Livraison disponible
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_supplier",
        "arguments": {
            "establishment_id": 1,
            "name": "exemple"
        }
    }
}'

Commandes fournisseurs 1 outil

create_supplier_order

Crée une commande fournisseur (date_prevue par défaut : J+2). courses.orders.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
fournisseur_id integer requis ID du fournisseur
date_prevue string optionnel Date de livraison prévue YYYY-MM-DD (défaut : J+2)
items array<object> requis Liste des articles à commander
note string optionnel Note optionnelle sur la commande
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_supplier_order",
        "arguments": {
            "establishment_id": 1,
            "fournisseur_id": 1,
            "items": [
                {
                    "ingredient_id": 1,
                    "quantity": 1
                }
            ]
        }
    }
}'

Livraisons 1 outil

list_deliveries

Liste les livraisons fournisseurs d'un établissement. livraisons.deliveries.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
status string optionnel Filtre par statut (optionnel) : en_attente, reçue, annulee
limit integer optionnel Nombre max de résultats (défaut : 50)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_deliveries",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

Équipe (RH) 9 outils

list_employees

Liste tous les employés d'un établissement. rh.employees.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_employees",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_employee

Crée un nouvel employé pour un établissement avec son planning optionnel. rh.employees.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
first_name string requis Prénom
last_name string requis Nom de famille
email string requis Email
phone_number string requis Numéro de téléphone
role string optionnel Rôle : employee, manager, chef, cuisinier, serveur (défaut: employee)
schedule object optionnel Planning hebdomadaire (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_employee",
        "arguments": {
            "establishment_id": 1,
            "first_name": "exemple",
            "last_name": "exemple",
            "email": "exemple",
            "phone_number": "exemple"
        }
    }
}'

get_employee

Retourne les détails complets d'un employé (profil, rôle, planning, contrat). rh.employees.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
employee_id integer requis ID de l'employé
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_employee",
        "arguments": {
            "establishment_id": 1,
            "employee_id": 1
        }
    }
}'

update_employee

Modifie les informations d'un employé (prénom, nom, email, téléphone, rôle). rh.employees.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
employee_id integer requis ID de l'employé
first_name string optionnel Nouveau prénom (optionnel)
last_name string optionnel Nouveau nom (optionnel)
email string optionnel Nouvel email (optionnel)
phone_number string optionnel Nouveau téléphone (optionnel)
role string optionnel Nouveau rôle (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_employee",
        "arguments": {
            "establishment_id": 1,
            "employee_id": 1
        }
    }
}'

update_employee_schedule

Remplace entièrement le planning hebdomadaire d'un employé. rh.employees.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
employee_id integer requis ID de l'employé
schedules array<object> requis Tableau des créneaux horaires
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_employee_schedule",
        "arguments": {
            "establishment_id": 1,
            "employee_id": 1,
            "schedules": [
                {
                    "day": "exemple",
                    "start_time": "exemple",
                    "end_time": "exemple"
                }
            ]
        }
    }
}'

delete_employee

Supprime un employé et son planning. Action irréversible. rh.employees.delete

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
employee_id integer requis ID de l'employé
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "delete_employee",
        "arguments": {
            "establishment_id": 1,
            "employee_id": 1
        }
    }
}'

list_employee_contracts

Liste les contrats des employés d'un établissement. Filtre : employé. rh.contracts.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
employee_id integer optionnel Filtrer par employé (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_employee_contracts",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_employee_contract

Crée un contrat de travail pour un employé. rh.contracts.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
employee_id integer requis ID de l'employé
type string optionnel Type : CDI, CDD, Extra, Apprentissage, Stage (défaut : CDI)
start_date string optionnel Date de début YYYY-MM-DD (défaut : aujourd'hui)
end_date string optionnel Date de fin YYYY-MM-DD (optionnel, pour CDD)
job_title string optionnel Intitulé du poste (optionnel)
base_salary number optionnel Salaire de base (optionnel)
weekly_hours number optionnel Heures hebdomadaires (optionnel)
days_per_week integer optionnel Jours par semaine (optionnel)
manager_name string optionnel Nom du responsable (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_employee_contract",
        "arguments": {
            "establishment_id": 1,
            "employee_id": 1
        }
    }
}'

list_employee_documents

Liste les documents administratifs des employés d'un établissement. Filtre : employé. rh.documents.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
employee_id integer optionnel Filtrer par employé (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_employee_documents",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

Pointages 1 outil

list_attendances

Liste les pointages (clock in/out) des employés sur une période. pointages.attendances.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
date_from string optionnel Début période YYYY-MM-DD (défaut : 1er du mois)
date_to string optionnel Fin période YYYY-MM-DD (défaut : fin du mois)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_attendances",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

Congés 3 outils

list_leaves

Liste les demandes de congés des employés. Filtre optionnel par statut. conges.requests.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
status string — pending | approved | rejected optionnel Filtre par statut (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_leaves",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

approve_leave

Approuve une demande de congé en attente. conges.approval.approve

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
leave_id integer requis ID de la demande de congé
comments string optionnel Commentaire optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "approve_leave",
        "arguments": {
            "establishment_id": 1,
            "leave_id": 1
        }
    }
}'

reject_leave

Refuse une demande de congé en attente. conges.approval.reject

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
leave_id integer requis ID de la demande de congé
reason string requis Motif du refus (obligatoire)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "reject_leave",
        "arguments": {
            "establishment_id": 1,
            "leave_id": 1,
            "reason": "exemple"
        }
    }
}'

Planning 3 outils

list_plannings

Liste les shifts (planning des horaires) de l'équipe pour une semaine, avec heures et coût estimé. planning.shifts.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
week string optionnel Une date dans la semaine voulue (défaut : aujourd'hui)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_plannings",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_shift

Crée un shift (créneau de travail) pour un employé un jour donné, et le publie. planning.shifts.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
professional_id integer requis
day string requis
start string requis HH:MM
end string requis HH:MM
role_label string optionnel Poste : cuisine, salle, plonge, bar, management, livraison
break_minutes integer optionnel
note string optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_shift",
        "arguments": {
            "establishment_id": 1,
            "professional_id": 1,
            "day": "exemple",
            "start": "exemple",
            "end": "exemple"
        }
    }
}'

assign_task

Assigne une tâche à un employé (date/heure/priorité optionnelles). planning.tasks.assign

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
professional_id integer requis
name string requis
date string optionnel
time string optionnel HH:MM
priority string — basse | normale | haute | urgente optionnel
category string optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "assign_task",
        "arguments": {
            "establishment_id": 1,
            "professional_id": 1,
            "name": "exemple"
        }
    }
}'

Production 6 outils

list_production_plans

Liste les plans de production sur une période donnée. production.plans.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
start_date string optionnel Début YYYY-MM-DD (défaut : aujourd'hui)
end_date string optionnel Fin YYYY-MM-DD (défaut : +30 jours)
status string optionnel Filtre par statut (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_production_plans",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_production_plan

Planifie une production (plat ou recette) pour un établissement. production.plans.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
item_id string requis ID du plat (entier) ou de la recette (préfixe "recipe_", ex: "recipe_12")
planned_quantity integer requis Quantité planifiée
planned_date string requis Date de production YYYY-MM-DD
planned_time string optionnel Heure HH:MM (défaut : 09:00)
notes string optionnel Notes optionnelles
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_production_plan",
        "arguments": {
            "establishment_id": 1,
            "item_id": "exemple",
            "planned_quantity": 1,
            "planned_date": "exemple"
        }
    }
}'

validate_production

Valide une production réalisée et met à jour le stock automatiquement. production.validation.validate

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
production_id integer requis ID du plan de production
produced_quantity integer requis Quantité réellement produite
temperature_log number optionnel Température enregistrée (optionnel)
notes string optionnel Notes optionnelles
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "validate_production",
        "arguments": {
            "establishment_id": 1,
            "production_id": 1,
            "produced_quantity": 1
        }
    }
}'

get_production_ingredients

Retourne les ingrédients nécessaires pour un plan de production (avec statut suffisant/manquant). production.plans.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
production_id integer requis ID du plan de production
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_production_ingredients",
        "arguments": {
            "establishment_id": 1,
            "production_id": 1
        }
    }
}'

list_production_alerts

Liste les ingrédients manquants pour les productions planifiées dans les prochains jours. production.missing.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
days integer optionnel Horizon en jours (défaut : 7)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_production_alerts",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

list_top_productions

Liste les plats/recettes les plus produits sur une période. production.plans.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
days integer optionnel Nombre de jours en arrière (défaut : 30)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_top_productions",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

HACCP 17 outils

list_haccp_reception

Liste les fiches de réception HACCP d'un établissement. haccp.reception.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_haccp_reception",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

add_temperature

Enregistre une mesure de température d'équipement (HACCP). haccp.temperatures.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
equipment_id integer requis ID de l'équipement
temperature number requis Température en degrés Celsius
measured_at string optionnel Date/heure ISO 8601 (optionnel, défaut = maintenant)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "add_temperature",
        "arguments": {
            "establishment_id": 1,
            "equipment_id": 1,
            "temperature": 1
        }
    }
}'

list_haccp_temperatures

Liste les relevés de températures HACCP d'un établissement. Filtres optionnels : période, équipement, type. haccp.temperatures.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
start_date string optionnel Début période YYYY-MM-DD (optionnel)
end_date string optionnel Fin période YYYY-MM-DD (optionnel)
equipment_id integer optionnel Filtre par équipement (optionnel)
type string optionnel Type d'équipement (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_haccp_temperatures",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_haccp_reception

Crée un contrôle de réception HACCP manuel (arrivée fournisseur). haccp.reception.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
date_controle string requis Date du contrôle YYYY-MM-DD
heure_controle string requis Heure HH:MM
etat_livraison string — conforme | non_conforme requis État de la livraison
fournisseur_id integer optionnel ID fournisseur (optionnel)
fournisseur_nom string optionnel Nom fournisseur libre (optionnel)
reference_bl string optionnel Référence BL (optionnel)
temperature_produits_frais number optionnel Température produits frais en °C (optionnel)
commentaires string optionnel Commentaires (optionnel)
non_conformites array<mixed> optionnel Liste des non-conformités si etat=non_conforme
validate boolean optionnel Valider immédiatement (défaut : false)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_haccp_reception",
        "arguments": {
            "establishment_id": 1,
            "date_controle": "exemple",
            "heure_controle": "exemple",
            "etat_livraison": "conforme"
        }
    }
}'

list_haccp_labels

Liste les étiquettes HACCP (DLC) d'un établissement. Filtre : statut. haccp.labels.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
status string optionnel Statut : created, printed, validated, used (optionnel)
limit integer optionnel Nombre max (défaut : 100)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_haccp_labels",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_haccp_label

Crée une étiquette HACCP (DLC). Le numéro de lot est généré automatiquement si absent. haccp.labels.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
ingredient_name string requis Nom du produit/ingrédient
quantity integer optionnel Quantité (optionnel)
unit string optionnel Unité (optionnel)
dlc string optionnel Date limite de consommation YYYY-MM-DD (optionnel)
type string optionnel Type : Fait/ouvert, Prêt à manger, Surgelé, Frais, Vente (défaut : Frais)
storage_location string optionnel Lieu de stockage (optionnel)
temperature number optionnel Température de stockage °C (optionnel)
lot_number string optionnel Numéro de lot (optionnel, auto-généré sinon)
notes string optionnel Notes (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_haccp_label",
        "arguments": {
            "establishment_id": 1,
            "ingredient_name": "exemple"
        }
    }
}'

list_haccp_tracabilite

Liste les enregistrements de traçabilité HACCP d'un établissement. haccp.tracability.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
status string optionnel Statut : "complété", "non complété" (optionnel)
limit integer optionnel Nombre max (défaut : 100)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_haccp_tracabilite",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_haccp_tracabilite

Crée un enregistrement de traçabilité HACCP. haccp.tracability.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
type string optionnel Type : simple, complete (défaut : simple)
reference_type string optionnel Type d'élément tracé : ingredient, plat, product, haccp (optionnel)
reference_id integer optionnel ID de l'élément tracé (optionnel)
quantite string optionnel Quantité (optionnel)
dlc string optionnel DLC YYYY-MM-DD (optionnel)
lot string optionnel Numéro de lot (optionnel)
remarques string optionnel Remarques (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_haccp_tracabilite",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

list_hygiene_checklists

Liste les modèles de checklist hygiène HACCP d'un établissement. haccp.checklist.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
categorie string optionnel Filtre par catégorie (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_hygiene_checklists",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_hygiene_checklist_validation

Enregistre une validation de checklist hygiène pour un modèle donné. haccp.checklist.validate

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
template_id integer requis ID du modèle de checklist
zone_controle string optionnel Zone contrôlée (optionnel)
reponses object optionnel Réponses clé/valeur (ex: {"tenues_propres":"oui"})
commentaires string optionnel Commentaires (optionnel)
statut string optionnel Statut (défaut : complete)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_hygiene_checklist_validation",
        "arguments": {
            "establishment_id": 1,
            "template_id": 1
        }
    }
}'

list_cleaning_zones

Liste les zones de nettoyage (avec leurs postes) d'un établissement. haccp.cleaning_plan.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_cleaning_zones",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

list_cleaning_actions

Liste les actions de nettoyage réalisées d'un établissement. Filtres : période. haccp.cleaning_plan.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
date_from string optionnel Début YYYY-MM-DD (optionnel)
date_to string optionnel Fin YYYY-MM-DD (optionnel)
limit integer optionnel Nombre max (défaut : 100)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_cleaning_actions",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

record_cleaning_action

Enregistre une action de nettoyage réalisée sur un poste. haccp.cleaning_plan.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
poste_nettoyage_id integer requis ID du poste de nettoyage
commentaires string optionnel Commentaires (optionnel)
statut string optionnel Statut (défaut : complete)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "record_cleaning_action",
        "arguments": {
            "establishment_id": 1,
            "poste_nettoyage_id": 1
        }
    }
}'

create_equipment

Crée un équipement de suivi des températures (frigo, congélateur, chambre froide, cellule, four…). haccp.temperatures.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
label string requis Nom de l'équipement (ex. « Frigo pâtisserie »)
type string optionnel Type : frigo, congelateur, chambre_froide, cellule, four, autre
emplacement string optionnel Emplacement (cuisine, réserve…)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_equipment",
        "arguments": {
            "establishment_id": 1,
            "label": "exemple"
        }
    }
}'

create_hygiene_checklist

Crée un modèle de checklist hygiène (point de contrôle + liste de vérifications), utilisable ensuite par create_hygiene_checklist_validation. haccp.checklist.validate

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
nom_point_controle string requis Nom du point de contrôle (ex. « Ouverture cuisine »)
categorie string — hygiene_personnel | etat_locaux optionnel Catégorie (défaut : etat_locaux)
description string optionnel
points_controle array<string> requis Liste des vérifications (ex. ["Températures relevées", "Plans de travail désinfectés"])
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_hygiene_checklist",
        "arguments": {
            "establishment_id": 1,
            "nom_point_controle": "exemple",
            "points_controle": [
                "exemple"
            ]
        }
    }
}'

create_cleaning_zone

Crée une zone du plan de nettoyage avec ses postes (ex. zone « Cuisine » avec postes « Plans de travail », « Sols »). haccp.cleaning_plan.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
nom_zone string requis Nom de la zone (Cuisine, Salle, Réserve…)
description string optionnel
postes array<string> requis Postes de nettoyage de la zone
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_cleaning_zone",
        "arguments": {
            "establishment_id": 1,
            "nom_zone": "exemple",
            "postes": [
                "exemple"
            ]
        }
    }
}'

complete_haccp_tracabilite

Complète une fiche de traçabilité HACCP (statut « complété », quantité/remarques mises à jour). haccp.tracability.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
tracabilite_id integer requis
quantite string optionnel Quantité constatée (optionnel)
remarques string optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "complete_haccp_tracabilite",
        "arguments": {
            "establishment_id": 1,
            "tracabilite_id": 1
        }
    }
}'

Clients 5 outils

list_clients

Liste les clients d'un établissement. Filtres : recherche, statut. clients.clients.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
search string optionnel Recherche nom/prénom/email/téléphone (optionnel)
status string optionnel Statut : Actif, Inactif, Suspendu (optionnel)
limit integer optionnel Nombre max (défaut : 100)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_clients",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

get_client

Retourne le détail d'un client d'un établissement. clients.clients.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
client_id integer requis ID du client
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_client",
        "arguments": {
            "establishment_id": 1,
            "client_id": 1
        }
    }
}'

create_client

Crée un client pour un établissement. clients.clients.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
nom string requis Nom de famille
prenom string optionnel Prénom (optionnel)
email string optionnel Email (optionnel)
num_tel string optionnel Téléphone (optionnel)
adresse string optionnel Adresse (optionnel)
code_postal string optionnel Code postal (optionnel)
ville string optionnel Ville (optionnel)
pays string optionnel Pays (optionnel)
numero_tva string optionnel Numéro de TVA intracom (optionnel)
siret string optionnel SIRET (optionnel)
genre string optionnel Genre (optionnel)
status string optionnel Statut : Actif, Inactif, Suspendu (défaut : Actif)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_client",
        "arguments": {
            "establishment_id": 1,
            "nom": "exemple"
        }
    }
}'

update_client

Modifie un client d'un établissement. clients.clients.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
client_id integer requis ID du client
nom string optionnel Nom (optionnel)
prenom string optionnel Prénom (optionnel)
email string optionnel Email (optionnel)
num_tel string optionnel Téléphone (optionnel)
adresse string optionnel Adresse (optionnel)
code_postal string optionnel Code postal (optionnel)
ville string optionnel Ville (optionnel)
pays string optionnel Pays (optionnel)
numero_tva string optionnel Numéro de TVA (optionnel)
siret string optionnel SIRET (optionnel)
status string optionnel Statut (optionnel)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_client",
        "arguments": {
            "establishment_id": 1,
            "client_id": 1
        }
    }
}'

delete_client

Supprime un client d'un établissement. Action irréversible. clients.clients.delete

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
client_id integer requis ID du client
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "delete_client",
        "arguments": {
            "establishment_id": 1,
            "client_id": 1
        }
    }
}'

Factures 4 outils

list_invoices

Liste les factures d'un établissement. Filtres : statut, recherche. factures.invoices.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
status string optionnel Statut : brouillon, en_attente, envoyee, acceptee, refusee, litige, payee, annulee (optionnel)
search string optionnel Recherche par numéro ou client (optionnel)
limit integer optionnel Nombre max (défaut : 100)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_invoices",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

get_invoice

Retourne le détail complet d'une facture (lignes incluses). factures.invoices.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
invoice_id integer requis ID de la facture
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_invoice",
        "arguments": {
            "establishment_id": 1,
            "invoice_id": 1
        }
    }
}'

create_invoice

Crée une facture (brouillon) avec ses lignes. Les totaux sont calculés automatiquement. factures.invoices.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
client_id integer optionnel ID du client (optionnel)
invoice_date string optionnel Date facture YYYY-MM-DD (défaut : aujourd'hui)
due_date string optionnel Date d'échéance YYYY-MM-DD (optionnel)
tax_rate number optionnel Taux de TVA global en % (optionnel)
discount_amount number optionnel Remise globale (optionnel)
payment_method string optionnel Mode de paiement (optionnel)
notes string optionnel Notes (optionnel)
items array<object> requis Lignes de la facture
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_invoice",
        "arguments": {
            "establishment_id": 1,
            "items": [
                {
                    "name": "exemple",
                    "quantity": 1,
                    "unit_price": 1
                }
            ]
        }
    }
}'

update_invoice_status

Change le statut d'une facture en respectant les transitions légales autorisées (DGFiP). factures.invoices.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
invoice_id integer requis ID de la facture
status string — brouillon | en_attente | envoyee | acceptee | refusee | litige | payee | annulee requis Nouveau statut
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_invoice_status",
        "arguments": {
            "establishment_id": 1,
            "invoice_id": 1,
            "status": "brouillon"
        }
    }
}'

Devis 4 outils

list_quotes

Liste les devis d'un établissement. Filtre : statut. devis.quotes.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
status string optionnel Statut : brouillon, envoye, accepte, refuse, expire (optionnel)
limit integer optionnel Nombre max (défaut : 100)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_quotes",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

get_quote

Retourne le détail complet d'un devis (lignes incluses). devis.quotes.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
quote_id integer requis ID du devis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_quote",
        "arguments": {
            "establishment_id": 1,
            "quote_id": 1
        }
    }
}'

create_quote

Crée un devis (brouillon) avec ses lignes. Totaux et acompte calculés automatiquement. devis.quotes.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
client_id integer optionnel ID du client (optionnel)
quote_date string optionnel Date du devis YYYY-MM-DD (défaut : aujourd'hui)
validity_date string optionnel Date de validité YYYY-MM-DD (optionnel)
tax_rate number optionnel TVA globale en % (optionnel)
discount_amount number optionnel Remise globale (optionnel)
advance_percentage number optionnel Pourcentage d'acompte (optionnel)
payment_method string optionnel Mode de paiement (optionnel)
notes string optionnel Notes (optionnel)
items array<object> requis Lignes du devis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_quote",
        "arguments": {
            "establishment_id": 1,
            "items": [
                {
                    "name": "exemple",
                    "quantity": 1,
                    "unit_price": 1
                }
            ]
        }
    }
}'

update_quote_status

Change le statut d'un devis (brouillon, envoye, accepte, refuse, expire). devis.quotes.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
quote_id integer requis ID du devis
status string — brouillon | envoye | accepte | refuse | expire requis Nouveau statut
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_quote_status",
        "arguments": {
            "establishment_id": 1,
            "quote_id": 1,
            "status": "brouillon"
        }
    }
}'

Dépenses 3 outils

list_expenses

Liste les dépenses (achats fournisseurs) d'un établissement. Filtres : statut, recherche. expenses.expenses.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
status string optionnel Statut : payee, en_attente, decline (optionnel)
search string optionnel Recherche par numéro/référence/fournisseur (optionnel)
limit integer optionnel Nombre max (défaut : 100)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_expenses",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

get_expense

Retourne le détail complet d'une dépense (lignes incluses). expenses.expenses.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
expense_id integer requis ID de la dépense
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_expense",
        "arguments": {
            "establishment_id": 1,
            "expense_id": 1
        }
    }
}'

create_expense

Enregistre une dépense (achat) avec ses lignes. Totaux calculés automatiquement. expenses.expenses.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
supplier_id integer optionnel ID du fournisseur (optionnel)
purchase_date string optionnel Date d'achat YYYY-MM-DD (défaut : aujourd'hui)
supplier_invoice_reference string optionnel Référence facture fournisseur (optionnel)
category string optionnel Catégorie de dépense (optionnel)
payment_method string optionnel Mode de paiement (optionnel)
status string optionnel Statut : payee, en_attente, decline (défaut : en_attente)
notes string optionnel Notes (optionnel)
items array<object> requis Lignes de la dépense
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_expense",
        "arguments": {
            "establishment_id": 1,
            "items": [
                {
                    "name": "exemple",
                    "quantity": 1,
                    "unit_price": 1
                }
            ]
        }
    }
}'

TVA 2 outils

list_tva

Liste les taux de TVA configurés pour un établissement. tva.rates.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_tva",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_tva

Crée un taux de TVA pour un établissement. tva.rates.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
name string requis Nom du taux (ex: Taux normal, Taux réduit)
percentage number requis Pourcentage (ex: 20, 10, 5.5)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_tva",
        "arguments": {
            "establishment_id": 1,
            "name": "exemple",
            "percentage": 1
        }
    }
}'

Finance 1 outil

finance_summary

Synthèse financière d'un établissement : CA facturé, encaissé, impayés, dépenses, marge sur une période. finance.dashboard.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
date_from string optionnel Début période YYYY-MM-DD (défaut : 1er jour du mois)
date_to string optionnel Fin période YYYY-MM-DD (défaut : aujourd'hui)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "finance_summary",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

Notifications 2 outils

list_notifications

Liste les notifications d'un établissement. notifications.notifications.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_notifications",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_notification

Crée une nouvelle notification pour un établissement. notifications.notifications.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
title string requis Titre de la notification
message string requis Corps du message
type string — info | warning | danger | success optionnel Type de notification (défaut : info)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_notification",
        "arguments": {
            "establishment_id": 1,
            "title": "exemple",
            "message": "exemple"
        }
    }
}'

Commandes, caisse & livraison 23 outils

list_orders

Liste les commandes (tous canaux : téléphone, agent vocal, sur place, vitrine, manuel). Filtres : statut, canal, date. orders.online.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
status string optionnel en_attente|confirmee|en_preparation|prete|livree|annulee
channel string optionnel manuel|telephone|vitrine|agent_vocal|sur_place|facture|devis
date string optionnel Filtrer par jour YYYY-MM-DD
limit integer optionnel Max résultats (défaut 50)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_orders",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

get_order

Détail d'une commande (articles, totaux, facture/devis liés, table). orders.online.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
order_id integer requis ID de la commande
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_order",
        "arguments": {
            "establishment_id": 1,
            "order_id": 1
        }
    }
}'

create_order

Crée une commande (génère automatiquement facture + devis). Peut être liée à une table (sur place). orders.online.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
items array<object> requis Articles
channel string optionnel Canal (défaut manuel)
service_mode string optionnel livraison|emporter|sur_place
table_id integer optionnel Table (mode sur place)
covers integer optionnel Nombre de couverts
customer_name string optionnel
customer_phone string optionnel
customer_address string optionnel
notes string optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_order",
        "arguments": {
            "establishment_id": 1,
            "items": [
                {
                    "name": "exemple",
                    "quantity": 1,
                    "unit_price": 1
                }
            ]
        }
    }
}'

update_order_status

Change le statut d'une commande (répercute sur la facture/devis et la table : payée→nettoyage). orders.online.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
order_id integer requis
status string requis en_attente|confirmee|en_preparation|prete|livree|annulee
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_order_status",
        "arguments": {
            "establishment_id": 1,
            "order_id": 1,
            "status": "exemple"
        }
    }
}'

check_gift_card

Solde et validité d'une carte cadeau par code. orders.online.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
code string requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "check_gift_card",
        "arguments": {
            "establishment_id": 1,
            "code": "exemple"
        }
    }
}'

list_gift_cards

Cartes cadeaux vendues (encaissé, soldes restants). orders.online.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
status string optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_gift_cards",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

list_delivery_zones

Zones de livraison (frais, minimums, codes postaux). orders.online.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_delivery_zones",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

upsert_delivery_zone

Crée ou met à jour une zone de livraison. orders.online.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
zone_id integer optionnel
name string requis
postal_codes array<string> optionnel
fee number optionnel
minimum_order number optionnel
estimated_minutes integer optionnel
active boolean optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "upsert_delivery_zone",
        "arguments": {
            "establishment_id": 1,
            "name": "exemple"
        }
    }
}'

get_pos_session

Session de caisse en cours (fond, opérateur) + rapport X (CA, modes, TVA, remises). orders.online.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_pos_session",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

open_pos_session

Ouvre la caisse avec un fond initial. operator_id = employé ayant la permission caisse. orders.online.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
operator_id integer requis
opening_float number requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "open_pos_session",
        "arguments": {
            "establishment_id": 1,
            "operator_id": 1,
            "opening_float": 1
        }
    }
}'

close_pos_session

Clôture Z de la caisse : comptage espèces optionnel, écart calculé (exige confirm:true après avoir résumé le rapport X à l'opérateur). orders.online.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
operator_id integer requis
counted_cash number optionnel
confirm boolean requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "close_pos_session",
        "arguments": {
            "establishment_id": 1,
            "operator_id": 1,
            "confirm": true
        }
    }
}'

get_pos_report

Rapport X (session en cours) ou Z (session_id d'une session clôturée) : CA, ticket moyen, par mode, par opérateur, TVA, remises. orders.online.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
session_id integer optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_pos_report",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

record_pos_payment

Encaisse une note (paiement partiel ou total) : espèces avec rendu (tendered), carte, titre_restaurant (jamais de rendu), cheque. La note est soldée quand le reste dû atteint 0. orders.online.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
order_id integer requis
operator_id integer requis
method string — especes | carte | titre_restaurant | cheque requis
amount number requis
tendered number optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "record_pos_payment",
        "arguments": {
            "establishment_id": 1,
            "order_id": 1,
            "operator_id": 1,
            "method": "especes",
            "amount": 1
        }
    }
}'

list_pos_payments

Paiements d'une note (modes, montants, rendu, reste dû). orders.online.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
order_id integer requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_pos_payments",
        "arguments": {
            "establishment_id": 1,
            "order_id": 1
        }
    }
}'

list_happy_hours

Happy hours configurées (jours, créneau, remise, périmètre). orders.online.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_happy_hours",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

upsert_happy_hour

Crée ou met à jour une happy hour (days ISO 1-7, HH:MM, remise 1-90 %, scope all|category|plat). orders.online.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
happy_hour_id integer optionnel
name string requis
days array<integer> requis
start_time string requis
end_time string requis
discount_percent integer requis
scope_type string — all | category | plat optionnel
scope_ids array<integer> optionnel
active boolean optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "upsert_happy_hour",
        "arguments": {
            "establishment_id": 1,
            "name": "exemple",
            "days": [
                1
            ],
            "start_time": "exemple",
            "end_time": "exemple",
            "discount_percent": 1
        }
    }
}'

list_pos_tabs

Ardoises clients (soldes dus, statut) — le règlement se fait en caisse. orders.online.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_pos_tabs",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

list_payment_terminals

Terminaux de paiement (TPE Smile&Pay) : libellé, îlot, actif/défaut, dernière utilisation. Jamais de clé API dans la réponse. orders.online.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_payment_terminals",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

list_terminal_payments

Encaissements TPE (statut, montant, pourboire, terminal, rapprochement) — filtrables par jour et statut. orders.online.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
date string optionnel YYYY-MM-DD (défaut aujourd'hui)
status string optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_terminal_payments",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

get_smilepay_reconciliation

Rapprochement Smile&Pay d'un jour : encaissés/échoués/abandonnés, total, pourboires, paiements non rapprochés à vérifier. orders.online.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
date string optionnel YYYY-MM-DD (défaut aujourd'hui)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_smilepay_reconciliation",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

get_hubrise_status

État du connecteur HubRise : connexion, location, plats sans sku_ref (bloqués au push), commandes du jour en attente côté plateformes. orders.online.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_hubrise_status",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

Salle & réservations 16 outils

list_reservations

Liste les réservations de table. Filtres : statut, date. salle.reservations.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
status string optionnel en_attente|confirmee|installee|terminee|annulee|absent
date string optionnel Jour YYYY-MM-DD
limit integer optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_reservations",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

reservation_availability

Vérifie la disponibilité d'un créneau : restaurant ouvert + tables libres (anti-double-booking). salle.reservations.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
date string requis YYYY-MM-DD
time string requis HH:MM
party_size integer requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "reservation_availability",
        "arguments": {
            "establishment_id": 1,
            "date": "exemple",
            "time": "exemple",
            "party_size": 1
        }
    }
}'

create_reservation

Crée une réservation de table (assigne la meilleure table libre, ou celle choisie / dans la zone demandée). salle.reservations.create

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
customer_name string requis
customer_phone string optionnel
customer_email string optionnel
party_size integer requis
date string requis YYYY-MM-DD
time string requis HH:MM
zone string optionnel Zone souhaitée (ex. terrasse)
table_id integer optionnel Table précise (optionnel)
notes string optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_reservation",
        "arguments": {
            "establishment_id": 1,
            "customer_name": "exemple",
            "party_size": 1,
            "date": "exemple",
            "time": "exemple"
        }
    }
}'

confirm_reservation

Confirme une réservation (assigne une table si besoin → table « réservée »). salle.reservations.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
reservation_id integer requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "confirm_reservation",
        "arguments": {
            "establishment_id": 1,
            "reservation_id": 1
        }
    }
}'

checkin_reservation

Check-in : installe le client (table « occupée ») et crée la commande sur place. salle.reservations.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
reservation_id integer requis
table_id integer optionnel Table si non encore assignée
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "checkin_reservation",
        "arguments": {
            "establishment_id": 1,
            "reservation_id": 1
        }
    }
}'

cancel_reservation

Annule une réservation (libère la table). salle.reservations.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
reservation_id integer requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "cancel_reservation",
        "arguments": {
            "establishment_id": 1,
            "reservation_id": 1
        }
    }
}'

no_show_reservation

Marque une réservation en no-show (client absent → libère la table). salle.reservations.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
reservation_id integer requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "no_show_reservation",
        "arguments": {
            "establishment_id": 1,
            "reservation_id": 1
        }
    }
}'

list_zones

Liste les zones du plan de salle (Salle, Terrasse…). salle.tables.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_zones",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_zone

Crée une zone du plan de salle. salle.tables.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
name string requis
color string optionnel Couleur hex #RRGGBB
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_zone",
        "arguments": {
            "establishment_id": 1,
            "name": "exemple"
        }
    }
}'

list_tables

Liste les tables avec leur statut temps réel. Filtre : statut. salle.tables.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
status string optionnel free|reserved|occupied|cleaning|blocked
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_tables",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_table

Crée une table dans le plan de salle. salle.tables.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
name string requis
capacity integer optionnel
shape string optionnel round|square|rectangle
zone_id integer optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_table",
        "arguments": {
            "establishment_id": 1,
            "name": "exemple"
        }
    }
}'

update_table_status

Change le statut d'une table (free|reserved|occupied|cleaning|blocked). salle.tables.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
table_id integer requis
status string requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_table_status",
        "arguments": {
            "establishment_id": 1,
            "table_id": 1,
            "status": "exemple"
        }
    }
}'

floor_plan_status

Vue d'ensemble temps réel du plan de salle : compteurs par statut + chaque table avec sa commande active. salle.tables.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "floor_plan_status",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

list_waitlist

Liste la file d'attente active (walk-ins en attente / prévenus). salle.reservations.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_waitlist",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

add_waitlist

Ajoute un client à la file d'attente. salle.reservations.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
customer_name string optionnel
customer_phone string optionnel
party_size integer requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "add_waitlist",
        "arguments": {
            "establishment_id": 1,
            "party_size": 1
        }
    }
}'

seat_waitlist

Installe un client de la file d'attente sur une table (crée la commande sur place). salle.reservations.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
waitlist_id integer requis
table_id integer requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "seat_waitlist",
        "arguments": {
            "establishment_id": 1,
            "waitlist_id": 1,
            "table_id": 1
        }
    }
}'

Cuisine (KDS) 2 outils

update_kds_item_status

Change le statut cuisine d'un plat d'une commande (pending → in_progress → ready → served). Utilisé par les écrans KDS et Jarvis. kds.items.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
item_id integer requis ID de l'item de commande (boutique_commande_items)
status string — pending | in_progress | ready | served requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_kds_item_status",
        "arguments": {
            "establishment_id": 1,
            "item_id": 1,
            "status": "pending"
        }
    }
}'

get_station_load

Charge des postes cuisine (tickets actifs par poste) — alimente le compteur d'attente. kds.items.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_station_load",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

Site web 13 outils

list_site_templates

Liste les templates métiers du site (galerie du Studio). website.pages.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_site_templates",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

apply_site_template

Applique un template métier au site (remplace pages et thème — exige confirm:true après avoir résumé le changement au restaurateur). website.pages.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
slug string requis
confirm boolean requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "apply_site_template",
        "arguments": {
            "establishment_id": 1,
            "slug": "exemple",
            "confirm": true
        }
    }
}'

set_site_theme

Modifie partiellement les design tokens du site (couleurs, polices). website.pages.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
tokens object requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "set_site_theme",
        "arguments": {
            "establishment_id": 1,
            "tokens": {}
        }
    }
}'

get_site_pages

Liste les pages du site (statut, navigation) + catalogue de pages activables. website.pages.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_site_pages",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

add_site_page

Active une page du catalogue (about, faq, allergens, gallery, jobs, beverages, private, producers, delivery, press, giftcards) — créée en brouillon. website.pages.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
type string requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "add_site_page",
        "arguments": {
            "establishment_id": 1,
            "type": "exemple"
        }
    }
}'

toggle_site_page

Publie ou dépublie une page du site. website.pages.publish

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
page_slug string requis
publish boolean requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "toggle_site_page",
        "arguments": {
            "establishment_id": 1,
            "page_slug": "exemple",
            "publish": true
        }
    }
}'

get_page_content

Contenu d'une page (sections + props) pour la relire ou la modifier. website.pages.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
page_slug string requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_page_content",
        "arguments": {
            "establishment_id": 1,
            "page_slug": "exemple"
        }
    }
}'

update_section

Met à jour les props d'une section (fusion partielle, ex. {title, text}). website.pages.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
section_id integer requis
props object requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_section",
        "arguments": {
            "establishment_id": 1,
            "section_id": 1,
            "props": {}
        }
    }
}'

publish_site

Publie toutes les pages en brouillon du site (exige confirm:true). website.pages.publish

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
confirm boolean requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "publish_site",
        "arguments": {
            "establishment_id": 1,
            "confirm": true
        }
    }
}'

get_site_status

État du site : pages publiées/brouillon, URL publique, domaine. website.pages.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_site_status",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

get_domain_status

Statut du domaine personnalisé (DNS/SSL). website.domain.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_domain_status",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

upsert_beverage_item

Ajoute ou met à jour une boisson (les mentions légales sont portées par la page, jamais par la donnée). website.pages.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
beverage_id integer optionnel
category string — blanc | rouge | rose | bulles | biere | soft | cafe | sake requis
name string requis
appellation string optionnel
is_aop_igp boolean optionnel
vintage integer optionnel
glass_price number optionnel
bottle_price number optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "upsert_beverage_item",
        "arguments": {
            "establishment_id": 1,
            "category": "blanc",
            "name": "exemple"
        }
    }
}'

remove_beverage_item

Retire une boisson de la carte. website.pages.edit

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
beverage_id integer requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "remove_beverage_item",
        "arguments": {
            "establishment_id": 1,
            "beverage_id": 1
        }
    }
}'

Statistiques 2 outils

get_site_stats

Statistiques e-commerce 30 jours : commandes web, CA, leads, avis, jeux. stats.site.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_site_stats",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

get_daily_brief

Le point du jour : commandes web et CA, caisse (session, encaissé), réservations, tickets cuisine actifs, avis à modérer, leads, stocks bas. stats.site.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_daily_brief",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

Marketing, avis & recrutement 21 outils

list_reviews

Avis clients (site + Google) filtrables par statut/note. leads.leads.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
status string optionnel
rating integer optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_reviews",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

reply_review

Répond à un avis (la réponse est enregistrée, publication Google manuelle). leads.leads.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
review_id integer requis
body string requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "reply_review",
        "arguments": {
            "establishment_id": 1,
            "review_id": 1,
            "body": "exemple"
        }
    }
}'

moderate_review

Publie ou rejette un avis déposé sur le site. leads.leads.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
review_id integer requis
action string — publish | reject requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "moderate_review",
        "arguments": {
            "establishment_id": 1,
            "review_id": 1,
            "action": "publish"
        }
    }
}'

create_job_offer

Crée une offre d'emploi (salaire affiché recommandé) — en brouillon par défaut. leads.leads.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
title string requis
contract string — CDI | CDD | apprentissage | extra | saisonnier requis
description string requis
salary_min number optionnel
salary_max number optionnel
status string — draft | published optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_job_offer",
        "arguments": {
            "establishment_id": 1,
            "title": "exemple",
            "contract": "CDI",
            "description": "exemple"
        }
    }
}'

update_job_offer

Met à jour ou ferme une offre (status: draft|published|closed). leads.leads.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
offer_id integer requis
title string optionnel
description string optionnel
status string — draft | published | closed optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_job_offer",
        "arguments": {
            "establishment_id": 1,
            "offer_id": 1
        }
    }
}'

list_job_applications

Candidatures reçues (JAMAIS de CV via MCP — coordonnées + statut). leads.leads.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
status string — new | contacted | rejected | hired optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_job_applications",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

update_application_status

Change le statut d'une candidature. leads.leads.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
application_id integer requis
status string — new | contacted | rejected | hired requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_application_status",
        "arguments": {
            "establishment_id": 1,
            "application_id": 1,
            "status": "new"
        }
    }
}'

list_site_leads

Leads capturés par le site (contact, roue, privatisation…). leads.leads.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
source string optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_site_leads",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

list_private_event_requests

Demandes de privatisation/groupes avec statut. leads.leads.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
status string — new | quoted | won | lost optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_private_event_requests",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

update_event_request_status

Avance une demande de privatisation (new|quoted|won|lost). leads.leads.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
request_id integer requis
status string — new | quoted | won | lost requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_event_request_status",
        "arguments": {
            "establishment_id": 1,
            "request_id": 1,
            "status": "new"
        }
    }
}'

list_campaigns

Campagnes marketing (statut, canal, segment, stats d'envoi). leads.leads.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
status string — draft | scheduled | sending | sent | cancelled optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_campaigns",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

list_rfm_segments

Segments RFM de la base clients (compteurs + pourquoi) — cible des campagnes. leads.leads.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_rfm_segments",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_campaign

Crée une campagne en BROUILLON (email|sms|whatsapp|vocal ; segment RFM ; {prenom} {code} {lien} dans le message). Ne l'envoie PAS : utiliser launch_campaign. leads.leads.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
name string requis
channel string — email | sms | whatsapp | vocal requis
segment string — tous | champions | fideles | prometteurs | a_risque | perdus | nouveaux requis
message_template string requis
offer_label string optionnel
promo_code string optionnel
link_url string optionnel
scheduled_at string optionnel Y-m-d H:i pour planifier (sinon brouillon)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_campaign",
        "arguments": {
            "establishment_id": 1,
            "name": "exemple",
            "channel": "email",
            "segment": "tous",
            "message_template": "exemple"
        }
    }
}'

launch_campaign

Lance une campagne (envoi RÉEL multicanal — exige confirm:true après avoir résumé la cible et le récap conformité au restaurateur). leads.leads.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
campaign_id integer requis
confirm boolean requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "launch_campaign",
        "arguments": {
            "establishment_id": 1,
            "campaign_id": 1,
            "confirm": true
        }
    }
}'

get_campaign_stats

ROI d'une campagne : envoyés, clics, retours en commande, CA attribué 7 j, exclusions de conformité. leads.leads.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
campaign_id integer requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_campaign_stats",
        "arguments": {
            "establishment_id": 1,
            "campaign_id": 1
        }
    }
}'

propose_campaigns

Agent IA marketing : 2-4 propositions de campagnes chiffrées depuis les données réelles (RFM, jours creux, marges, marronniers). leads.leads.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "propose_campaigns",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

list_whatsapp_templates

Templates WhatsApp (statut Meta : draft/pending/approved/rejected). Un template approuvé est requis pour écrire à un client hors de la fenêtre 24 h. leads.leads.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
status string — draft | pending | approved | rejected optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_whatsapp_templates",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

create_whatsapp_template

Crée un template WhatsApp (brouillon). Corps avec variables {{1}} {{2}}… numérotées sans trou ; variables = libellés ordonnés (prenom, offre…). Ne le soumet PAS : utiliser submit_whatsapp_template. leads.leads.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
name string requis minuscules + underscores
body string requis
variables array<string> optionnel
category string — MARKETING | UTILITY optionnel
language string optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "create_whatsapp_template",
        "arguments": {
            "establishment_id": 1,
            "name": "exemple",
            "body": "exemple"
        }
    }
}'

submit_whatsapp_template

Soumet un template à l'approbation Meta (24-48 h — exige confirm:true, le template devient non modifiable). leads.leads.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
template_id integer requis
confirm boolean requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "submit_whatsapp_template",
        "arguments": {
            "establishment_id": 1,
            "template_id": 1,
            "confirm": true
        }
    }
}'

get_marketing_calendar

Agenda marketing d'un mois : marronniers, événements locaux saisis, jour creux détecté, campagnes planifiées/envoyées. leads.leads.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
year integer requis
month integer requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_marketing_calendar",
        "arguments": {
            "establishment_id": 1,
            "year": 1,
            "month": 1
        }
    }
}'

add_marketing_event

Ajoute un événement local à l'agenda marketing (match, marché, fête de quartier…) pour préparer une campagne dessus. leads.leads.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
date string requis YYYY-MM-DD
label string requis
brief string optionnel Idée de campagne associée. Optionnel.
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "add_marketing_event",
        "arguments": {
            "establishment_id": 1,
            "date": "exemple",
            "label": "exemple"
        }
    }
}'

Fidélité, jeux & sondages 12 outils

get_loyalty_program

Configuration du programme de fidélité (modes, multiplicateurs, règles). loyalty.program.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_loyalty_program",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

update_loyalty_program

Met à jour le programme (active, earn_mode, earn_rate, validité…). loyalty.program.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
active boolean optionnel
earn_mode string — per_euro | per_visit | hybrid optionnel
earn_rate number optionnel
visit_points integer optionnel
points_validity_months integer optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "update_loyalty_program",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

list_loyalty_rewards

Catalogue des récompenses échangeables (points, stock). loyalty.program.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_loyalty_rewards",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

upsert_loyalty_reward

Ajoute ou met à jour une récompense (product = plat réel à 0 €). loyalty.program.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
reward_id integer optionnel
kind string — product | amount | perk requis
plat_id integer optionnel
label string requis
points_cost integer requis
amount number optionnel
stock integer optionnel
active boolean optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "upsert_loyalty_reward",
        "arguments": {
            "establishment_id": 1,
            "kind": "product",
            "label": "exemple",
            "points_cost": 1
        }
    }
}'

get_loyalty_account

Compte fidélité d'un client par email (solde, prochaine récompense). loyalty.program.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
email string requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_loyalty_account",
        "arguments": {
            "establishment_id": 1,
            "email": "exemple"
        }
    }
}'

adjust_points

Geste commercial : crédite des points à un client (plafonné ±1000, jamais de solde négatif, motif obligatoire, journalisé). loyalty.program.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
email string requis
points integer requis
motif string requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "adjust_points",
        "arguments": {
            "establishment_id": 1,
            "email": "exemple",
            "points": 1,
            "motif": "exemple"
        }
    }
}'

list_redemptions

Bons fidélité émis (actifs/utilisés/expirés). loyalty.program.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
status string optionnel
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_redemptions",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

validate_redemption

Valide un bon fidélité présenté en salle (usage unique). loyalty.program.manage

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
code string requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "validate_redemption",
        "arguments": {
            "establishment_id": 1,
            "code": "exemple"
        }
    }
}'

list_wheel_games

Roues cadeaux (statut, lancers, leads). loyalty.program.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_wheel_games",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

get_wheel_stats

Statistiques d'une roue (lancers, lots gagnés, leads captés). loyalty.program.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
wheel_id integer requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_wheel_stats",
        "arguments": {
            "establishment_id": 1,
            "wheel_id": 1
        }
    }
}'

list_surveys

Sondages (déclencheur, réponses). loyalty.program.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "list_surveys",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

get_survey_results

Résultats agrégés d'un sondage (moyennes, NPS, répartitions). loyalty.program.view

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
survey_id integer requis
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_survey_results",
        "arguments": {
            "establishment_id": 1,
            "survey_id": 1
        }
    }
}'

Outils transverses 1 outil

search_entities

Résout un nom parlé/écrit vers un ID (produits, ingrédients, plats, équipements « frigo 3 », tables, recettes). Fuzzy FR (accents, pluriels). Si ambiguous=true, DEMANDER confirmation à l'utilisateur avant d'agir. jarvis.voice.use

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
query string requis Nom entendu, ex. « tomates » ou « frigo 3 »
types array<string> optionnel Types à chercher (défaut : tous)
limit integer optionnel Max de résultats (défaut 6)
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "search_entities",
        "arguments": {
            "establishment_id": 1,
            "query": "exemple"
        }
    }
}'

Compte & abonnement 2 outils

get_subscription_overview

Abonnement de l'établissement : plan principal, add-ons actifs, statut (essai/année offerte/grâce), échéances. Lecture seule. propriétaire

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_subscription_overview",
        "arguments": {
            "establishment_id": 1
        }
    }
}'

get_credit_balance

Crédits de communication (SMS/WhatsApp/vocal) : solde du cycle, packs achetés restants, période. propriétaire

ParamètreTypeDescription
establishment_id integer requis ID de l'établissement
Exemple cURL
curl -X POST https://foodeatup.com/api/mcp \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_credit_balance",
        "arguments": {
            "establishment_id": 1
        }
    }
}'