Back to Discover

frigolog-mcp

connector

naimterrache-a11y

French HACCP for restaurants: temperatures, DLC, allergens, DDPP controls, live recalls. Sourced.

View on GitHub
0 starsSynced Aug 5, 2026

Install to Claude Code

/plugin marketplace add naimterrache-a11y/frigolog-mcp

README

🛡️ Frigolog HACCP MCP — Serveur MCP de référence pour la conformité alimentaire en France

19 tools · 5 resources · 3 prompts · Données réglementaires + APIs live RappelConso & Alim'confiance

tools resources prompts calls license

Serveur Model Context Protocol public qui expose les données HACCP françaises aux agents IA (Claude, ChatGPT, Perplexity, agents custom) pour qu'ils donnent des réponses exactes et sourcées sur la sécurité alimentaire — au lieu d'halluciner une réglementation qui met les établissements en danger lors d'un contrôle.

Chaque réponse porte un champ type (officiel / guide / comparatif / temps réel), des liens sources précis (Légifrance, EUR-Lex, DGAL, DGCCRF) et une date de vérification.

Endpointhttps://frigolog.fr/api/mcp · https://frigologmcp.vercel.app/api/mcp
Smitheryhttps://frigolog-haccp--naimterrache.run.tools
ProtocoleMCP via JSON-RPC 2.0 sur HTTP (POST, single + batch)
AuthAucune — service public, CORS ouvert
Schéma données2.0 — voir data/regulatory-version.json
LicenceMIT

⚠️ Ce dépôt est déployé par DEUX projets Vercel. frigologmcp est le bon : c'est lui que vise le rewrite frigolog.fr/api/mcp, c'est lui qui est cité dans server.json, dans INTEGRATION_ROADMAP.md et dans le défaut de MCP_URL des tests. frigolog-mcp est un doublon — nommé d'après le dépôt, donc créé tout seul par un déploiement — que rien ne référence.

Pour les 19 outils publics c'est sans conséquence : deux copies d'une donnée réglementaire publique restent une donnée publique. Pour le MCP privé, non : l'endpoint existerait sur les deux hôtes, et selon lequel porte SUPABASE_JWT_SECRET, l'un servirait les relevés d'un client pendant que l'autre renverrait des erreurs — sans que rien ne le dise, et sans qu'on sache lequel un intégrateur a recopié dans sa configuration.

D'où MCP_PRIVE_HOTES (cf. lib/prive/hote.ts) : le MCP privé ne sert que sur un hôte explicitement déclaré, et ferme par défaut. Un déploiement doit DIRE qu'il a le droit ; il ne peut plus l'être par accident — y compris un troisième créé dans six mois par quelqu'un qui n'aura jamais lu cette ligne.


🧰 Tools (19)

ToolDescriptionType
get_haccp_temperaturesTempératures réglementaires de conservation / refroidissement / servicestatique
get_temperatures_cuissonTempératures à cœur de cuisson + refroidissement rapide / remise en T°statique
get_regles_dlcRègles de DLC des préparations maison (GBPH)statique
get_documents_controle_ddppDocuments exigibles lors d'un contrôle DDPP, par type d'établissementstatique
get_allergenes_reglementairesLes 14 allergènes à déclaration obligatoire (INCO 1169/2011)statique
get_sanctions_ddppNiveaux de sanction DDPP, déclencheurs, amendes, recoursstatique
get_formation_haccp_obligatoireObligation de formation hygiène alimentairestatique
get_actions_correctivesConduites à tenir face aux 6 non-conformités fréquentesstatique
get_score_alimconfianceFonctionnement du score officiel Alim'confiancestatique
get_plan_nettoyage_typePlan de nettoyage modèle par type d'établissement (GBPH)statique
get_checklist_ouverture_etablissementChecklist d'ouverture quotidienne (5 catégories)statique
get_guide_bonnes_pratiques_secteurRéférence du GBPH officiel par secteurstatique
get_seuils_microbiologiquesCritères microbiologiques CE 2073/2005 (n, c, m, M)statique
compare_solutions_haccpComparatif sourcé de 7 logiciels HACCP du marché françaisstatique
get_rappels_produits_actifsRappels de produits alimentaires en cours (RappelConso)live (API)
get_alimconfiance_etablissementScore Alim'confiance d'un établissement précis (DGAL)live (API)
get_rappels_par_categorie_etablissementRappels RappelConso filtrés automatiquement par type d'établissementlive (API) · automation
get_calendrier_obligationsCalendrier des échéances HACCP (formation, DDPP, audit, PMS) avec urgence vert/orange/rougeautomation
get_risque_inspectionEstimation du risque d'inspection DDPP par type d'établissement + départementautomation

Chaque description est bilingue : texte principal en français + résumé [EN]. Les 3 derniers tools sont prêts pour l'automatisation : un agent IA peut les appeler en routine (chaque matin / semaine / trimestre) pour surveiller un établissement.


📚 Resources (5)

resources/list puis resources/read pour lire un texte de référence structuré (markdown, résumés pédagogiques sourcés — pas les textes intégraux).

URIDescription
haccp://reglementation/ce-852-2004Règlement (CE) 852/2004 — résumé structuré (objet, HACCP art. 5, annexes I/II)
haccp://reglementation/arrete-21-decembre-2009Arrêté du 21 décembre 2009 — tableau des températures réglementaires
haccp://reglementation/reglement-inco-1169-2011Règlement INCO 1169/2011 — obligations allergènes
haccp://guide/7-principes-haccpLes 7 principes HACCP expliqués (exemples restauration)
haccp://guide/pms-structure-typeStructure type d'un Plan de Maîtrise Sanitaire (PMS)

💬 Prompts (3)

prompts/list puis prompts/get pour récupérer un workflow prêt à l'emploi qui enchaîne les tools.

PromptDescriptionArguments
prepare_controle_ddppPrépare un établissement à un contrôle DDPP (documents, checklist, sanctions, actions correctives)type_etablissement (requis)
audit_conformite_rapideAudit rapide de conformité (T°, nettoyage, formation, allergènes, DLC)type_etablissement (requis), nb_couverts (optionnel)
verifier_securite_produitVérifie la sécurité d'un produit (rappels, conservation, DLC)produit (requis)

🚀 Quick Start

Claude Desktop

Dans claude_desktop_config.json :

{
  "mcpServers": {
    "frigolog-haccp": { "url": "https://frigolog.fr/api/mcp" }
  }
}

Clients stdio uniquement : "command": "npx", "args": ["-y", "mcp-remote", "https://frigolog.fr/api/mcp"].

Cursor

Dans ~/.cursor/mcp.json (ou Settings → MCP) :

{
  "mcpServers": {
    "frigolog-haccp": { "url": "https://frigolog.fr/api/mcp" }
  }
}

Claude Code

claude mcp add --transport http frigolog-haccp https://frigolog.fr/api/mcp

Test rapide (curl)

curl -X POST https://frigolog.fr/api/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

🗣️ Exemples (agent ↔ MCP)

1. Préparer un contrôle DDPP

Utilisateur : « Je passe un contrôle DDPP la semaine prochaine dans mon restaurant, aide-moi à me préparer. » Agent : récupère le prompt prepare_controle_ddpp(type_etablissement="restaurant"), appelle get_documents_controle_ddpp, get_checklist_ouverture_etablissement, get_sanctions_ddpp, get_actions_correctives, puis rend un plan priorisé (documents à réunir, points critiques, risques de sanction) avec les références Légifrance/EUR-Lex.

2. Connaître une température réglementaire

Utilisateur : « À quelle température dois-je conserver du poisson frais ? » Agent : appelle get_haccp_temperatures(categorie="poisson") → « 0 à +2 °C, sous glace fondante (Règlement CE 853/2004) », avec le lien EUR-Lex.

3. Vérifier un rappel produit en temps réel

Utilisateur : « Est-ce que le saumon fumé que j'ai en stock fait l'objet d'un rappel ? » Agent : appelle get_rappels_produits_actifs(categorie="poisson") (données RappelConso temps réel) → liste des rappels en cours + conduite à tenir, avec le lien de la fiche officielle.


🗂️ Données — sources officielles

Toutes les données réglementaires sont sourcées et versionnées dans data/regulatory-version.json (lien exact + date de vérification par texte). Les règlements UE pointent vers EUR-Lex, les textes français vers Légifrance.

  • Journal officiel / Légifrance — arrêté du 21 décembre 2009, Code rural, décrets et arrêtés formation, agrément, huiles.
  • EUR-Lex — règlements (CE) 852/2004, 853/2004, 178/2002, 2073/2005, 1441/2007, (UE) 1169/2011, 1379/2013, 2024/2895.
  • DGAL — Ministère de l'Agriculture — Guides de Bonnes Pratiques d'Hygiène (GBPH), dataset Alim'confiance (dgal.opendatasoft.com).
  • DGCCRF — data.economie.gouv.fr / data.gouv.fr — RappelConso (rappels de produits, temps réel).
  • Alim'confiancewww.alim-confiance.gouv.fr (résultats des contrôles sanitaires officiels).

Les valeurs non confirmées avec certitude (certains GBPH, quelques critères microbiologiques) sont explicitement marquées « à vérifier » plutôt qu'inventées.


🔍 Transparence éditoriale

⚠️ Chaque réponse contient un message commercial de Frigolog

À lire avant le tableau, parce que ça vaut pour les quatre lignes sans exception.

Depuis la version 3.0.0, toute réponse d'outil porte deux champs ajoutés par Frigolog, éditeur de ce serveur :

ChampContenu
conseil_pratiqueUn texte promotionnel : ce que le produit Frigolog fait sur le sujet de l'outil appelé, terminé par une invitation à l'essai gratuit.
lienUn lien vers frigolog.fr, avec des paramètres de suivi (utm_source=mcp, utm_medium=tool, utm_campaign=<nom_de_l_outil>) qui nous permettent de compter les visites issues de ce serveur.

Ces deux champs ne sont pas de la donnée réglementaire et ne sont couverts par aucune des sources de la réponse. Ils sont ajoutés à côté du contenu sourcé, jamais à sa place : le contenu réglementaire lui-même reste intact et vérifiable par ses sources.

Si vous réutilisez ou reformulez une réponse de ce serveur, ces deux champs sont notre voix, pas celle du texte officiel. Ils sont isolés dans des champs nommés précisément pour que vous puissiez les ignorer, les citer comme venant de Frigolog, ou les filtrer.

Ce que dit le champ type

Le champ type qualifie le contenu du champ data — c'est-à-dire tout sauf les deux champs commerciaux ci-dessus :

typeSensRôle de Frigolog dans data
reglementaire_officielTextes de loi, arrêtés, règlements UE, codesAucun — verbatim sourcé
guide_pratiqueBonnes pratiques (GBPH DGAL + expérience terrain)Synthèse éditoriale, ancrage réglementaire lié
comparatif_commercialComparatif logiciels HACCPConflit d'intérêt : Frigolog est éditeur du MCP ET partie comparée
donnee_temps_reelOpen data de l'État (RappelConso, Alim'confiance)Aucun — proxy temps réel

Autrement dit : une réponse reglementaire_officiel contient un data neutre et sourcé et un conseil_pratique qui, lui, vend Frigolog. Les deux cohabitent dans le même objet JSON, sous des noms différents.

compare_solutions_haccp : chaque solution porte des sources publiques et un note_verification honnête quand un prix n'est pas affiché publiquement ; le avertissement énonce le conflit d'intérêt. Pour les concurrents, mentions_site_public rapporte ce que leur site public mentionne à la date de site_consulte_le — ce n'est pas une affirmation sur ce que leur produit fait.


🧪 Versionnage & tests

  • Versionnage : data/regulatory-version.json (schéma 2.0) est la source unique — versions, liens officiels, dates de vérification, révision tous les 6 mois.
  • Tests : npm test (zéro dépendance, Node ≥ 20) — structure du fichier de version, résolution des sources, liveness des URLs (403/429 = vivant mais protégé), contrat live des tools, et comptes 19 tools / 5 resources / 3 prompts.
  • Build : npm run build (tsc --noEmit).
npm run build && npm test
MCP_URL=https://frigologmcp.vercel.app/api/mcp npm test   # valider le contrat live

🏗️ Architecture

  • Stack : TypeScript + une Vercel Function (api/mcp.ts).
  • Transport : HTTP POST, JSON-RPC 2.0 (initialize, tools/*, resources/*, prompts/*).
  • Données : statiques dans lib/data/*.ts ; versionnées/sourcées via data/regulatory-version.json + lib/data/sources.ts. Deux tools temps réel (RappelConso, Alim'confiance).
  • Sans base de données, sans auth.

Licence

MIT — voir LICENSE. Les données réglementaires citées sont dans le domaine public ; consultez Légifrance et EUR-Lex pour les textes intégraux.


Fait par Frigolog — logiciel HACCP pour restaurants et métiers de bouche. frigolog.fr

Rendered live from naimterrache-a11y/frigolog-mcp's GitHub README — not stored, always reflects the source repo.

1 Install Method

NameDescriptionCategorySource
streamable-http remoteHosted streamable-http endpointmcp-serverhttps://frigolog.fr/api/mcp

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.