Skills Reference
Detailed reference for each Odoo agent skill — what it does, when to use it, and which models it covers.
Read tier
Read-tier skills guide the agent toward read-only operations but do not enforce this at the tool level. For hard enforcement, use ODOO_READ_ONLY=true on your MCP server.
odoo-model-inspect
Tier: Read (safe on production)
General-purpose model inspection. Use when you need to understand model structure, field definitions, view XML, or record counts.
Models covered: Any Odoo model — this is the fallback for queries that don't fit a domain-specific skill.
When to use: "What fields does sale.order have?", "Show me the form view XML", "How many records exist in res.partner?"
When NOT to use: If the question is about a specific domain (accounting, inventory, manufacturing, system health), use the domain skill instead — they have field-name corrections specific to those models.
odoo-accounting-inspect
Tier: Read (safe on production)
Accounting-specific inspection. Knows the correct field names for Odoo 17+ accounting models.
Models covered: account.move, account.move.line, account.payment, account.journal
Key field corrections:
move_typenottype(renamed in Odoo 16)invoice_datenotpost_datepayment_statenotpayment_status
When to use: "Show unpaid invoices", "Aged receivables over 30 days", "Draft vs posted entries"
odoo-mrp-inspect
Tier: Read (safe on production)
Manufacturing inspection. Handles BoM recursion, production status, and MRP-specific field names.
Models covered: mrp.production, mrp.bom, mrp.bom.line, mrp.workorder, mrp.workcenter
Key field corrections:
date_startnotdate_planned_start(renamed in Odoo 17)- Verifies MRP module is installed before querying
When to use: "Stuck manufacturing orders", "Multi-level BoM breakdown", "Component availability", "Production throughput"
odoo-stock-inspect
Tier: Read (safe on production)
Inventory inspection. Covers stock levels, moves, transfers, and reordering rules.
Models covered: stock.quant, stock.move, stock.move.line, stock.picking, stock.warehouse.orderpoint
Key field corrections:
stock.move:nameandquantity_doneare not stored fieldsstock.move.line:qty_doneandreserved_uom_qtyare not stored fieldsproduct.product:qty_availableis not a stored field
When to use: "Negative stock", "Overdue transfers", "Reorder point analysis", "Reserved quantities"
odoo-system-inspect
Tier: Read (safe on production)
System health inspection. Covers modules, cron jobs, error logs, and user activity.
Models covered: ir.module.module, ir.module.module.dependency, ir.cron, ir.logging, res.users, res.users.log
Key field corrections:
ir.cron:numbercall,last_call,doallare not stored fieldsir.module.module:version,categoryare not stored fieldsres.users:last_login,groups_idare not stored fields
When to use: "Stuck cron jobs", "Recent error logs", "Module dependencies", "User login activity"
Write tier
odoo-model-customize
Tier: Write (mutates production)
Runtime-safe model customization. Knows the boundary between what can be done via RPC and what requires a custom Python module.
Capabilities:
- Set field defaults via
ir.default - Modify window action sort order and filters
- Create saved filters (
ir.filters) - Add custom
x_fields - Create inherited views with XPath
- Set up automated actions (
base.automation)
Safety boundary: Refuses to modify _order, _rec_name, add stored computed fields, or override Python methods — these require a custom module.
When to use: "Set the default sales team", "Change list view sort order", "Add a custom field to contacts"
Demo tier
odoo-model-customize-demo
Tier: Demo (sandboxed mutations)
Same capabilities as odoo-model-customize, but every artifact is tagged for clean removal:
- Custom fields:
x_demo_prefix - Views:
.demo.infix - Filters and automations:
[DEMO]prefix
Includes a cleanup recipe that finds and removes all demo artifacts.
When to use: "Walk me through adding a custom field", "Try out a saved filter", "Prototype a view change"