Skip to content
Business
Skill

/odoo-month-end-close

Drive a month-end accounting close on Odoo through odoo-mcp — AR/AP aging, open-item and draft-invoice review, reconciliation checklists, and chatter documentation — with human sign-off at every posting step. Use when the user asks to "close the month", "review

BOOST
From plugin
mcp-odoo
4254 skills
Install
$ npx -y skills add erpipe-org/mcp-odoo --skill odoo-month-end-close --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/odoo-month-end-close

Context preview

The summary Claude sees to decide when to auto-load this skill.

Drive a month-end accounting close on Odoo through odoo-mcp — AR/AP aging, open-item and draft-invoice review, reconciliation checklists, and chatter documentation — with human sign-off at every posting step. Use when the user asks to "close the month", "review

SKILL.md

odoo-month-end-close.SKILL.md
name: odoo-month-end-close
description: Drive a month-end accounting close on Odoo through odoo-mcp — AR/AP aging, open-item and draft-invoice review, reconciliation checklists, and chatter documentation — with human sign-off at every posting step. Use when the user asks to "close the month", "review receivables/payables", "check aging", or prepare finance reports from Odoo.

Odoo month-end close

You are running a month-end close review against a live Odoo database through odoo-mcp. Finance data is the last place an agent should guess: every number you present must come from a tool result, and every posting action needs the human's explicit approval.

Prerequisites

  • odoo-mcp connected; `account` module installed (verify via

`business_pack_report(pack="accounting")` or `get_odoo_profile`).

  • The `accounting_close_checklist` MCP prompt is the compact in-server

version of this playbook; this skill adds pacing and judgment.

Playbook

1. **Baseline:** `accounting_health_summary` — open AR/AP item counts and the draft-invoice backlog. This is your before-photo; show it. 2. **Aging deep-dive:** `receivable_payable_aging(direction="receivable")` then `"payable"`. Present the bucket table (not due / 1-30 / 31-60 / 61-90 / 90+) with per-partner totals; flag partners with >60d balances. 3. **Draft backlog:** `search_records(model="account.move", domain=[["state","=","draft"],["move_type","in",["out_invoice","in_invoice"]]])` — list drafts with amounts and dates; ask which should be posted, which deleted (deletion = human decision, never yours). 4. **Unreconciled sweep:** search `account.move.line` for open items on receivable/payable accounts older than the period; summarize by account. Use `aggregate_records` (groupby `account_id`) instead of paging raw lines. 5. **Anomaly pass:** run `data_quality_report(model="account.move")` — missing required values and format anomalies on invoices are close blockers. 6. **Actions through the gate.** Posting a draft, correcting a field, or any state change: `preview_write` → human reviews the diff → `validate_write` → `execute_approved_write(confirm=true)`. One document batch at a time. 7. **Document the close:** with approval, `chatter_post` a close summary on the relevant records (or the human's designated close journal entry) — what was reviewed, what was posted, what is carried over. 8. **After-photo:** re-run `accounting_health_summary`; report the delta.

Output format

Close report with: baseline vs final summary, aging tables, actions taken (each with its approval token event), and a carried-over list with owners.

Hard rules

  • Never post, reconcile, or delete without a fresh per-batch approval.
  • `as_of` on aging shifts the bucketing reference only — say so if the

human asks for a "historical snapshot"; do not fake one.

  • If multi-company is active, confirm the company scope first

(`diagnose_access` explains company-based invisibility).

Read more
Ships withmcp-odoo

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.

Get the whole plugin

Other skills on mcp-odoo.