Raccourcis clavier

Appuyez sur ← ou → pour passer d'un chapitre à l'autre

Appuyez sur S ou / pour rechercher dans la documentation

Appuyez sur ? pour afficher cette aide

Appuyez sur Échap pour masquer cette aide

Connecteur Odoo

Connecteur Odoo

Le connecteur Odoo pilote une instance Odoo par le protocole XML-RPC. Parmi les douze connecteurs décrits dans ce livre, c'est celui qui expose le plus d'outils : 711 outils nommés au registre, mesurés le 2026-10-03.

Deux endroits où se compter

Le fichier connectors/odoo.yaml ne déclare que 6 outils (crm.search_leads, crm.create_lead, sale.list_orders, account.list_invoices, hr.list_employees, project.list_tasks). Les 711 outils nommés vivent dans le registre Rust crates/forge-mcp/src/connector/odoo_tools_registry.rs. Un test du dépôt affirme ce nombre. Le site public affiche le même chiffre (OUTILS_ODOO dans crates/forge-ui/src/config/chiffres_mesures.rs).

Ce que déclare le fichier

PropriétéValeur
Fichierconnectors/odoo.yaml
ProtocoleXML-RPC (type odoo)
Licence déclaréeLGPL-3.0
Résidence déclaréeauto-hébergé

Il n'y a pas de bloc auth : le connecteur lit quatre valeurs de connexion.

Configuration

VariableRôle
ODOO_URLAdresse de l'instance Odoo
ODOO_DATABASENom de la base de données
ODOO_USERNAMEIdentifiant de connexion
ODOO_API_KEYClé d'API Odoo (obligatoire : le fichier la déclare avec :?, sans valeur par défaut)

Les variables ODOO_DB et ODOO_PASSWORD ne sont lues par aucun connecteur.

Parcours complet, avec la fiche Odoo ERP/CRM et un premier appel : Connecter Odoo à la passerelle MCP.

Pour un locataire, les valeurs sont saisies comme identifiants de la plateforme et stockées chiffrées. Une organisation peut en plus stocker un AppRole OpenBao : l'URL, la base et la clé sont alors lues depuis OpenBao en priorité, au moment de la requête (résolution des identifiants du code, entrée odooApi).

Outils nommés

Mesure du 2026-10-03 sur les 711 entrées du registre, par opération :

OpérationOutils
search148
read120
group (agrégat en lecture)5
create113
update105
delete103
action (confirmer, valider, archiver, entre autres)117

Les lectures (search, read, group) sont donc 273. Les 438 autres modifient des données. Les 711 outils visent 140 modèles Odoo. Les noms sont de la forme <module>_<objet>_<action>.

Exemples réels, tous présents au registre :

DomaineOutils
Contactscontacts_search, contacts_create, contacts_merge, contacts_export_gdpr
CRMcrm_lead_create, crm_lead_convert, crm_lead_won
Ventessales_order_search, sales_order_create, sales_order_confirm
Achatspurchase_order_confirm
Facturationinvoice_search, invoice_create, invoice_post
Stockinventory_product_search
Ressources humaineshr_employee_search (87 outils portent le préfixe hr)
Projetsproject_task_create
Site et contenuwebsite_page_search, blog_post_create

Les préfixes les mieux fournis sont hr (87 outils), inventory (51), sales (43), website (39), mrp (35) et crm (34).

Les anciens noms odoo_search_read, odoo_sale_order_list et odoo_invoice_validate n'existent pas au registre. Les noms informels sont rapprochés des noms canoniques à l'appel par odoo_tool_resolver.

Quatre outils génériques

Quatre outils prennent le modèle en argument : record_create, record_read, record_update, record_delete (crates/forge-mcp/src/connector/odoo_generic_crud.rs). Ils ne fonctionnent que sur une liste blanche de 402 modèles métier (odoo_metier_models.rs). Le framework, les rapports, la messagerie et la sécurité en sont exclus.

Écritures gardées

Parmi ces 402 modèles, 24 sont gardés en écriture : plan de comptes, journaux, taxes, lignes d'écriture comptable, relevés bancaires, entre autres. Une création, une modification ou une suppression sur l'un d'eux exige une approbation humaine via /actions/approvals. Elle n'est jamais exécutée seule par l'agent. La lecture de ces modèles reste libre.

Déploiement

podman-compose.vps2.yml déploie 17 services Odoo, un par secteur (thérapie, médical, juridique, immobilier, finance, entre autres). L'entrée du catalogue métier (odoo, catégorie CRM & ERP) a le statut available.

Limites techniques

  • Le client HTTP du connecteur a un délai d'attente de 30 secondes.
  • L'identifiant utilisateur obtenu à la connexion est gardé en mémoire 600 secondes, puis redemandé.

Exemple

Quels sont les contacts créés cette semaine dans Odoo ?

L'agent choisit un outil de recherche sur les contacts (contacts_search), construit le filtre et exécute l'appel XML-RPC.

Fichiers sources

connectors/odoo.yaml, crates/forge-mcp/src/connector/odoo_tools_registry.rs, crates/forge-mcp/src/connector/odoo_generic_crud.rs, crates/forge-mcp/src/connector/odoo_metier_models.rs

Voir aussi