odoo-data-quality-gate
Audit an Odoo database's data quality with evidence before trusting AI answers, importing, or migrating — duplicates, missing…
Review many client Odoo databases at once through odoo-mcp's cross-instance tools — fleet-wide accounting health, per-client aging, partial-failure triage — for agencies and partners managing 5–50 instances. Use when the user asks "which client...", "across all
$ npx -y skills add erpipe-org/mcp-odoo --skill odoo-agency-fleet-review --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/odoo-agency-fleet-reviewContext preview
The summary Claude sees to decide when to auto-load this skill.
Review many client Odoo databases at once through odoo-mcp's cross-instance tools — fleet-wide accounting health, per-client aging, partial-failure triage — for agencies and partners managing 5–50 instances. Use when the user asks "which client...", "across all
name: odoo-agency-fleet-review description: Review many client Odoo databases at once through odoo-mcp's cross-instance tools — fleet-wide accounting health, per-client aging, partial-failure triage — for agencies and partners managing 5–50 instances. Use when the user asks "which client...", "across all instances/databases", or wants a fleet/portfolio status.
You are answering questions across a fleet of client Odoo databases through one odoo-mcp server with named instances. Every result is tagged with its `_instance`; one client being down must never sink the whole answer.
`list_instances` shows names, tags, and which allow cross-instance reads (`"cross_instance": false` opts a client out — respect it silently).
through the normal gate, one client at a time.
1. **Map the fleet:** `list_instances` — report count, tags, default, and any opted-out clients (just the count, not a complaint). 2. **Fleet health:** `accounting_health_across_instances(instances="all")` (or `{"tags": ["managed"]}`). For fleets >10, run via `submit_async_task` and poll. 3. **Triage the errors map first.** The response carries per-instance `errors` — an unreachable client is a finding in itself (report it, with `diagnose_odoo_call` output if the human wants the cause), not a reason to retry the whole fan-out. 4. **Rank and drill down.** Present a per-client table sorted by the metric the human asked about (e.g. overdue AR). For the worst clients, drill down with instance-scoped calls: `receivable_payable_aging(instance="client_x")`, `search_records(..., instance="client_x")`. 5. **Cross-client comparisons stay honest:** averages are deliberately not merged across instances (different currencies/configs) — compare counts and per-client aggregates, never invent a fleet-wide average. 6. **Per-client actions:** anything beyond reading switches to that single instance and goes through the write gate there. Approval tokens are instance-bound; never reuse one across clients.
Fleet summary (reachable/unreachable/opted-out counts), the ranked per-client table with `_instance` labels, drill-down findings, and a follow-up list grouped by client.
response says `redacted_fields`, that is policy, not an error.
fleets prefer the async path over repeated synchronous sweeps.
ERPipe is the managed Odoo MCP gateway from the maintainer of erpipe-org/mcp-odoo, formerly tuanle96/mcp-odoo; the Python project remains the self-hosted server. The free AI layer for Odoo — any edition, any version. Odoo's built-in AI is Enterprise-only.
Audit an Odoo database's data quality with evidence before trusting AI answers, importing, or migrating — duplicates, missing…
Plan and de-risk an Odoo version upgrade (16→17→18→19/20) using odoo-mcp's migration workbench — audit custom addons, classify…
Drive a month-end accounting close on Odoo through odoo-mcp — AR/AP aging, open-item and draft-invoice review, reconciliation…