Odoo Pulse
Odoo Pulse is an MCP server that acts as an AI business analyst for Odoo ERP, providing structured management reports with verdicts and full CRUD access to Odoo data.
High-Level Business Reports
business_pulse– Morning briefing: yesterday's sales, new leads, overdue invoices, late tasks, and absences with a company-wide verdictpipeline_review– CRM funnel by stage, stalled deals, weighted revenue, and recent win ratesales_snapshot– Revenue comparison (current vs. previous period), top customers/products, stale quotationsreceivables_health– AR/AP aging buckets, % overdue, and top debtorsinventory_risk– Stock shortages (negative forecast) and dead stock identificationabsence_overview– Who's off this week, pending approvals, thin-coverage departmentsprocurement_watch– Late receipts, stale RFQs, and open spend per vendorproduction_health– Manufacturing orders behind schedule and stuck WIPsprint_health– Sprint completion %, deadline buckets, per-stage breakdown, and verdictteam_workload– Per-assignee load, overloaded members, and unassigned workproject_status_report– Portfolio-level project health and overdue milestonesstandup_digest– Daily standup digest for a project, categorized by deadline
Generic Data Query Tools
search_read– Query any Odoo model with domain filters, field selection, sorting, and paginationsearch_count– Count records matching a domain filterread_records– Fetch specific records by IDaggregate_records– Server-side grouping and aggregation (sum, avg, min, max, count)read_attachment– Read file attachments (metadata + base64 content for small files)
Schema & Discovery Tools
odoo_version– Check connectivity and get server version infolist_models– List available Odoo models with optional name filteringget_model_fields– Inspect field schema (labels, types, help text, relations) for any model
Write Operations (opt-in, dry-run by default)
create_record/update_records/delete_records– Full CRUD on allowlisted models, with preview and explicit confirmation requiredcreate_lead,create_contact,create_task– Convenience helpers for common record creationconfirm_sale_order– Confirm a quotation into a sales order
Provides AI-powered business analytics for Odoo ERP, allowing users to ask questions and receive structured reports on sales, CRM, inventory, accounting, HR, project management, and manufacturing, with verdicts on business health.
odoo-pulse
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 |
| The morning briefing: yesterday's sales, new leads, overdue invoices, late tasks, who's off — with a company-wide verdict |
| CRM funnel by stage, stalled deals, weighted revenue, recent win rate |
| Revenue this period vs last (Δ%), top customers/products, stale quotations |
| AR/AP aging buckets, % overdue, top debtors |
| Shortages (negative forecast) and dead stock |
| Who's off this week, pending approvals, thin-coverage departments |
| Purchasing: late receipts, stale RFQs, open spend per vendor |
| Manufacturing: orders behind their planned start, stuck WIP |
| Projects: hours logged vs allocated, cost/revenue/margin, budget burn verdict |
| Budget vs actual per project, line by line — over-plan lines and spend the budget doesn't capture |
| 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.
Related MCP server: Odoo MCP Improved
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 docker-compose.playground.yml up -dFirst 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/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-pulseGenerate 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.
Or one-click:
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/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]"
pytestFor a live check against a real Odoo (read-only), see docs/tools.md#live-smoke-test-against-a-real-odoo.
License
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/minhhq-a1/odoo-pulse'
If you have feedback or need assistance with the MCP directory API, please join our Discord server