Use this skill to analyze the module dependency tree of an Odoo instance and generate a migration-priority report.
skillsy install vauxoo/mcp.odoo@odoo-module-depsGenerates a priority-sorted module list from any Odoo instance. Modules at
Level 1 have no custom dependencies — migrate them first. Higher levels
depend on lower ones.
odoo-mcp-multi installed with at least one profile configuredir.module.modulepython /path/to/odoo_mcp_multi/skills/odoo-module-deps/scripts/module_deps.py --profile <profile_name>
| Flag | Default | Description |
|---|---|---|
--profile, -p |
(required) | Odoo profile to analyze |
--format, -F |
csv |
Output format: csv, table, or json |
--include-native |
off | Include native Odoo modules in the output |
--extra-native |
(none) | Additional module names to treat as native (repeatable) |
# CSV output (default) — pipe to file
python module_deps.py -p vauxoo > deps_vauxoo.csv
# Markdown table — good for pasting in issues/docs
python module_deps.py -p vauxoo -F table
# JSON — for programmatic processing
python module_deps.py -p vauxoo -F json
# Include native modules (normally filtered out)
python module_deps.py -p vauxoo --include-native
# Mark extra modules as native (project-specific exclusions)
python module_deps.py -p vauxoo --extra-native my_custom_base --extra-native another_module
Fetches data via odoo-mcp operations (no subprocess, direct Python import):
ir.module.module (name, author)ir.module.module.dependencyFilters native modules (unless --include-native):
l10n_XX pattern (country localizations)sale_subscription)Builds the dependency graph client-side and computes levels via BFS from base:
base / native modulesbase) go in the last levelOutputs the report sorted by level, then alphabetically within each level.
| Level | Meaning | Migration strategy |
|---|---|---|
| 1 | Leaf dependencies — no custom modules depend on them | Migrate first, can be done independently |
| 2-3 | Mid-tier — depend on Level 1 modules | Migrate after their dependencies |
| N (highest) | Core infrastructure — many modules depend on them | Migrate last, most impactful |
The script has a built-in DEFAULT_NATIVE_NAMES set for common edge cases
(modules that aren't authored by Odoo but should be excluded during migration
planning). Use --extra-native to add project-specific exclusions without
modifying the script.
# Generate the report and attach to a GitLab issue
python module_deps.py -p prod -F table | glab issue comment 42 --repo myorg/instance -F -
# Compare two environments
diff <(python module_deps.py -p staging) <(python module_deps.py -p prod)