Foodzilla
Pour les développeurs

Le serveur MCP de Foodzilla

Foodzilla parle le Model Context Protocol, donc un assistant IA peut travailler dans le compte d'un praticien ou le carnet d'un client par une interface standard plutôt que par du scraping. C'est un endpoint HTTPS, OAuth 2.1 avec PKCE, et plus de 60 outils.

Endpointhttps://api.foodzilla.io/mcp

Vous cherchez ce que ça fait plutôt que comment ça marche ? Voir la présentation d'Autopilot

Ce qu'est le Model Context Protocol

MCP est un standard ouvert pour relier les assistants IA aux systèmes qui détiennent les vraies données. L'assistant demande au serveur quels outils il a, le serveur répond avec des noms et des arguments typés, et l'assistant les appelle. Cela remplace le schéma où un assistant devine son chemin dans une page web ou un endpoint non documenté.

Pour un cabinet de nutrition, cela compte plus qu'ailleurs. Un repas décrit par un client doit arriver dans son carnet avec les valeurs d'une vraie base alimentaire, pas un chiffre inventé par le modèle, et il doit arriver dans sa fiche et dans aucune autre. Les outils typés et les scopes par compte sont ce qui garantit cela.

Référence de connexion

Tout ce qu'il faut pour pointer un client MCP vers Foodzilla.

Endpoint
https://api.foodzilla.io/mcp
Transport
HTTP en streaming, JSON-RPC 2.0 en POST
Autorisation
Code d'autorisation OAuth 2.1 avec PKCE, enregistrement dynamique des clients
Découverte
/.well-known/oauth-protected-resource/mcp
Scopes
autopilot, coach, openid, offline_access
Formule
Professional ou au-dessus pour les praticiens
autopilot

Un client accompagné. Son propre plan et son propre carnet, rien d'autre.

coach

Un praticien qui travaille sur son propre compte. Recettes, modèles, formulaires, rendez-vous, contenu, boutique, réglages et abonnement. Aucun accès à une fiche client.

Un jeton porte l'un des deux, jamais les deux. Lequel se décide sur la page de consentement, et un praticien qui a aussi une fiche client se voit demander avec lequel il se connecte.

Ce que reçoit une requête non authentifiée

Un 401 avec un en-tête WWW-Authenticate qui nomme l'URL des métadonnées de la ressource, ce par quoi un client MCP correct trouve seul le serveur d'autorisation.

Les outils

61 à ce jour. Les noms sont stables. Tout ce qui écrase ou dépense de l'argent est marqué destructif, donc votre assistant demande avant de le lancer.

Scope client

16 outils

Enregistrement

log_food, log_planned_meal, log_water, log_exercise, log_sleep, log_weight, delete_food_log

Leur plan

get_plan, get_todays_meals, get_recipe

Revenir en arrière

get_day, get_progress, get_recent_foods, get_profile, get_status

Compte

sign_out_everywhere

log_food prend soit une liste d'aliments, appariés aux bases alimentaires Foodzilla avec la vraie valeur par ingrédient, soit de simples chiffres pour ce qu'aucune base ne contient. Une ligne que la base ne connaît pas fait échouer tout l'appel et la nomme, au lieu d'enregistrer une approximation.

Scope praticien

46 outils

Recettes

generate_recipe, import_recipe_from_url, update_recipe_draft, discard_recipe_draft, save_recipe, list_my_recipes

Modèles de plan

generate_plan_template, list_my_templates, describe_plan_settings

Collections et aliments

create_collection, add_recipes_to_collection, list_collections, add_food, add_foods, import_food_from_url, import_food_from_text

Formulaires et rendez-vous

create_form, update_form, list_forms, get_booking_setup, set_availability, create_appointment_type, update_appointment_type

Contenu

create_post, update_post, publish_post, pin_post, list_posts

Boutique

get_store, update_store, create_store_plan, update_store_plan, publish_store, unpublish_store

Réglages

get_app_experience, set_app_experience, update_my_profile, get_invoice_settings, update_invoice_settings

Compte et facturation

get_my_account, get_subscription, preview_plan_change, change_plan, activate_subscription, extend_trial

Un praticien sous Professional se connecte avec cinq d'entre eux : ceux du compte et de l'abonnement, pour que l'assistant puisse chiffrer une montée en formule et l'appliquer. Le reste apparaît dès que la formule monte, sur la même connexion.

Connecter un assistant

Rien à installer et aucune clé à générer. Le flux OAuth fait le reste.

Claude

  1. 1Paramètres, puis Connecteurs, puis Ajouter un connecteur personnalisé.
  2. 2Collez https://api.foodzilla.io/mcp comme URL.
  3. 3Connectez-vous avec votre e-mail et votre mot de passe Foodzilla quand la page s'ouvre.
  4. 4Vérifiez le compte nommé sur la page de consentement, puis appuyez sur Connecter.

ChatGPT

  1. 1Paramètres, puis Connecteurs, puis Avancé, et activez le mode développeur. Foodzilla n'est pas encore dans l'annuaire des connecteurs.
  2. 2Ajoutez un connecteur avec https://api.foodzilla.io/mcp comme URL.
  3. 3Connectez-vous avec votre e-mail et votre mot de passe Foodzilla.
  4. 4Vérifiez le compte nommé sur la page de consentement, puis appuyez sur Connecter.
  5. 5Démarrez une conversation avec le connecteur activé.

Tout autre chose qui parle MCP

Pointez-le vers l'endpoint. Il s'enregistre seul par enregistrement dynamique, trouve le serveur d'autorisation par les métadonnées de ressource protégée, et exécute le flux de code d'autorisation avec PKCE. Demandez offline_access si vous voulez que la connexion survive au jeton d'accès.

Limites et consommation

Compté à la semaine

Chaque formule a un volume hebdomadaire remis à zéro le lundi. Lectures, écritures et appels qui consomment du temps de modèle sont comptés séparément, donc une semaine de lecture intense n'épuise pas le budget de génération de recettes.

Les clients partagent une réserve

Vos clients puisent dans un volume commun plutôt qu'un chacun. Un seul client bavard ne peut donc pas dépenser la semaine du cabinet.

Croît avec la formule

White Label a quatre fois le volume de Professional. Team en a sept fois, par praticien.

Visible en pourcentage

L'onglet Autopilot dans Foodzilla montre ce qui est parti de la semaine. Si la limite est atteinte, l'outil répond en le disant, au lieu d'échouer en silence.

Ce que le serveur refuse

  • Un jeton praticien qui demande la fiche d'un client. Aucun outil n'accepte d'identifiant client, donc il n'y a rien à viser.
  • Un jeton client qui dépasse son carnet et son plan. Une recette n'est lisible que si elle est dans le plan de ce client, ce qui empêche de parcourir la bibliothèque appel par appel.
  • Un jeton d'une connexion que le praticien a depuis déconnectée, même s'il est encore dans sa durée de vie.
  • Un jeton d'une autorisation antérieure après une reconnexion, pour que déconnecter puis reconnecter ne ramène pas discrètement une vieille clé.
  • Tout, sur un compte dont la formule ne comprend plus Autopilot. L'éligibilité est vérifiée à chaque appel, pas seulement au consentement.
  • Un client dont le praticien a coupé l'accès client.

Les données personnelles ne vont pas dans les journaux serveur. Ni noms de clients ou de praticiens, ni e-mails, ni téléphones.

Questions Fréquemment Posées