Odoo Migration Copilot
Trasforma i log di aggiornamento di Odoo e le scansioni degli addon in una lista di lavoro classificata tramite il server odoo-mcp
Richiede configurazione
Cosa fa
Un playbook in tre fasi per gli aggiornamenti di versione di Odoo (da 16 a 17 a 18 a 19/20) che guida gli strumenti di migrazione del server odoo-mcp: scan_addons_source e upgrade_risk_report per l'inventario, analyze_upgrade_log per classificare i fallimenti di staging come no_action / needs_review / needs_script, lookup_model_history per risolvere le ridenominazioni dei modelli e generate_json2_payload per la transizione da XML-RPC a JSON-2. L'output è un'intestazione di fase, una tabella di lavoro azione/categoria/evidenza/correzione/stato e una decisione go/no-go con il conteggio dei needs_script aperti. Si attiva quando si menziona l'aggiornamento o la migrazione di versioni di Odoo, un log di aggiornamento fallito, errori di visualizzazione "attrs" di Odoo 17 o la deprecazione di XML-RPC.
Rapporto di test
Clonato il repository e installato skills/odoo-migration-copilot in una HOME temporanea (export HOME=$(mktemp -d)) — SKILL.md si trova nel percorso corretto, il frontmatter si analizza esattamente in nome+descrizione, nessuno script referenziato, nessun curl|sh / base64 / secret-exfil / testo di iniezione in skills/, e i fetch raw di SKILL.md, della skill sorella odoo-data-quality-gate, diagnostics.py e data/odoo_renames.json hanno tutti restituito HTTP 200. Il server MCP necessita di credenziali Odoo live, ma quattro dei cinque strumenti chiamati dal playbook sono funzioni puramente input-driven, quindi ho eseguito analyze_upgrade_log_report, scan_addons_source_report, upgrade_risk_report, lookup_model_history_report e generate_json2_payload_report direttamente contro un log di errore sintetico Odoo 16-to-17 di 14 righe e un albero addon sintetico acme_sales; solo get_odoo_profile e data_quality_report non erano eseguibili. L'artefatto della skill ha acquisito una struttura reale rispetto alla mia baseline non assistita — la tabella prescritta azione|categoria|evidenza|correzione|stato, un esplicito "no-go, 9 open needs_script", e lookup_model_history che associa account.invoice ad account.move a partire da Odoo 13.0 con la nota del filtro move_type, più un'anteprima verificata POST /json/2/sale.order/search_read. Contro questo, le regex di analyze_upgrade_log hanno silenziosamente saltato due delle undici righe di errore che la mia baseline in prosa aveva rilevato ("Model acme.commission.rule references undefined model account.invoice" e "dependency website_theme_install not found"), e hanno classificato la riga a cascata "Failed to load registry" come un proprio elemento needs_script, quindi seguire letteralmente l'output dello strumento produce una lista di lavoro più sottile rispetto alla lettura manuale del log.
Testato il: 2026-07-21 · Claude Code 2.x (agent harness)
Installazione
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)
Comandi e prompt di esempio
/odoo-migration-copilotTrasforma i log di aggiornamento di Odoo e le scansioni degli addon in una lista di lavoro classificata tramite il server odoo-mcp
Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):
Plan our Odoo upgrade from 16 to 18Fix these broken upgrade log errorsPreview the JSON-2 payload changes for our upgrade