mcp-odoo-adv
mcp-odoo-adv 收录了来自 AlanOgic 的 8 个 skills,并提供仓库级职业覆盖和站内 skill 详情页。
这个仓库中的 skills
Execute multiple Odoo operations atomically (all succeed or all rollback) via batch_execute. Use when an operation spans multiple records or models that must be consistent — creating customer + sale order together, moving leads through stages + logging notes, or any workflow where partial success corrupts state. Triggers on "atomic", "transaction", "all or nothing", "rollback", "batch", "multi-operation", "create and link", or whenever partial success would be worse than total failure.
Create, update, and delete Odoo records via MCP execute_method. Use when adding new records (res.partner, crm.lead, sale.order, product.product, account.move, etc.), updating fields on existing records, bulk-updating via write, archiving, or deleting (unlink). Triggers on "create record", "add customer", "update field", "write to", "archive", "delete", "unlink", "bulk update", or any operation that mutates Odoo state.
Paginate, scope fields, and count-before-fetch when working with Odoo models that hold lots of data (mail.message, stock.move.line, account.move.line, sale.order.line, ir.attachment, res.partner across multi-company). Use when building a report, syncing data, iterating through all records of a model, or when a query times out / hits the smart-limit cap (1000 records). Triggers on "pagination", "offset", "large dataset", "count first", "timeout", or any loop that fetches "all" records.
Check the cookbook of recipes learned from ≥4 failed attempts on hard Odoo problems. Use AFTER your first failure on any Odoo MCP call — before retrying with a new guess. The cookbook is a living record of non-obvious solutions (many2many search operators, mail.message type distinctions, workflow side effects) that weren't discoverable from the schema alone. Triggers on "why isn't this working", "search returns empty", "silent failure", "I've tried everything", "stuck on", "last resort", or after any `execute_method` returns an unexpected result.
Recurring end-to-end recipes for HR (employees, time off), CRM (pending responses, pipeline analysis), inventory (products with stock, warehouse moves), accounting (invoices by period), and users/groups. Use when asked to pull a report, audit, or cross-model overview rather than a single CRUD action. Triggers on "employees without X", "time off pending", "invoices this quarter", "stock level", "pending CRM responses", "project tasks", "permissions audit", or any request that joins 2-3 Odoo models to answer a business question.
Read and write relational fields in Odoo — many2one (single link), one2many (list of child records), many2many (tag-style set). Use when creating a sale.order with order lines, tagging a partner with multiple categories, adding/removing followers, replacing a set of attributes, or when writes to relational fields fail silently. Triggers on "m2o", "o2m", "m2m", "many2one", "one2many", "many2many", "relation", "tags", "followers", "order lines", "invoice lines", or any write that crosses a record boundary.
Build Odoo domain filters and search queries via MCP execute_method. Use when searching/reading records from Odoo models (res.partner, crm.lead, sale.order, mail.message, etc.), constructing complex domains with AND/OR/NOT operators, or when a search returns wrong results and you need to fix the filter. Triggers on mentions of "search", "filter", "find records", "domain", "search_read", "search_count", or any Odoo model name in a read context.
Trigger Odoo business actions — confirm sale orders, post invoices, validate stock pickings, mark CRM leads won/lost, convert leads to opportunities, validate timesheets. Use when a record needs a state transition beyond a simple field write (states like draft → confirmed / posted / done, cancel / reopen). Triggers on "confirm order", "post invoice", "validate picking", "mark won", "mark lost", "action_confirm", "action_post", "button_validate", "action_cancel", or any reference to an Odoo workflow button.