Se rendre au contenu

Serveur MCP d'Odoo 20 : brancher un agent IA, à quelles conditions

Odoo 20 peut servir de serveur MCP à un agent IA externe. Ce que dit la documentation, les droits en jeu et le réglage prudent à faire avant tout essai.

Table of contents

No titles in the blog post

Un DAF me demande, entre deux clôtures, s'il peut « brancher son assistant IA sur Odoo » pour obtenir le chiffre d'affaires du trimestre sans ouvrir trois rapports. La question est devenue réaliste avec Odoo 20.0 : la base peut jouer le rôle d'un serveur MCP, auquel un agent d'IA externe se connecte pour lire, et éventuellement modifier, les données. La documentation officielle décrit le mécanisme avec précision. Elle laisse en revanche à l'entreprise toutes les décisions de prudence, et ce sont elles qui comptent.

Ce que le serveur MCP d'Odoo 20 fait concrètement

MCP (Model Context Protocol) est un standard ouvert qui permet à un modèle de langage d'appeler des outils d'une application externe. Côté Odoo 20.0, la base répond à l'adresse de la base suivie de /mcp. Le client (Claude Code, Codex, Antigravity, ChatGPT, Grok sont cités par la documentation) récupère au moment de la connexion la liste des outils exposés, la garde en cache pendant la session, puis appelle ces outils quand vous lui posez une question en langage courant. Odoo exécute l'outil et renvoie le résultat au client.

Les outils ne sont pas inventés par l'agent : ce sont des actions serveur d'Odoo. Pour les voir, il faut activer le mode développeur, puis aller dans Paramètres ‣ Technique ‣ Actions serveur. Par défaut, la base n'en expose que cinq : « AI Tool: Get Fields », « Get Models », « MCP Retrieve initial context », « Search » et « Read group ». Ce sont des outils de lecture. Les autres restent cachés tant que vous n'avez pas coché Disponible dans MCP (« Available in MCP ») dans l'onglet Utilisation de l'action qui n'apparaît que si Utiliser dans l'IA est lui même coché.

Ce défaut est une bonne décision d'éditeur : une base fraîchement installée ne permet pas à un agent d'écrire quoi que ce soit. Tout ce qui dépasse la lecture résulte d'un choix de l'administrateur.

Les droits : ceux de l'utilisateur, donc ceux que vous lui avez donnés

Pour l'authentification par clé d'API, la documentation précise que chaque requête utilise la clé pour authentifier « l'identité et les permissions de l'utilisateur » dans la base. L'agent n'a donc pas un super-pouvoir propre : il hérite des droits du compte qui l'a connecté. C'est rassurant et dangereux à la fois. Si la directrice financière connecte son agent avec son propre compte, l'agent voit tout ce que la directrice financière voit, y compris les salaires si elle y a accès.

La connexion peut se faire de deux façons. OAuth est la méthode recommandée : l'utilisateur se connecte à Odoo dans son navigateur, une page « Grant Access » indique quel client demande l'accès, et l'on choisit la durée de validité de l'autorisation. OAuth ne fonctionne que pour les utilisateurs internes. La seconde voie est une clé d'API, créée dans Préférences ‣ onglet Sécurité ‣ Créer une clé d'API, avec un nom, une portée « MCP » et une durée de validité. La clé n'est affichée qu'une fois, et la documentation précise que chaque connexion, par OAuth comme par clé, apparaît ensuite comme une clé d'API dans l'onglet Sécurité de l'utilisateur. Supprimer cette clé coupe l'accès.

Un réglage mérite une attention particulière : la case Allow Dynamic Client Registration (DCR) dans Paramètres ‣ Intégrations ‣ MCP OAuth. Odoo prévient lui-même que, cochée, elle permet à n'importe quelle application de s'enregistrer comme client et de demander l'accès. Pour une PME, je la laisserais décochée et j'ajouterais à la liste uniquement les clients dont on connaît l'adresse de métadonnées.

Mon avis : lecture d'abord, écriture plus tard, et jamais avec un compte personnel

La documentation cite en exemples des usages séduisants : revue du pipeline commercial, comparaison de facturation entre deux trimestres, création de contacts en masse, correction d'une fiche tiers. Je les crois fonctionnels. Je crois aussi qu'une PME aura du mal à mesurer, au moment d'activer l'écriture, ce qu'un agent fera d'une consigne ambiguë. Un humain qui hésite pose une question. Un agent qui a reçu l'outil « Create Records » et une phrase imprécise produit des enregistrements.

Ma recommandation tient en une ligne : commencer par la lecture seule, avec un utilisateur dédié, et ne rien exposer en écriture avant d'avoir regardé pendant quelques semaines ce que les collaborateurs demandent vraiment. En comptabilité, la question est encore plus tranchée : un agent qui crée ou modifie des tiers, des produits ou des factures dans une base utilisée pour une comptabilité française touche à des données dont vous devrez justifier l'origine en cas de contrôle. La piste d'audit n'a pas à s'accommoder d'un « c'est l'IA qui l'a fait ».

Il reste la question des données qui sortent. Un agent externe lit vos chiffres puis les transmet au fournisseur de modèle qu'il utilise, selon ses conditions à lui. J'ai détaillé le même problème pour l'IA intégrée dans IA dans Odoo : où partent vraiment vos données quand vous l'activez ?, et la logique est la même ici, avec un maillon de plus que vous ne contrôlez pas : le client que choisit chaque utilisateur.

Mode opératoire de prudence pour un premier essai

Avant d'appliquer ces conseils : testez chaque manipulation sur une copie de votre base ou sur un serveur de test, jamais directement en production. Ces conseils sont rédigés sans connaître votre configuration et peuvent ne pas s'appliquer tels quels chez vous. Nexelans ne peut pas être tenue responsable des conséquences d'une manipulation faite sans ces précautions.

  1. Travaillez sur une copie de la base Odoo 20.0, pas sur la base de production. Le serveur MCP y est le même, et une erreur d'écriture reste sans conséquence.
  2. Créez un utilisateur interne dédié, par exemple « Assistant IA », avec uniquement les droits de lecture des applications utiles (ventes, par exemple). Ne lui donnez ni la comptabilité ni les ressources humaines au départ.
  3. Connectez-vous en OAuth avec cet utilisateur, en choisissant une durée d'accès courte dans la page « Grant Access ». Si vous devez utiliser une clé d'API, donnez-lui la portée MCP et une validité d'un mois au plus.
  4. Vérifiez dans Paramètres ‣ Intégrations ‣ MCP OAuth que la case DCR est décochée.
  5. Contrôlez dans Paramètres ‣ Technique ‣ Actions serveur la liste des actions marquées « Disponible dans MCP ». Au départ, seules les cinq actions de lecture fournies par défaut doivent y figurer.
  6. Posez trois ou quatre questions dont vous connaissez la réponse (le chiffre d'affaires du mois dernier, le nombre d'opportunités ouvertes). Comparez avec le rapport Odoo. Si l'agent se trompe sur ce que vous connaissez, ne le croyez pas sur ce que vous ignorez.
  7. Pour retirer l'accès, supprimez la clé correspondante dans l'onglet Sécurité des préférences de l'utilisateur dédié, ou archivez le client dans Paramètres ‣ Technique ‣ Clients OAuth (mode développeur requis).

Si, plus tard, vous exposez un outil d'écriture, cochez « Outil en lecture seule » (Readonly Tool) uniquement pour les outils qui n'écrivent rien. Odoo précise que cette case ne cache pas l'outil : elle indique seulement au client qu'il peut l'appeler sans demander d'approbation. Cocher cette case sur un outil qui modifie des données retirerait donc le seul garde-fou humain prévu.

Ce que la documentation ne tranche pas

Plusieurs points restent à vérifier avant un déploiement réel : la liste complète des outils disponibles par application, le comportement exact de chaque outil d'écriture quand l'utilisateur n'a pas le droit de modifier un enregistrement, et l'impact du plan d'abonnement. Sur ce dernier point, la page d'introduction de l'IA indique que l'installation de l'application AI sur le plan Standard déclenche une proposition de passage au plan Personnalisé ; le lien avec l'usage du seul serveur MCP n'est pas précisé. Pour la facturation de l'IA au crédit côté Odoo, je renvoie à l'article Odoo 20 est sortie : ce qui est confirmé par rapport aux annonces.

Mon sentiment est que le serveur MCP est la partie la plus intéressante des annonces IA d'Odoo 20 pour une PME qui a déjà un assistant IA au quotidien, et la plus risquée pour celle qui l'active sans réfléchir. Il se règle bien, et c'est à l'administrateur de la base de le faire avant que les collaborateurs ne le fassent à sa place.

Sources