odoo-pulse
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**An AI business analyst for your Odoo ERP.** Ask one
question, get one answer — numbers, highlights, risks, and a verdict
(on-track / at-risk / off-track) — over the Model Context
Protocol. CRUD bridges to Odoo already exist;
this is the analytics layer that sits on top.
The analyst tools
Each tool answers a whole management question in a single call, returning a
structured report with a verdict — not a raw dump you have to interpret.
| Tool | Answers |
| --- | --- |
| business_pulse ⭐ | The morning briefing: yesterday's sales, new leads, overdue invoices, late tasks, who's off — with a company-wide verdict |
| pipeline_review | CRM funnel by stage, stalled deals, weighted revenue, recent win rate |
| sales_snapshot | Revenue this period vs last (Δ%), top customers/products, stale quotations |
| receivables_health | AR/AP aging buckets, % overdue, top debtors |
| inventory_risk | Shortages (negative forecast) and dead stock |
| absence_overview | Who's off this week, pending approvals, thin-coverage departments |
| procurement_watch | Purchasing: late receipts, stale RFQs, open spend per vendor |
| production_health | Manufacturing: orders behind their planned start, stuck WIP |
| project_profitability | Projects: hours logged vs allocated, cost/revenue/margin, budget burn verdict |
| project_budget | Budget vs actual per project, line by line — over-plan lines and spend the budget doesn't capture |
| team_workload · project_status_report · standup_digest | Project delivery: overloaded members, at-risk projects, and a daily stand-up digest |
Every money-reporting tool takes an optional
company= filter and flags
mixed-currency totals instead of silently summing them; verdict cut-offs
(stalled %, overdue %, growth %) are parameters, so you can calibrate them
to your business.
Timezone semantics
All report tools take timezone_offset (default 7). Odoo stores datetime
fields in UTC; the tools shift them by timezone_offset hours before
bucketing by calendar day, and day windows in domains are expressed as UTC
datetime boundaries. Date-only fields (e.g. project.milestone.deadline,
invoice_date_due, project.task.date_deadline) are compared as-is.
Version-dependent fields
find_partner searches mobile only on instances that still have it (removed in Odoo 19), and list_timesheets reports an actionable error when hr_timesheet is not installed.
Under the hood it's the standard Odoo XML-RPC external API — nothing to install
inside Odoo, works on Odoo Online, Odoo.sh, and on-premise. **Requires
Odoo 18+**: the generic tools (search_read, read_records, …) still run on
older versions, but the report tools are not guaranteed there.
Try the playground
No Odoo account? Boot a demo Odoo pre-seeded with a story to tell (a stalled
deal, a 90-day-overdue invoice, a stock shortage, someone off today):
First boot pulls ~4 GB of images (Odoo + Postgres) and seeds the demo data —
allow 5-10 minutes depending on your connection. Then point Claude at it and