Odoo Migration Copilot
Transforme les journaux de mise à niveau Odoo et les scans d'addons en une liste de tâches classifiée via le serveur odoo-mcp
Fonctionne avec configuration
Ce que fait
Un playbook en trois phases pour les mises à niveau de version Odoo (16 à 17 à 18 à 19/20) qui utilise les outils de migration du serveur odoo-mcp : scan_addons_source et upgrade_risk_report pour l'inventaire, analyze_upgrade_log pour classer les échecs de staging comme no_action / needs_review / needs_script, lookup_model_history pour résoudre les renommages de modèles, et generate_json2_payload pour la transition XML-RPC vers JSON-2. La sortie est un en-tête de phase, un tableau de tâches action/catégorie/preuve/correction/statut, et une décision go/no-go avec le nombre de needs_script ouverts. Se déclenche lorsque vous mentionnez la mise à niveau ou la migration de versions Odoo, un journal de mise à niveau échoué, les erreurs de vue « attrs » d'Odoo 17, ou la dépréciation de XML-RPC.
Rapport de test
Cloné le dépôt et installé skills/odoo-migration-copilot dans un HOME temporaire (export HOME=$(mktemp -d)) — SKILL.md se trouve au bon chemin, le frontmatter s'analyse exactement en nom+description, aucun script référencé, aucun curl|sh / base64 / secret-exfil / texte d'injection nulle part sous skills/, et les récupérations brutes de SKILL.md, de la compétence sœur odoo-data-quality-gate, diagnostics.py et data/odoo_renames.json ont toutes renvoyé HTTP 200. Le serveur MCP nécessite des identifiants Odoo en direct, mais quatre des cinq outils appelés par le playbook sont des fonctions purement pilotées par l'entrée, j'ai donc exécuté analyze_upgrade_log_report, scan_addons_source_report, upgrade_risk_report, lookup_model_history_report et generate_json2_payload_report directement sur un journal d'échec synthétique Odoo 16 vers 17 de 14 lignes et un arbre d'addons acme_sales synthétique ; seuls get_odoo_profile et data_quality_report étaient inexécutables. L'artefact de compétence a acquis une structure réelle par rapport à ma base de référence non assistée — le tableau action|catégorie|preuve|correction|statut prescrit, un « no-go, 9 open needs_script » explicite, et lookup_model_history épinglant account.invoice à account.move à partir d'Odoo 13.0 avec la note de filtre move_type, plus un aperçu POST /json/2/sale.order/search_read vérifié. En revanche, les regex d'analyze_upgrade_log ont silencieusement ignoré deux des onze lignes d'erreur que ma base de référence en prose avait détectées (« Model acme.commission.rule references undefined model account.invoice » et « dependency website_theme_install not found »), et ont classé la ligne en cascade « Failed to load registry » comme son propre élément needs_script, donc suivre littéralement la sortie de l'outil donne une liste de tâches plus mince que de lire le journal soi-même.
Testé le: 2026-07-21 · Claude Code 2.x (agent harness)
Installation
git clone --depth 1 https://github.com/tuanle96/mcp-odoo.git /tmp/odoo-migration-copilot-src mkdir -p ~/.claude/skills cp -R /tmp/odoo-migration-copilot-src/skills/odoo-migration-copilot ~/.claude/skills/odoo-migration-copilot # REQUIRED, not optional: the skill is only a playbook — every step calls a tool from the # odoo-mcp MCP server. Without that server connected the skill has nothing to run. # uvx odoo-mcp --setup # prints the MCP client config snippet # Needs Odoo connection env vars (ODOO_URL / ODOO_DB / ODOO_USER / ODOO_PASSWORD or API key). # Phase 1 addon audit additionally needs ODOO_ADDONS_PATHS pointing at your custom addon tree. # Sibling skill referenced by Phase 1 step 4 (install it too if you want the data gate): # cp -R /tmp/odoo-migration-copilot-src/skills/odoo-data-quality-gate ~/.claude/skills/odoo-data-quality-gate # Upstream also offers: npx skills add erpipe-org/mcp-odoo (installs all 4 skills in the pack)
Commandes et exemples de prompts
/odoo-migration-copilotTransforme les journaux de mise à niveau Odoo et les scans d'addons en une liste de tâches classifiée via le serveur odoo-mcp
Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :
Plan our Odoo upgrade from 16 to 18Fix these broken upgrade log errorsPreview the JSON-2 payload changes for our upgrade