mcpbeat

Odoo Data Quality Gate

erpipe-org/odoo-data-quality-gate

Audit an Odoo database's data quality with evidence before trusting AI answers, importing, or migrating — duplicates, missing required values, orphaned references, format anomalies — and drive remediation through odoo-mcp's gated write workflow. Use when the user asks to "check data quality", "clean up data", "prepare for migration", "find duplicates", or when aggregate answers look suspicious.

770 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
379
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/erpipe-org/mcp-odoo --skill odoo-data-quality-gate

The instruction itself

5 sections, as written by the author

Odoo data-quality gate

You are running a data-quality audit against a live Odoo database through the

odoo-mcp server (tools named data_quality_report, diagnose_access,

preview_write, …). Dirty data is the #1 reason ERP AI projects fail —

your job is to find issues with evidence and never modify anything

without the human approving each batch.

Prerequisites

  • odoo-mcp connected (any Odoo 16+; check with health_check).
  • Writes stay off unless the operator set ODOO_MCP_ENABLE_WRITES=1

remediation proposals are still valuable without it.

Playbook

  • Scope with the human. Which models matter? Default set for a general

audit: res.partner, product.template, account.move. For migration

prep, add every model the custom addons touch (scan_addons_source

lists them).

  • Run the report per model: data_quality_report(model=...). On large

databases run it in the background:

submit_async_task(operation="data_quality_report", params={"model": ...})

then poll get_async_task.

  • Read summary.checks_with_issues and show evidence. Every finding

carries record ids/values — present them in a table (check, issue_count,

sample evidence). Never summarize away the ids; the human needs them.

  • Verify orphans before judging. orphaned_references cannot tell a

dangling reference from a record the current user simply cannot read.

For each one, run diagnose_access(model=<target_model>) and report

which explanation fits.

  • Propose remediation as batches, not actions. Group fixes (merge

duplicates, fill required fields, archive orphans) into small batches of

explicit record ids with the exact new values.

  • Execute only through the gate, one approved batch at a time:

preview_write → show the diff → validate_write → human confirms →

execute_approved_write(confirm=true). Never call execute_method for

writes; it is blocked by design.

  • Re-run the report after remediation and show the before/after issue

counts.

Output format

A per-model table (check | issue_count | worst evidence | action), a

remediation plan ordered by migration risk, and an explicit verdict per

model: clean / needs remediation / blocked (explain).

Hard rules

  • Read-only by default; every write needs a fresh approval token and the

human's explicit confirmation for that batch.

  • Respect redacted_fields in responses — never ask the user to lift the

field ACL to "see more".

  • If a check errored (summary.checks_errored), say so — do not present a

partial audit as complete.

How to use it

Copy the folder

Take erpipe-org/odoo-data-quality-gate from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.