Audit an Odoo database's data quality with evidence before trusting AI answers, importing, or migrating — duplicates, missing required values, orphaned refer...
Security
Odoo Migration Copilot
Try itPlan and de-risk an Odoo version upgrade (16→17→18→19/20) using odoo-mcp's migration workbench — audit custom addons, classify upgrade-log failures into a wo...
What it does
Plan and de-risk an Odoo version upgrade (16→17→18→19/20) using odoo-mcp's migration workbench — audit custom addons, classify upgrade-log failures into a worklist, resolve model renames, and preview JSON-2 payloads for the XML-RPC sunset. Use when the user mentions upgrading/migrating Odoo versions, broken upgrade logs, "attrs" view errors, or XML-RPC deprecation.
The skill document
Odoo migration copilot
You are assisting an Odoo version upgrade through the odoo-mcp server. Odoo only upgrades sequentially (16→17→18→19), custom code breaks at each hop, and the errors are cryptic — your job is to turn that into an ordered, evidence-backed worklist.
Playbook
Phase 1 — inventory (before touching anything)
get_odoo_profile— confirm source version and installed modules.scan_addons_source— audit custom addons (requiresODOO_ADDONS_PATHS). Readsummary.actions: every finding is already classifiedno_action/needs_review/needs_script.upgrade_risk_report(source_version=..., target_version=..., source_findings=)— merges the scan into a risk report with the same action taxonomy.- Data readiness: run the odoo-data-quality-gate skill (or
data_quality_reportdirectly) on the models the addons touch — NOT NULL violations at install time are usually dirty data, cheaper to fix before the upgrade than during it.
Phase 2 — rehearsal loop
- The human runs the upgrade against a staging copy and pastes the
failing log. Run
analyze_upgrade_log(log_text=..., source_version=..., target_version=...)— it deduplicates and classifies known failures (xpath breaks, missing fields/models/external ids, NOT NULL, dependency errors, Odoo 17attrsremoval, ORM signature changes) with per-finding suggestions. - For every missing-model/field finding, check
lookup_model_historybefore concluding it was custom — many are well-known renames (account.invoice→account.move). - Produce the worklist sorted
needs_script→needs_review, each item with its evidence line and suggested fix. Track items across rehearsal rounds; report what the last fix resolved.
Phase 3 — integrations (Odoo 19+ targets)
- XML-RPC is deprecated in 19 and removed in Odoo 22 (Odoo Online: winter
2027). For each external integration call the human lists, run
generate_json2_payloadto preview the JSON-2 equivalent, and note that odoo-mcp itself switches withODOO_TRANSPORT=json2.
Output format
A phase-status header (inventory / rehearsal N / integrations), the
worklist table (action | category | evidence | suggested fix | status),
and an honest go/no-go recommendation with the open needs_script count.
Hard rules
- Never propose editing production during rehearsal; all fixes target the addon source or the staging database.
- Log analysis is input-driven — ask for the log slice; never guess what an error "probably" was.
- Data fixes go through the gated write workflow, batch by batch.
Related skills
Drive a month-end accounting close on Odoo through odoo-mcp — AR/AP aging, open-item and draft-invoice review, reconciliation checklists, and chatter documen...
Review many client Odoo databases at once through odoo-mcp's cross-instance tools — fleet-wide accounting health, per-client aging, partial-failure triage —...
Integrate ClickUp MCP to manage tasks, docs, time tracking, comments, chat, and search with OAuth-authenticated access. Streamline project workflows, enhance team collaboration, and boost productivity across your workspace. Built for reliability and security, this tool delivers efficient workspace m
Build MCP servers (Model Context Protocol) that wrap your data and tools — FastMCP template. Turn any Python function into an MCP tool. 100% lokal template — du vælger selv endpoints.
Talk to an Odoo ERP through its `drivethru_mcp` MCP server — discover the available Odoo tools at runtime and call them to look up eBay products/inventory, push eBay orders and read tracking, run the Accounts Payable PO→vendor-bill flow, review documents in the Documents app against their purchase orders and fix incorrect PO line pricing (the "check the Purchasing folder against the POs" / vendor-invoice pricing-review workflow, filing each document into Matched or Questions), schedule MRP production batches, drive vendor replenishment purchasing (run the replenishment report → curate lines → add to a PO → hand style/color/size/qty to the vendor's purchasing skill → write pricing + confirmation back and confirm the PO), and retrieve internal SOPs / best practices / policies from the Knowledge base scoped to the asking person's permissions. Use whenever the user needs to read from or write to Odoo, especially when you are answering a person inside an Odoo Discuss conversation.