About Auchan Drive
Auchan Drive is an MCP server published by MrRaph in the Productivity category.
The repository has 6 stars and 4 forks, with the last commit 4 months ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/MrRaph/mcp-auchan-driveThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Auchan Drive
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 3 hours ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- !License declaredNo license file. Legally you have no right to use it in a product.
- ✓Tests presentA test suite exists in the repository.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
1 check has not been run yet.
Releases
README
mcp-auchan-drive
Serveur MCP pour Auchan Drive. Permet à Claude de rechercher des produits, gérer un panier, consulter ses commandes et préparer ses courses — sans passer par le navigateur.
Inspiré de mcp-leclerc-drive dont il reprend l'architecture.
⚠️ Outil non officiel, non affilié à Auchan. Usage personnel uniquement.
Fonctionnalités
- Recherche de produits dans le catalogue Auchan Drive (prix, prix/kg, marque, disponibilité)
- Recherche des promotions en cours (par mot-clé ou par rayon)
- Gestion du panier (ajouter, retirer, modifier les quantités)
- Sélection du drive le plus proche (par ville ou code postal)
- Consultation des commandes récentes (statut, total, magasin)
- Lecture des produits favoris (achetés régulièrement, avec promos en cours)
- Lecture du programme de fidélité Waaoh (cagnotte, Jour W!, défis)
- Historique des transactions de cagnotte
- Authentification automatique via les cookies Chrome ou Firefox locaux
Prérequis
- Node.js ≥ 18
- Chrome ou Firefox installé avec une session Auchan Drive active
Installation
git clone https://github.com/MrRaph/mcp-auchan-drive.git
cd mcp-auchan-drive
npm install
npm run build
Configuration
Claude Desktop
Ajouter dans ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) :
{
"mcpServers": {
"auchan-drive": {
"command": "node",
"args": ["/chemin/absolu/vers/mcp-auchan-drive/dist/index.js"],
"env": {
"AUCHAN_BROWSER": "firefox"
}
}
}
}
Redémarrer Claude Desktop après modification.
Claude Code (CLI)
claude mcp add auchan-drive node /chemin/vers/dist/index.js --env AUCHAN_BROWSER=firefox
Variables d'environnement
| Variable | Défaut | Description |
|---|---|---|
AUCHAN_STORE_ID |
— | ID drive actif (UUID vendeur, optionnel — peut être défini via set_store) |
AUCHAN_COOKIE |
— | Override manuel du header Cookie complet (mode headless/CI) |
AUCHAN_BROWSER |
chrome |
Navigateur source des cookies : chrome ou firefox |
AUCHAN_CHROME_PROFILE |
Default |
Profil Chrome à lire pour les cookies |
AUCHAN_FIREFOX_PROFILE |
— | Profil Firefox : nom du profil ou chemin absolu vers cookies.sqlite |
AUCHAN_MIN_INTERVAL_MS |
1000 |
Délai minimum entre deux requêtes (anti-DataDome) |
AUCHAN_JITTER_MS |
400 |
Jitter aléatoire ajouté au délai |
AUCHAN_MAX_RETRIES |
3 |
Nombre de retries sur 403/429 (DataDome) |
AUCHAN_BACKOFF_BASE_MS |
1500 |
Base du backoff exponentiel |
Authentification
Le serveur lit automatiquement les cookies de session depuis le navigateur local. Aucune configuration manuelle de cookies n'est nécessaire si vous êtes connecté.
Firefox (recommandé)
{ "env": { "AUCHAN_BROWSER": "firefox" } }
Le serveur détecte automatiquement le profil actif via profiles.ini.
Important : naviguer sur www.auchan.fr dans Firefox avant de lancer Claude pour
que le cookie anti-bot datadome soit présent. Sans lui, certaines requêtes risquent
un 403.
Chrome (défaut)
{ "env": {} }
Le serveur lit les cookies via chrome-cookies-secure depuis le profil Default.
Pour un autre profil : AUCHAN_CHROME_PROFILE=Profil 2.
Mode headless / CI
{ "env": { "AUCHAN_COOKIE": "connect.sid=...; lark-session=...; lark-consentId=...; datadome=..." } }
Copier le header Cookie complet depuis les DevTools du navigateur (onglet Réseau → n'importe
quelle requête vers www.auchan.fr → Headers de requête → Cookie).
Outils MCP exposés
| Outil | Paramètres | Description |
|---|---|---|
search_product |
query: string |
Recherche dans le catalogue → liste de produits avec prix, marque, disponibilité |
search_promos |
query?: string, category?: string |
Produits en promotion (sans arg = toutes les promos) |
add_to_cart |
product_id: string, quantity?: number |
Ajoute un produit au panier (utiliser search_product d'abord) |
remove_from_cart |
product_id: string |
Retire complètement un produit du panier |
update_quantity |
product_id: string, quantity: number |
Modifie la quantité (0 = retire l'article) |
get_cart |
— | Lit le panier complet avec le total |
find_stores |
query: string |
Trouve les drives Auchan proches d'une ville ou d'un code postal |
set_store |
store_id: string, store_name?: string |
Sélectionne le drive actif |
get_store |
— | Affiche le drive actuellement sélectionné |
get_loyalty_info |
— | Lit le programme de fidélité : cagnotte, carte Waaoh, Jour W!, défis |
get_loyalty_history |
— | Historique des transactions de cagnotte des 3 derniers mois |
get_orders |
period?: string |
Historique des commandes (10days, 30days, 3months…) |
get_favorites |
— | Liste des produits favoris avec prix actuels et promos en cours |
Exemple de session Claude — courses
Utilisateur : Trouve un drive Auchan près de chez moi (Lyon)
Claude : [find_stores("Lyon")]
Voici les drives disponibles :
• Auchan Drive Supermarché Caluire — 3.2 km
• Auchan Drive Caluire — 4.1 km
…
Utilisateur : Prends le Drive Caluire
Claude : [set_store("8dede798-9649-4481-acea-486d00396e73")]
✅ Drive actif : Auchan Drive Supermarché Caluire
Utilisateur : Cherche du café moulu
Claude : [search_product("café moulu")]
• Café Carte Noire Pur Arabica 250g — 4,99 € (19,96 €/kg)
• Café L'Or Espresso 500g — 7,49 € (14,98 €/kg)
…
Utilisateur : Ajoute 2 paquets du Carte Noire
Claude : [add_to_cart("acfdc139-...", 2)]
✅ Panier mis à jour — 2× Café Carte Noire Pur Arabica 250g (9,98 €)
Exemple de session Claude — promos et favoris
Utilisateur : Y a-t-il des promos sur la viande ?
Claude : [search_promos(category: "ca-n02")]
• Poulet rôti fermier Label Rouge 1,2kg — 8,99 € (-20%)
• Bœuf haché 15%MG 4×100g — 3,49 € (-30%)
…
Utilisateur : Quels sont mes produits habituels ?
Claude : [get_favorites()]
Vos favoris (23 produits) :
Eaux, jus, sodas :
• ORANGINA Boisson gazeuse 1,5l — 1,93 € (-50% sur le 2ème)
• EVIAN Eau minérale 6×1,5l — 3,50 €
…
Exemple de session Claude — suivi commandes
Utilisateur : Qu'est-ce que j'ai commandé récemment ?
Claude : [get_orders(period: "30days")]
2 commandes sur les 30 derniers jours :
• 14 juin 2026 — Auchan Drive Caluire — 38,62 € — Enregistrée (14 produits)
• 07 juin 2026 — Auchan Drive Caluire — 52,10 € — Livrée (21 produits)
Utilisateur : Combien j'ai cagnotté ce mois-ci ?
Claude : [get_loyalty_history()]
3 transactions en juin 2026 :
• 14/06 — Drive Caluire — +0,39 €
• 07/06 — Drive Caluire — +0,52 €
• 03/06 — Magasin Chapônost — +1,20 €
Total : +2,11 €
Comment ça marche
Architecture générale
Auchan Drive est une SPA rendue côté serveur via un framework propriétaire appelé CREST. Le serveur MCP reverse-engineer les XHR que la SPA appelle :
Claude (MCP client)
│
▼
mcp-auchan-drive (Node.js / stdio)
├── CookieProvider ← lit les cookies depuis Chrome ou Firefox
├── Throttler ← sérialise les requêtes (anti-DataDome)
├── AuchanClient ← /recherche, /cart, /fidelite/*, /client/*
└── StoreLocator ← géocodage + /offering-contexts
Flux search → panier
search_product("café")→GET /recherche?text=café→ HTML parsé par regexadd_to_cart(productId)→GET /cartpour obtenir lecartId, puisPOST /cart/update- Le
sellerIdvient desdata-*attributes du DOM de recherche (pas d'appel API séparé)
Flux store locator
find_stores("Lyon")→GET api-adresse.data.gouv.frpour obtenir lat/lng + code postalGET /offering-contexts?accuracy=MUNICIPALITY&channels=PICK_UP,SHIPPING&…avecAccept: application/crest- Parse le fragment HTML retourné pour extraire les
<div.journeyPosItem data-id="…"> set_store(id)→ mémorise le drive dansstore-state.json
Flux fidélité et commandes
get_loyalty_info()→GET /fidelite/accueil→ HTML parsé par regexget_loyalty_history()→GET /fidelite/ma-carte/historique→ HTML parsé par regexget_orders(period)→GET /client/mes-commandes?days=90→ HTML parsé par regexget_favorites()→GET /client/mes-produits-preferes→ HTML parsé par regex
Toutes ces pages sont server-side rendered — les données sont dans le DOM initial, pas dans des endpoints REST JSON dédiés.
Développement
npm run dev # compilation TypeScript en watch
npm run typecheck # vérification des types sans emit
npm run inspect # MCP Inspector (test interactif des outils)
npm test # tests unitaires et d'intégration (Vitest)
npm run test:coverage # couverture de tests
npm run smoke # test end-to-end contre un vrai compte Auchan
Smoke test
# Avec Firefox (recommandé)
AUCHAN_BROWSER=firefox npm run smoke
# Avec un drive connu (saute l'étape find_stores)
AUCHAN_STORE_ID=8dede798-9649-4481-acea-486d00396e73 AUCHAN_BROWSER=firefox npm run smoke
# Avec une autre ville
SMOKE_QUERY=Lille AUCHAN_BROWSER=firefox npm run smoke
Architecture du code
src/
index.ts # Serveur MCP : enregistrement des 13 outils, transport stdio
config.ts # Config runtime (variables d'env)
types.ts # Types partagés : Product, CartItem, Cart, Store,
# FavoriteProduct, Order, OrderPeriod,
# LoyaltyInfo, LoyaltyTransaction
store.ts # État du drive actif (persisté dans store-state.json)
auth/
cookies.ts # CookieProvider : Chrome, Firefox, ou override env
auchan/
client.ts # Client HTTP : search, cart, loyalty, orders, favorites
locator.ts # Store locator : api-adresse.data.gouv.fr + /offering-contexts
throttle.ts # Throttler anti-DataDome (sérialisation + backoff)
parser.ts # Parser HTML /recherche → SearchProduct[]
loyalty-parser.ts # Parser HTML /fidelite/accueil → LoyaltyInfo
loyalty-history-parser.ts # Parser HTML /fidelite/ma-carte/historique → LoyaltyTransaction[]
orders-parser.ts # Parser HTML /client/mes-commandes → Order[]
favorites-parser.ts # Parser HTML /client/mes-produits-preferes → FavoriteProduct[]
cart-mapper.ts # Mapper JSON /cart → Cart
html-utils.ts # Utilitaires partagés : parsePrice, decode
docs/
api-capture.md # Documentation complète des endpoints reverse-engineerés
scripts/
smoke-test.mjs # Test end-to-end contre un vrai compte (7 étapes)
tests/
unit/ # Tests unitaires (logique pure, sans I/O réseau)
integration/ # Tests avec fetch mocké (AuchanClient, StoreLocator)
fixtures/ # Réponses API capturées pour les tests
Voir docs/api-capture.md pour la documentation complète des endpoints, headers requis, structure des réponses et quirks découverts.
Licence
MIT
README fetched from the repository 3 hours ago. The original is authoritative.