emMCP Connectez un agent IA à votre Dolibarr, sans lui donner plus de droits qu'à vos utilisateurs.
emMCP expose vos données Dolibarr (tiers, factures, produits, stocks…) à Claude.ai, Claude Code ou tout client MCP compatible, via une API sécurisée par OAuth 2.1 ou clé API — les outils métier standards s'exécutent avec les permissions Dolibarr existantes de l'utilisateur, sans droit nouveau.
1 an de mises à jour et téléchargements inclus
Pourquoi emMCP ?
emMCP installe un serveur MCP (Model Context Protocol) directement dans Dolibarr. Un client compatible — Claude.ai, Claude Code ou un client HTTP MCP personnalisé — peut alors interroger et manipuler vos données via des outils dédiés (tiers, factures, produits, stocks, environnement Dolibarr…), en langage naturel, sans script ni export manuel.
Le point clé : pour les outils métier standards, emMCP n'introduit aucun droit nouveau. Chaque appel s'authentifie comme un utilisateur Dolibarr réel (clé API ou OAuth 2.1) et hérite de ses droits existants via l'API REST de Dolibarr. Un agent connecté avec les droits d'un commercial ne peut pas faire plus que ce que ce commercial peut faire dans Dolibarr. Seul l'outil de requête SQL fait exception : c'est un droit dédié, distinct, qui n'existe pas dans un Dolibarr standard (voir plus bas).
PHP ≥ 8.1 · HTTPS obligatoire · Module autonome (aucune dépendance à un autre module E-dem pour fonctionner)
Connexion en un copier-coller
La page de configuration affiche l'URL de votre serveur MCP et génère la commande ou le fichier prêts à coller, pour les trois façons courantes de se connecter.
- Claude.ai : connecteur personnalisé avec découverte OAuth 2.1 automatique, aucune clé à copier
- Claude Code : commande CLI avec en-tête d'authentification prête à l'emploi
- Client MCP générique : fichier mcp.json (transport HTTP) prêt à intégrer
- Clé API générée depuis la fiche de chaque utilisateur Dolibarr (onglet « Clé pour API »)
La page de configuration donne l'URL du connecteur, la commande Claude Code et le fichier mcp.json prêts à copier
Les permissions Dolibarr, à la lettre
emMCP ne crée pas un compte technique à part : il s'appuie sur l'authentification et les droits Dolibarr existants.
- Authentification par clé API Dolibarr (en-tête Bearer ou DOLAPIKEY) pour les clients qui la supportent
- OAuth 2.1 avec PKCE obligatoire (S256) pour les connecteurs comme claude.ai, conforme RFC 9728 / 8414 / 7591
- Jetons courts (1h), rotation à chaque rafraîchissement, stockés uniquement sous forme de hachage
- Les outils métier standards n'accordent aucune action au-delà des droits Dolibarr existants de l'utilisateur authentifié
💡 Révocation : régénérer la clé API coupe l'accès des clients qui l'utilisent (Claude Code, clients génériques), mais pas nécessairement celui d'un connecteur OAuth déjà autorisé (claude.ai) — son jeton d'accès (1h) se renouvelle automatiquement via son jeton de rafraîchissement. Pour couper immédiatement l'accès d'un connecteur OAuth, désactivez l'utilisateur Dolibarr associé ou le module emMCP. Il n'existe pas de bouton de révocation ciblée d'un jeton unique dans cette version : contactez le support pour ce cas précis.
Accès SQL en lecture seule, désactivé par défaut
Au-delà des outils métier standards, emMCP peut exposer un outil de requête SQL en lecture seule. Ce n'est pas un droit métier Dolibarr ordinaire : c'est un accès large aux données, qui reste fermé tant que quatre conditions ne sont pas toutes réunies. Dolibarr l'affiche lui-même en toutes lettres : accorder cet accès donne une lecture large de la base, bien au-delà des permissions métier habituelles (marges, salaires, tous les tiers sans restriction commerciale).
- Interrupteur global désactivé par défaut dans la configuration du module
- Droit Dolibarr dédié requis pour l'utilisateur (« Accès SQL MCP »)
- Opt-in individuel supplémentaire par utilisateur, en plus du droit — sans lui, l'accès reste désactivé même avec le droit accordé
- Bloqué en environnement Multicompany, sauf activation explicite du support multi-entité
- Une seule instruction SELECT ou WITH par appel, sur la connexion Dolibarr existante — aucun compte MySQL séparé à créer — analysée par un lexeur/analyseur syntaxique qui refuse toute requête qui n'est pas structurellement un SELECT (un mot comme « UPDATE » dans une valeur texte recherchée reste autorisé : ce n'est pas une écriture)
- Plafonds par défaut : 200 lignes (max 5000) et 256 Kio de réponse (max 4 Mio), appliqués par le module lui-même pendant la lecture des résultats ; délai maximum de 5 secondes (max 30) et transaction en lecture seule, eux appliqués par la session MySQL/MariaDB
- Colonnes sensibles (mots de passe, clés API, jetons, secrets) refusées nommément ; SELECT * est résolu colonne par colonne et bloqué s'il exposerait une colonne sensible ; fonctions à risque (sleep, benchmark, get_lock, load_file…) bloquées
- Chaque requête est journalisée avec ses métadonnées ; les résultats ne sont jamais enregistrés, et le texte de la requête peut lui-même être réduit à une empreinte SHA-256 si votre politique l'exige
⚠️ Réservé à MySQL/MariaDB (PostgreSQL non supporté pour cet outil). C'est un garde-fou de volume et de périmètre, pas une garantie absolue contre tout risque : gardez-le désactivé si vous n'en avez pas l'usage, et ne l'accordez qu'aux utilisateurs qui ont déjà, sur le plan organisationnel, le droit de consulter l'intégralité de ces données.
L'accès SQL en lecture seule : désactivé par défaut, autorisé utilisateur par utilisateur, périmètre refusé explicite et journal des requêtes
Journalisation, quota et alertes, sous votre contrôle
Chaque appel reçu par le serveur MCP peut être tracé : qui, quel outil, avec quels paramètres, en combien de temps, avec quel résultat. De quoi surveiller un agent en production sans deviner ce qu'il a fait.
- Journalisation activée par défaut ; les 100 derniers appels sont consultables et filtrables par utilisateur/outil
- Enregistrement des paramètres d'appel désactivable séparément pour la confidentialité (les résultats ne sont eux jamais enregistrés)
- Conservation du journal configurable, 90 jours par défaut, purge disponible en un clic
- Quota glissant d'appels par utilisateur (désactivé par défaut) et seuil d'alerte par courriel avec délai anti-doublon configurable
💡 À savoir : le quota ne compte que les outils réellement exécutés — la connexion et la liste des outils disponibles ne consomment rien. Pour garder un quota ou une alerte utile, laissez la journalisation activée et désactivez seulement l'enregistrement des paramètres si besoin de confidentialité.
Chaque appel de l'agent est tracé : qui, quel outil, avec quels paramètres, en combien de temps
Compatibilité & prérequis techniques
Dolibarr
PHP
Transport
Authentification
emMCP en images
Cliquez sur une image pour l'agrandir
Questions fréquentes
Avec quels clients emMCP fonctionne-t-il ?
Claude.ai (connecteur personnalisé avec OAuth 2.1), Claude Code (authentification par clé API), et tout client MCP compatible avec le transport HTTP (Streamable).
Quelles permissions l'agent obtient-il sur mes données ?
Pour les outils métier standards : exactement celles de l'utilisateur Dolibarr utilisé pour la connexion, via l'API REST — emMCP ne crée pas de compte ni de rôle à part. Seul l'outil de requête SQL fait exception : c'est un droit Dolibarr dédié, distinct, qui n'existe pas par défaut.
L'accès SQL est-il activé par défaut ?
Non. Il est désactivé par défaut et nécessite un interrupteur global, un droit Dolibarr dédié, un opt-in individuel par utilisateur, et l'absence de blocage Multicompany — les quatre conditions doivent être réunies.
emMCP fonctionne-t-il avec PostgreSQL ?
L'outil de requête SQL directe est réservé à MySQL/MariaDB. PostgreSQL n'est pas supporté pour cet outil spécifique.
J'obtiens une erreur 401 juste après avoir donné mon consentement OAuth, que faire ?
C'est généralement dû à l'en-tête HTTP Authorization non transmis par défaut sous Apache en mode CGI/FPM. Le module inclut les règles .htaccess nécessaires pour le réexposer ; consultez la documentation technique pour le détail.
Comment couper l'accès d'un agent ?
Ça dépend du mode de connexion. Pour un client par clé API (Claude Code) : régénérez la clé API de l'utilisateur. Pour un connecteur OAuth (claude.ai), régénérer la clé API ne suffit pas — son jeton se renouvelle seul via son jeton de rafraîchissement : désactivez l'utilisateur Dolibarr associé ou le module emMCP pour couper l'accès immédiatement. Il n'y a pas de bouton de révocation d'un jeton unique dans cette version.
emMCP dépend-il du module Dalfred ?
Non. emMCP est un module autonome, livré avec ses propres dépendances : aucune installation préalable d'un autre module E-dem n'est nécessaire.
Que couvre le prix affiché sur le DoliStore ?
L'achat du module inclut 1 an de mises à jour et de téléchargements depuis le DoliStore.
Mes données restent-elles dans Dolibarr ?
Non, pas exclusivement. emMCP tourne bien sur votre serveur, mais son rôle est justement de transmettre les données demandées au client IA que vous avez connecté (claude.ai, Claude Code, ou un autre client MCP) pour qu'il puisse répondre. Ces données quittent donc Dolibarr vers le fournisseur IA choisi, selon les conditions et la politique de confidentialité de ce fournisseur — ce n'est pas propre à emMCP, c'est le principe même du protocole MCP.
Vous cherchez un agent IA complet plutôt qu'un serveur MCP ?
Dalfred est notre agent IA intégré à Dolibarr, avec sa propre interface conversationnelle — et son propre accès MCP.
Prêt à connecter un agent IA à votre Dolibarr ?
Achetez emMCP sur le DoliStore ou contactez-nous pour évaluer votre cas d'usage avant l'achat.