Skip to main content

AI business analyst for Odoo ERP — one-call reports with verdicts, over MCP

Project description

odoo-pulse

CI PyPI License: MIT

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.

business_pulse — a one-call company briefing

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
sprint_health · team_workload · project_status_report Project delivery: completion, overloaded members, at-risk projects

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.

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.

Try it in 5 minutes

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):

docker compose -f docker-compose.playground.yml up -d

Then point Claude at it and ask it to run business_pulse. Full walkthrough: docs/playground.md.

Install & connect

Add it to Claude Code (no install step — uvx fetches it):

claude mcp add odoo-pulse \
  --env ODOO_URL=https://acme.odoo.com \
  --env ODOO_DB=acme \
  --env ODOO_USERNAME=you@example.com \
  --env ODOO_API_KEY=your-api-key \
  --env ODOO_READ_ONLY=true \
  -- uvx odoo-pulse

Generate the API key in Odoo under Settings → Users → (your user) → Account Security → New API Key. Config for Claude Desktop and Cursor, plus pip and Docker alternatives: docs/install.md.

Read-only by default, safe writes when you want them

The server is read-only out of the box. Writes require four independent controls to line up (ODOO_READ_ONLY=false, a model allow-list, a delete flag, and a per-call confirm=true after a dry-run preview); system models are never writable. Details: docs/tools.md#write-operations.

More tools

Beyond the analyst reports, there are ~60 model-aware query tools spanning CRM, Sales, Inventory, Accounting, HR, Project, Manufacturing, PoS, and Enterprise apps — opt in via ODOO_TOOL_GROUPS. Full catalogue and configuration: docs/tools.md.

Testing

The suite mocks the XML-RPC layer, so no real Odoo or network is needed:

pip install -e ".[dev]"
pytest

For a live check against a real Odoo (read-only), see docs/tools.md#live-smoke-test-against-a-real-odoo.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

odoo_pulse-1.1.0.tar.gz (143.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

odoo_pulse-1.1.0-py3-none-any.whl (50.8 kB view details)

Uploaded Python 3

File details

Details for the file odoo_pulse-1.1.0.tar.gz.

File metadata

  • Download URL: odoo_pulse-1.1.0.tar.gz
  • Upload date:
  • Size: 143.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for odoo_pulse-1.1.0.tar.gz
Algorithm Hash digest
SHA256 c7cf481220c574e1ed7e1cd9e924253b5f60c9cb4c4012d75e54a6e92a7522a7
MD5 52f4d9ef1361f7be11fec4b09780ff34
BLAKE2b-256 33494c8b047acf9a77bfb339c1d070e6e62492703382de77cba1d7711923cfa9

See more details on using hashes here.

Provenance

The following attestation bundles were made for odoo_pulse-1.1.0.tar.gz:

Publisher: release.yml on minhhq-a1/odoo-pulse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file odoo_pulse-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: odoo_pulse-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 50.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for odoo_pulse-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 242da24f893502f57320181d3d0a1b7b3963ea17ea1f1d847b599bc097e270c4
MD5 fbf3f4d86daf7c689618ade23a004132
BLAKE2b-256 5520abc66cd437bef247da1b138b27ad0d1250d1bad6f0319102c90b5fd76889

See more details on using hashes here.

Provenance

The following attestation bundles were made for odoo_pulse-1.1.0-py3-none-any.whl:

Publisher: release.yml on minhhq-a1/odoo-pulse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page