Le protocole ouvert Model Context Protocol (MCP), développé par Anthropic, standardise la manière dont les modèles d’intelligence artificielle accèdent aux sources de données locales ou distantes. En configurant un serveur MCP lié à Odoo ERP via ses protocoles JSON-RPC ou XML-RPC, un assistant virtuel comme Claude 3.5 Sonnet interroge en temps réel vos données opérationnelles stockées en Belgique.
Pourquoi lier le Model Context Protocol à votre ERP Odoo ?
L’intérêt principal réside dans la suppression du décalage d’information. Les bases de connaissances classiques des grands modèles de langage s’arrêtent à leur date d’entraînement. En raccordant un agent intelligent à la base PostgreSQL de votre entreprise, l’assistant accède directement aux données les plus récentes.
Un développeur à Bruxelles ou un gestionnaire de stock à Liège peut ouvrir son client compatible MCP (comme Claude Desktop) et formuler des requêtes simples. L’IA traduit ces instructions naturelles en appels d’API structurés pour l’ERP, récupère la réponse brute, puis synthétise l’information sous une forme parfaitement lisible. Cela évite le développement manuel d’interfaces utilisateur spécifiques pour chaque besoin de reporting ou d’analyse.
L’architecture de l’intégration : comment dialoguent le MCP et l’API d’Odoo
Le protocole fonctionne selon une architecture client-serveur claire. Le client (votre outil d’IA) envoie une demande standardisée au serveur MCP. Ce serveur, généralement écrit en Python ou en TypeScript, joue le rôle de traducteur : il reçoit la requête de l’IA, s’authentifie auprès de votre instance ERP, effectue la requête via JSON-RPC, puis retourne le résultat formaté au client.
| Étape du flux | Action effectuée | Protocole utilisé |
|---|---|---|
| 1. Requête Client | L’utilisateur demande les derniers devis de l’exercice en cours au client IA. | Standard MCP (JSON) |
| 2. Traduction Serveur | Le serveur MCP reçoit la demande, prépare les filtres de domaine et interroge l’ERP. | JSON-RPC Odoo (Port 8069) |
| 3. Restitution | Les données brutes retournées par Odoo sont lues par l’IA et présentées de façon claire. | Standard MCP (Texte/JSON) |
Cette méthode préserve la sécurité de vos données. Le serveur MCP n’expose que les méthodes spécifiques définies dans son code (comme la lecture seule de certains champs de prospects ou de stocks). Les accès en écriture sur la comptabilité générale ou les fiches de paie restent inaccessibles à l’intelligence artificielle si les fonctions correspondantes ne sont pas programmées.
Étape par étape : configuration d’un serveur MCP avec JSON-RPC
La mise en place requiert l’écriture d’un script en Python qui utilise le SDK MCP d’Anthropic pour écouter les requêtes, et la bibliothèque standard d’Odoo pour récupérer les enregistrements.
Voici la structure de base d’un serveur d’intégration :
import os
from mcp.server.fastmcp import FastMCP
import xmlrpc.client
# Initialisation du serveur MCP
mcp = FastMCP("Odoo Connector")
ODOO_URL = os.environ.get("ODOO_URL", "https://votre-instance.odoo.com")
ODOO_DB = os.environ.get("ODOO_DB", "ma_base_de_donnees")
ODOO_USER = os.environ.get("ODOO_USER", "admin")
ODOO_PASSWORD = os.environ.get("ODOO_PASSWORD", "votre_cle_api")
def get_odoo_uid():
common = xmlrpc.client.ServerProxy(f'{ODOO_URL}/xmlrpc/2/common')
return common.authenticate(ODOO_DB, Odoo_USER, ODOO_PASSWORD, {})
@mcp.tool()
def read_customer_info(customer_name: str) -> str:
"""Recherche un client dans Odoo et retourne ses informations de contact."""
uid = get_odoo_uid()
models = xmlrpc.client.ServerProxy(f'{ODOO_URL}/xmlrpc/2/object')
# Recherche du partenaire par nom
partner_ids = models.execute_kw(
ODOO_DB, uid, ODOO_PASSWORD,
'res.partner', 'search',
[[['name', 'ilike', customer_name]]]
)
if not partner_ids:
return f"Aucun client trouvé pour le nom : {customer_name}"
# Lecture des données spécifiques
partners = models.execute_kw(
ODOO_DB, uid, ODOO_PASSWORD,
'res.partner', 'read',
[partner_ids],
{'fields': ['name', 'email', 'phone', 'city']}
)
result = []
for p in partners:
result.append(f"Nom : {p['name']} | Email : {p['email']} | Ville : {p['city']}")
return "\n".join(result)
if __name__ == "__main__":
mcp.run()
Ce script utilise la bibliothèque FastMCP d’Anthropic. Il définit un outil réutilisable par le grand modèle de langage. Pour déployer ce script en Belgique, il suffit de configurer le fichier de configuration de Claude Desktop localement ou de l’héberger sur un serveur de conteneurs pour le distribuer à vos équipes commerciales à Bruxelles.
Cas d’usage : interroger vos stocks et devis Odoo depuis votre assistant IA
Une fois le connecteur opérationnel, les équipes obtiennent des réponses immédiates à des requêtes complexes sans devoir générer de fichiers Excel ni parcourir plusieurs menus de l’ERP.
Voici trois exemples d’interactions directes :
- Gestion des ventes : « Donne-moi la liste des devis en attente de signature pour le client basé à Liège, avec le montant total hors taxes. »
- Logistique : « Reste-t-il plus de dix unités du produit de référence REF-990 dans notre entrepôt de Namur ? »
- Relation client : « Trouve l’adresse e-mail et le numéro de téléphone du responsable des achats de la société anonyme active dans l’agroalimentaire. »
Ces requêtes se traduisent instantanément en requêtes précises sur les tables de l’ERP. L’utilisateur gagne de précieuses minutes à chaque recherche d’information courante.
Pour concevoir des serveurs d’intégration IA sur mesure et sécuriser les accès de vos collaborateurs aux données de votre entreprise, l’équipe d’AdSim à Bruxelles vous accompagne dans la mise en œuvre de solutions connectées innovantes.


