mcpField
O
odoo-pulse

odoo-pulse

Local
github.comBusiness & Marketing1Updated 12w ago

About odoo-pulse

odoo-pulse is an analytics MCP server for Odoo 18+, turning management questions into reports with metrics, highlights, risks, and a verdict. It also provides model-aware queries across business areas and defaults to read-only access.

Key features

  1. 01Business pulse reports with verdicts
  2. 02CRM pipeline and sales analysis
  3. 03Receivables, payables, and inventory checks
  4. 04Project budget, margin, and workload reports
  5. 05About 60 model-aware query tools
  6. 06Read-only by default with guarded writes

Use cases

  1. 01Review overall business conditions each morning
  2. 02Find stalled deals and overdue invoices
  3. 03Check for stock shortages and dead stock
  4. 04Track project budgets, margins, and delivery risks

MCP support

The MCP server exposes Odoo analytics reports and model-aware query tools to clients. It connects through Odoo's XML-RPC external API and requires no installation inside Odoo.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"minhhq-a1-odoo-pulse": {
"command": "uvx",
"args": [
"odoo-pulse"
],
"env": {
"ODOO_URL": "<ODOO_URL>",
"ODOO_DB": "<ODOO_DB>",
"ODOO_USERNAME": "<ODOO_USERNAME>",
"ODOO_API_KEY": "<ODOO_API_KEY>",
"ODOO_READ_ONLY": "<ODOO_READ_ONLY>"
}
}
}
}
Run commanduvx odoo-pulse
Environment variables to set
ODOO_URLBase URL of the Odoo instance, e.g. https://acme.odoo.com
ODOO_DBOdoo database name
ODOO_USERNAMEOdoo login / email
ODOO_API_KEYSecretOdoo API key (used as the password)
ODOO_READ_ONLYBlock all write methods when true (default true)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypiodoo-pulse1.9.1

Tools

31

Saved tool list · updated 2w ago

This tool takes no parameters.

Details

From the project README

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.

ToolAnswers
business_pulse ⭐The morning briefing: yesterday's sales, new leads, overdue invoices, late tasks, who's off — with a company-wide verdict
pipeline_reviewCRM funnel by stage, stalled deals, weighted revenue, recent win rate
sales_snapshotRevenue this period vs last (Δ%), top customers/products, stale quotations
receivables_healthAR/AP aging buckets, % overdue, top debtors
inventory_riskShortages (negative forecast) and dead stock
absence_overviewWho's off this week, pending approvals, thin-coverage departments
procurement_watchPurchasing: late receipts, stale RFQs, open spend per vendor
production_healthManufacturing: orders behind their planned start, stuck WIP
project_profitabilityProjects: hours logged vs allocated, cost/revenue/margin, budget burn verdict
project_budgetBudget vs actual per project, line by line — over-plan lines and spend the budget doesn't capture
team_workload · project_status_report · standup_digestProject 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):

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

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 ask it to run business_pulse. Full walkthrough: docs/guides/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 [email protected] \
  --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/guides/install.md. If a key may have been exposed, see If an API key may have been exposed.

Or one-click:

Install in Cursor Install in VS Code

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

The server is read-only out of the box (ODOO_READ_ONLY=true). Writes require four independent controls to line up: ODOO_READ_ONLY=false, ODOO_WRITABLE_MODELS (a comma-separated model allow-list), ODOO_ALLOW_DELETE=true additionally for deletes, and a per-call confirm=true — every write tool returns a dry-run preview without it. System models are never writable. Details: docs/reference/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/reference/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/reference/tools.md#live-smoke-test-against-a-real-odoo.

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.