Odoo Pulse MCP server
io.github.minhhq-a1/odoo-pulse·v1.9.1·1 starsAn AI business analyst for Odoo ERP (18+) — one-call reports with verdicts, over MCP
1 stars
Reviews
Write oneNobody has reviewed Odoo Pulse yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Odoo Pulse tools (89, 11 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
absence_overviewReport who is off and where coverage is thin, in one call.
aggregate_recordsGroup and aggregate records server-side (one call instead of pulling rows).
business_pulseOne-call company briefing: sales, leads, receivables, tasks, absences.
check_stockCheck on-hand stock per location for products matching a query.
confirm_sale_orderwrite actionConfirm a quotation into a sales order (sale.order action_confirm).
create_contactwrite actionCreate a contact (res.partner). Preview unless confirm=True.
create_leadwrite actionCreate a CRM lead/opportunity (crm.lead). Preview unless confirm=True.
create_recordwrite actionCreate one record. Returns a preview unless confirm=True.
create_taskwrite actionCreate a project task (project.task). Preview unless confirm=True.
delete_recordswrite actionDelete one or more records. Returns a preview unless confirm=True.
find_partnerFind contacts/companies (res.partner) by name, email, phone or reference.
find_productsFind products (product.product) with on-hand and forecasted quantities.
get_invoiceFetch a single invoice/bill (account.move) with its line items.
get_model_fieldsInspect the schema of an Odoo model. Returns each field's label, type, help text, requiredness and relation. Pass `fields` to limit the result to specific field names. Example model: 'res.partner'.
get_purchase_orderwrite actionFetch a single purchase order with its line items.
get_sale_orderwrite actionFetch a single sales order with its line items.
inventory_riskReport stock at risk — shortages and dead stock — in one call.
list_activitiesList scheduled activities / to-dos (mail.activity).
list_applicantsList recruitment applicants (hr.applicant).
list_appraisalsList employee appraisals (hr.appraisal).
list_approval_requestsList approval requests (approval.request).
list_attendancesList attendance records (hr.attendance) - employee check in/out.
list_bomsList bills of materials (mrp.bom).
list_calendar_eventsList calendar meetings (calendar.event).
list_coursesList eLearning courses (slide.channel).
list_departmentsList HR departments (hr.department) with employee headcount.
list_documentsList documents from the Documents app (documents.document).
list_email_campaignswrite actionList email marketing mailings (mailing.mailing) with engagement stats.
list_employeesList employees (hr.employee).
list_engineering_changesList PLM engineering change orders (mrp.eco).
list_equipmentList maintenance equipment / assets (maintenance.equipment).
list_event_registrationsList event registrations / attendees (event.registration).
list_eventsList events (event.event).
list_expensesList employee expenses (hr.expense).
list_helpdesk_ticketsList helpdesk tickets (helpdesk.ticket - Odoo Enterprise).
list_invoicesList invoices/bills (account.move).
list_iot_devicesList IoT devices (iot.device).
list_job_positionsList recruitment job positions (hr.job) with expected/recruited counts.
list_knowledge_articlesList Knowledge articles (knowledge.article).
list_loyalty_cardsList loyalty / gift cards (loyalty.card).
list_loyalty_programsList loyalty programs / coupons / gift cards (loyalty.program).
list_lunch_ordersList lunch orders (lunch.order).
list_maintenance_requestsList maintenance requests (maintenance.request).
list_manufacturing_ordersList manufacturing orders (mrp.production).
list_membershipsList membership lines (membership.membership_line).
list_modelsList Odoo models (technical name + label). Optionally filter by a case-insensitive substring matched against the model name or label, e.g. 'sale', 'res.partner', 'invoice'.
list_notesList notes (note.note).
list_opportunitiesList CRM opportunities (crm.lead, type='opportunity').
list_paymentsList customer/vendor payments (account.payment).
list_payslipsList payroll payslips (hr.payslip).
list_pickingsList stock transfers / pickings (stock.picking): deliveries, receipts, internal.
list_planning_slotsList planning shifts / slots (planning.slot).
list_pos_ordersList Point of Sale orders (pos.order).
list_pos_sessionsList Point of Sale sessions (pos.session).
list_projectsList projects (project.project).
list_purchase_orderswrite actionList purchase orders (purchase.order).
list_quality_alertsList quality alerts (quality.alert).
list_quality_checksList quality checks (quality.check).
list_repair_ordersList repair orders (repair.order).
list_sale_ordersList sales orders (sale.order).
list_sign_requestsList electronic signature requests (sign.request).
list_social_postsList social media posts (social.post).
list_subscriptionsList subscriptions (sale.subscription).
list_surveysList surveys (survey.survey) with response counts.
list_tasksList project tasks (project.task).
list_time_offList time off / leave requests (hr.leave).
list_timesheetsList timesheet entries (account.analytic.line with a project set).
list_vehiclesList fleet vehicles (fleet.vehicle).
list_website_visitorsList website visitors (website.visitor) with visit counts.
odoo_versionCheck connectivity and return the Odoo server version info.
parse_groupsSplit a comma-separated group list, validated against GROUP_MODULES.
pipeline_reviewReport the health of the CRM pipeline, in one call.
portfolio_healthPortfolio overview: one row per project, joined by id server-side.
procurement_watchReport purchasing health — late receipts and stale RFQs — in one call.
production_healthReport manufacturing health — late starts and stuck orders — in one call.
project_budgetReport planned vs actual budget per project, line by line.
project_dashboardEverything the project-detail page needs, in one call.
project_profitabilityReport delivery hours, money and budget burn per project in one call.
project_status_reportReport which projects are in trouble, across a portfolio, in one call.
project_subtask_hoursTotal sub-task hours for one project, filtered server-side, in ONE call.
read_attachmentRead an ir.attachment: metadata always, base64 content when small enough.
read_recordsFetch specific records by their ids. Pass `fields` to limit columns.
receivables_healthReport AR/AP aging and who owes what, in one call.
sales_snapshotReport how sales are going versus the previous period, in one call.
search_countCount records in a model matching an Odoo domain filter.
search_readQuery records from an Odoo model.
standup_digestGenerate a daily standup digest for a project.
team_workloadReport who is over- or under-loaded, in one call.
update_recordswrite actionUpdate one or more records. Returns a preview unless confirm=True.
Public scan report
scanner v0.1.9 · 2026-09-24 · same rubric, same numbers if you re-run it
- Code scan83 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 35 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Odoo Pulse compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 78/100
- higher than 57% of 48,255 servers
- Tools
- 89
- the typical server has 7
- Tools that change things
- 12%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 1
- more than 65% of 28,688 servers
What its tools let an agent do: 78 read · 4 create · 6 change · 1 delete
Install Odoo Pulse in Claude Code, Cursor or VS Code
claude mcp add odoo-pulse -- uvx odoo-pulse
What the publisher says
From the Odoo Pulse repository's README, as published. We do not edit it. Read it on GitHub
odoo-pulse
<!-- mcp-name: io.github.minhhq-a1/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.
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 timezoneoffset (default 7). Odoo stores datetime fields in UTC; the tools shift them by timezoneoffset 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, invoicedatedue, project.task.date_deadline) are compared as-is.
Version-dependent fields
findpartner searches mobile only on instances that still have it (removed in Odoo 19), and listtimesheets 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 (searchread, readrecords, …) 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 -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 businesspulse**. Full walkthrough: docs/guides/playground.md.
Install & connect
Add it to Claude Code (no install step — uvx fetches it):
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Odoo Pulse: common questions
- Is Odoo Pulse MCP server safe?
- Mostly: it is graded B (78/100). Read the Odoo Pulse safety report
- How do I install Odoo Pulse?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Odoo Pulse need an API key?
- Yes. The registry entry asks for
ODOO_API_KEY. - Is Odoo Pulse maintained?
- The last commit was 76 days ago (2026-08-20). The latest release is v1.9.1.
- How does Odoo Pulse compare with other MCP servers?
- safety score 78/100 (higher than 57% of 48,255 servers); tools 89 (the typical server has 7); tools that change things 12% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.