|
Description & Fonctionnalités
Serveur MCP pour Dolibarr avec studio IA : 18 outils, 33 modèles, OAuth 2.1, applications React, graphiques ECharts et constructeur de modules
Branchez un assistant IA sur votre Dolibarr — Claude, ChatGPT, Cursor, VS Code, ou n'importe quel client qui parle le Model Context Protocol — et laissez-le travailler dans vos données comme le ferait un collègue à qui vous avez donné un compte. Le module apporte un serveur MCP complet (JSON-RPC 2.0 sur HTTP en flux, OAuth 2.1 avec PKCE), 18 outils répartis en lecture, écriture, code et construction, et 33 modèles de données Dolibarr connus par cœur, du devis au règlement. Puis un studio pour ce que l'assistant construit ensuite : des applications web React, des graphiques ECharts, et des modules Dolibarr entiers livrés en zip. Le point central : un assistant agit au nom de la personne qui a dit oui, et ne voit jamais rien de plus qu'elle.
Pour qui ? Dirigeants qui veulent poser une question à leurs chiffres au lieu d'ouvrir dix listes, comptables qui traquent les impayés, commerciaux qui suivent leur portefeuille, chefs de projet, magasiniers — et les intégrateurs qui veulent construire des tableaux de bord, des portails clients et des modules Dolibarr sans repartir d'une page blanche. Un assistant branché, ou vingt : le principe reste le même.
Un serveur MCP complet dans Dolibarr
- Protocole MCP version 2026-07-28, avec réponse aux versions 2025-06-18, 2025-03-26 et 2024-11-05 : les clients d'aujourd'hui comme ceux d'hier se branchent sans rien changer.
- JSON-RPC 2.0 sur HTTP en flux (Streamable HTTP) : initialize, ping, tools/list, tools/call, prompts/list, prompts/get, resources/list, resources/read, les notifications, et les appels groupés.
- OAuth 2.1 avec PKCE S256, indicateurs de ressource, inscription dynamique des clients (RFC 7591), description du serveur (RFC 8414) et de la ressource (RFC 9728), restitution des jetons (RFC 7009).
- Une page d'autorisation en toutes lettres : avant de dire oui, la personne lit la liste des outils que l'assistant pourra employer, combien ne font que lire, combien peuvent modifier, et ce qui reste vrai quoi qu'il arrive.
- Un jeton personnel en une minute pour un poste de travail, sans passer par tout le protocole.
- Les jetons sont gardés sous forme d'empreinte SHA-256 seulement : une copie de la base ne rend aucun jeton utilisable.
- Code d'autorisation à usage unique : une seconde tentative révoque tous les jetons du couple personne-client, ce qui rend une interception inutile. Renouvellement par rotation.
- HTTPS exigé par défaut, sauf depuis la machine elle-même. Le module prévient de lui-même quand l'adresse qu'il donnerait aux clients ne conviendrait pas.
Dix-huit outils, en quatre familles
- Lire (6 outils, allumés au départ) : get_context dit ce qu'est cette installation, list_models et get_model_schema décrivent ce qui est lisible, search_read et read_record lisent, read_group additionne par groupes.
- Écrire (4 outils, éteints au départ) : create_record, update_record, delete_record et execute_method, qui fait à un enregistrement ce que Dolibarr lui ferait — valider un devis, approuver une commande fournisseur, clore un projet.
- Code et scripts (3 outils, éteints au départ) : code_search et code_read sur le dossier que l'administrateur a ouvert, execute_script pour le petit langage du module.
- Construire (5 outils, éteints au départ) : manage_webapp, create_chart, manage_module, search_webapp_code et search_module_code.
- Chaque outil déclare au client s'il ne fait que lire et s'il peut détruire, de sorte qu'un assistant sait quand il doit demander confirmation.
- Un outil ne répond que si trois choses concordent : il est allumé, le compte a le droit Dolibarr correspondant, et l'outil lui est ouvert. Allumer un outil ne peut donc jamais donner plus que ce que Dolibarr a déjà donné.
- Un bouton « Éteindre tout ce qui écrit » remet le serveur en lecture seule d'un seul geste.
Trente-trois modèles de données Dolibarr
- Ventes : tiers, contacts, propositions commerciales, commandes clients, factures clients, lignes de facture, contrats, expéditions.
- Achats : commandes et factures fournisseurs. Argent : règlements clients et fournisseurs, écritures bancaires, comptes, notes de frais, dons.
- Produits et stock : produits et services, mouvements, entrepôts, stock en place. Projets : projets, tâches, temps passé.
- Personnes : utilisateurs, adhérents, congés. Au quotidien : événements, tickets, interventions. Fait au studio : applications, graphiques, modules construits.
- Chaque modèle est décrit d'avance : sa table, sa clé, sa colonne d'entité, ses dates, et les façons dont il sait être regroupé. Un nom de table écrit à la main ne mène nulle part.
- Les modèles dont le module Dolibarr est éteint chez vous sont écartés d'eux-mêmes : l'assistant ne voit que ce qui existe réellement.
- Regrouper par une date en écrivant datef:month, datef:quarter, datef:week… et les résultats reviennent dans l'ordre du temps.
- Un regroupement sur fk_soc renvoie le nom du client, pas un numéro : le module reconnaît les clés étrangères qu'il sait joindre.
- Neuf modèles en lecture seule quoi qu'il arrive — règlements, écritures bancaires, mouvements de stock, temps passé, lignes de facture, utilisateurs — parce que Dolibarr y tient lui-même une cohérence.
Un petit langage en bac à sable, jamais de PHP
- Odoo a safe_eval ; PHP n'a pas d'équivalent. Ce module a donc pris l'autre chemin : il embarque son propre petit langage. Aucun code écrit par un assistant n'est jamais exécuté en PHP.
- Variables, if/else, for … in, while, listes, tables, opérateur ternaire, index négatifs, commentaires — et environ 75 fonctions sur les listes, le texte, les nombres, les dates et le JSON.
- Lecture de la base : db.select, db.first, db.count, db.group, db.fields, db.models, et db.sql en SELECT seulement, avec repères {{prefix}} et {{entity}} et limite ajoutée d'office.
- Pas d'import, pas de fichier, pas de shell, pas de $, pas d'accents graves, pas d'eval : ces mots sont refusés avant même que le script commence.
- Trois gardes en même temps : un compteur de pas, une horloge, une limite de mémoire. Une boucle sans fin est arrêtée là où elle en est, et Dolibarr continue.
- Aucune colonne de mot de passe, de clé ou de jeton n'est lisible, et huit tables entières sont fermées à toute requête écrite à la main.
- Le web n'est atteignable que si un administrateur l'a ouvert et a nommé les hôtes autorisés. C'est fermé au départ.
Constructeur d'applications web React
- Une application React 19 gardée dans Dolibarr : pages en JSX, composants réutilisables, points d'entrée, style et code communs, stockage côté serveur.
- Les pages tournent dans le navigateur ; ce qu'il leur faut de la base, elles le demandent à leurs propres points d'entrée, chacun étant un script qui ne peut que lire. La page reste libre, la porte reste étroite.
- Une petite bibliothèque fournie à chaque page : Dolibarr.useCall (hook avec loading, data, error), Dolibarr.call, Dolibarr.useRoute, Dolibarr.store, Dolibarr.money, Dolibarr.date, et React avec ses hooks.
- Un routeur à deux modes, un menu construit tout seul à partir des pages, et une feuille de style fournie pour qu'une page ait l'air de quelque chose sans écrire de CSS.
- Une page qui lève une erreur pendant qu'elle se dessine ne fait pas tomber l'application : l'erreur s'affiche là où on peut la lire, le reste continue.
- Partage par lien à durée limitée, refermable à tout moment, et installation sur téléphone en plein écran.
- React et Babel viennent d'un CDN configurable, ou d'une copie locale posée dans le module : une installation fermée au web fonctionne entièrement.
Constructeur de graphiques ECharts
- Vingt formes : barres, courbe, courbe remplie, camembert, anneau, nuage de points, radar, jauge, entonnoir, carte de chaleur, carte proportionnelle, soleil, flux, réseau, boîte à moustaches, chandeliers, rivière, parallèles, arbre, barres imagées.
- Six jeux de couleurs et onze extensions : parcours d'une longue série, coloration selon la valeur, boîte à outils, lignes et zones de repère, sélection, calendrier, chronologie.
- Le dessin et les chiffres restent séparés : le dessin est du JSON, incapable de faire quoi que ce soit ; les chiffres viennent d'un script qui ne sait que lire. Réunis à l'ouverture, ils sont toujours à jour.
- Le module accepte trois formes de résultat et reconnaît laquelle il a reçue : une liste de lignes, une table d'étiquettes et de nombres, ou plusieurs séries déclarées.
- Une option ECharts écrite à la main est nettoyée avant d'être gardée : une chaîne qui essaie d'être une fonction, une balise script, une adresse javascript sont ôtées.
- Partage par lien, dépliant des chiffres sous le graphique, et rafraîchissement automatique pour poser un graphique sur un écran d'atelier.
- ECharts vient d'un CDN ou d'une copie locale, comme React.
Constructeur de modules Dolibarr
- Décrivez un module — ce qu'il contient, et ce que chaque chose possède — et le studio écrit un module Dolibarr entier.
- Sortent : le descripteur que Dolibarr lit, les tables SQL et leurs index, les classes étendant CommonObject, les pages de liste avec recherche, tri et pagination, les pages de fiche avec création, modification et suppression, les menus, les fichiers de langue et le README.
- Quatorze sortes de champs, dont quatre vrais liens Dolibarr : un tiers, un utilisateur, un projet, un produit — avec sélecteur à la saisie et lien cliquable à l'affichage.
- Chaque objet reçoit sans qu'on le demande une référence numérotée, un statut, une note, l'auteur, les dates et la colonne d'entité pour le multi-société.
- Le code produit passe php -l, s'installe comme n'importe quel module externe, crée ses tables, déclare ses droits, et ses pages fonctionnent vraiment : ce n'est pas une maquette.
- Empaquetage en zip téléchargeable, pour regarder les fichiers avant de les installer. L'écriture directe dans le dossier de code existe mais reste éteinte au départ.
- Un numéro de module est choisi pour ne heurter aucun autre module de l'installation.
Invites toutes prêtes et ressources
- Six invites livrées : comment les ventes se sont passées, qui n'a pas payé, l'état du stock, construire un petit tableau, construire un module, répondre à partir des données.
- Une invite est un texte à blancs que le client va chercher par son nom, remplit, et met devant son modèle : c'est le moyen de donner à toute la maison des façons éprouvées de demander les choses.
- On en écrit d'autres en deux champs : le texte avec ses {{blancs}}, et la liste des blancs avec ce qu'ils sont et s'ils sont obligatoires.
- Quatre ressources offertes en lecture directe : le contexte de l'installation, le catalogue des modèles, celui des outils, et le code d'une application web.
- Le serveur donne au client, dès l'accueil, un mode d'emploi court : commencer par le contexte, puis les modèles, avant de lire quoi que ce soit. Un assistant qui le suit répond juste du premier coup.
Sécurité : ce qui est possible et ce qui ne l'est pas
- Il n'agit jamais qu'au nom de la personne qui a dit oui. Chaque jeton porte un utilisateur Dolibarr, chaque requête filtre sur son entité. Ce que ce compte ne peut pas atteindre, l'assistant ne le peut pas.
- Il n'exécute jamais de PHP écrit par un assistant.
- Il ne lit jamais une colonne de mot de passe, de clé ou de jeton, quelle que soit la question.
- Depuis un script, il n'exécute jamais autre chose qu'un SELECT.
- Il ne garde qu'une empreinte de chaque jeton.
- Il inscrit chaque appel : rien de ce qu'un assistant a fait n'est invisible après coup.
- Il n'écrit rien dans le dossier de code tant qu'un administrateur ne l'a pas autorisé exprès.
- Le serveur est fermé à l'installation, et seuls les six outils de lecture sont allumés quand on l'ouvre. Rien ne répond tant que vous n'avez pas décidé que quelque chose devait répondre.
Administration, droits et restrictions
- Huit droits Dolibarr : lire, connecter un assistant, construire des applications, des graphiques, des modules, partager par lien, lire le journal, modifier les réglages.
- Les restrictions ôtent quelque chose : un modèle entier, ou un champ précis, en lecture, en écriture ou en suppression — pour tout le monde ou pour des personnes et des groupes nommés.
- Un jeu prudent tout prêt en un clic : les outils tenus hors de la banque, des congés et des notes de frais, et empêchés d'écrire dans les paiements et les comptes utilisateurs.
- Chaque outil s'ouvre à tous ou à une liste de personnes et de groupes, indépendamment des autres.
- Les clients se ferment ou se suppriment ; les jetons se révoquent un par un ; et le serveur entier s'éteint d'un seul réglage. Les trois agissent immédiatement.
- Une page clés de services garde les clés d'API chiffrées et n'en montre plus jamais que les quatre derniers caractères.
- Sept groupes de réglages, chacun expliqué en une phrase, avec les limites qui empêchent une question étourdie de devenir un Dolibarr à genoux.
Journal de chaque appel
- Chaque appel est inscrit : l'outil, la personne, le client, ce qui a été envoyé, ce qui est revenu, le nombre de lignes, la durée, l'adresse, et l'issue — répondu, refusé, ou en échec.
- Les paramètres sont nettoyés avant d'être gardés : ce qui ressemble à un secret est remplacé par des étoiles.
- Cinq chiffres en haut de page, un diagramme des appels par outil, et une liste filtrable par outil, par issue, par mot et par nombre de jours.
- Le détail d'un appel montre ce qui a été envoyé, mis en forme, et ce qui est revenu.
- Trois usages : comprendre ce que les gens font vraiment, régler les restrictions à partir des refus, et rendre compte le jour où quelqu'un demande.
- Entretien automatique : taille le journal, jette les jetons expirés, ferme les liens périmés, oublie les conversations abandonnées.
Informations techniques
- Dolibarr 16 et supérieur (testé sur Dolibarr 23.0.4), PHP 7.4 à 8.4, MySQL/MariaDB.
- Aucun module Dolibarr requis : le serveur lit ce qui est activé chez vous et écarte le reste.
- Extensions PHP : JSON et mbstring, plus zip pour empaqueter un module construit. Aucune bibliothèque extérieure à installer côté serveur.
- React, Babel et ECharts viennent d'un CDN configurable ou d'une copie locale posée dans le module.
- 24 tables llx_mcps_*, un travail programmé d'entretien, et rien de modifié dans le cœur de Dolibarr.
- Multi-société : jetons, clients, applications, graphiques, modules, restrictions et journal séparés par entité.
- Cinq langues : français, anglais, italien, allemand, espagnol.
- Livré avec une documentation PDF de 43 pages. Licence GPL v3. Édité par NEXT GESTION — www.nextgestion.com
Démo du module MCP Studio
Login : demo
Mot de passe : demo
If you order our module you benefit from:
- free installation and configuration assistance
- free help in case of bug or module malfunction
- the addition of new functionalities or options specifically adapted to your needs.
|