← Bibliothèque / Intelligence
Assistant distant MCP (pilotage ChatGPT)
Le patron visé par la prospection : une adresse /mcp/<jeton> à coller dans ChatGPT — vous écrivez normalement, l'assistant lit vos VRAIES données, prépare, vous validez, il envoie. (Jamais dire « MCP » au prospect.)
Construit à partir de :
RDC backofficedauphins-de-rangiroabookflow
Dans le back office
Écran Réglages → Assistant distant : créer/RÉVOQUER jeton, adresse construite depuis l'hôte réel servi, indice 6 derniers caractères, dernier usage, bouton remplacer.
Pages & écrans
| Page / zone | Rôle |
|---|---|
/mcp/[jeton] | Protocole JSON-RPC 2025-06-18 : initialize, tools/list = sous-ensemble SÛR PLUS PETIT que le panneau, tools/call, timeout fail-soft (jamais de throw qui tue la session) |
(variante DDR admin Python) | MCP streamable-http SDK Python, 27 outils pilotage éditorial COMPLET (actualités, dauphins, partenaires, galeries, mise en ligne confirmée, suivi publish, rollback) pour clients non techniques hors périmètres contractuels stricts |
Patterns UI/UX
- no-store partout ; GET 404 silencieux si non configuré
Composants clés
- app/mcp/[jeton]/route.ts
- actions-mcp.ts create/revoke
- pahono MCP référence REST : book_appointment IDEMPOTENT (Idempotency-Key auto, hint replay), timeout 15 s
Automatisations
- rate-limit 60 appels/10 min/jeton en mémoire + logs code jamais charge
Intelligence artificielle
- Rôle IA
- Le modèle qui répond vit CÔTÉ ChatGPT du prospect : notre route expose seulement tools listés + données autorisées.
- Modèles
- agnostique (le client est le LLM appelant)
- Garde-fous
- CRITIQUE : COUCHE SERVEUR ZÉRO PRIVILÈGE : clé publique anon uniquement + fonction SECURITY DEFINER qui résout membre depuis jeton, vérifie SON rôle, activation (env/fournisseur/modèle), puis exécute · jeton 32 octets base64url ~192 bits stocké SHA-256, RELU chaque requête (révocation immédiate), UNE adresse vivante/personne · empreinte du jeton JAMAIS acceptée comme jeton (devenait le mot de passe) · allowlist DOUBLE route+base · Cache-Control no-store
Données
- jetons_mcp (hash sha256, indice, dernier_usage_le)
- v_mon_jeton_mcp security_invoker bornée
- garde mcp_executer_garde
Invariants & pièges
- Le proxy Next interceptait /mcp/* vers /acces : route token AVANT middleware session
- Toute vue exposée au membre doit rester security_invoker AVEC clause de bornage (sinon chacun lit les lignes des autres)
- DELETE via la vue = faille journal contournée : GRANT serrés testés sur le CATALOGUE pas sur le code