‹ 首页

odoo-month-end-close

@tuanle96 · 收录于 1 周前

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中执行复杂的月结操作

/ 下载安装
odoo-month-end-close.skill双击,或拖进 Claude 桌面版 / Cowork,即完成安装↓ .skill↓ .zip
用别的 agent?下载 .zip 解压,把文件夹放进它的技能目录
Claude Code~/.claude/skills/(项目级 .claude/skills/)
Codex CLI~/.codex/skills/
Cursor自动读取上面两处目录
其他工具见其文档的「skills」目录;两个下载是同一份文件,只是名字不同
/ 通过 npx 安装 校验哈希
npx oh-my-skill add tuanle96/mcp-odoo/odoo-month-end-close
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- tuanle96/mcp-odoo/odoo-month-end-close
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify tuanle96/mcp-odoo/odoo-month-end-close
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
359GitHub stars
~623上下文体积 · 单文件
镜像托管

怎么用

技能原文 SKILL.md作者撰写 · MIT · 0ff0ac8

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_writeexecute_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).
按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。