# tuanle96/mcp-odoo [Health: Active]

**Category:** 🏢 Workplace & Productivity  
**Repository:** https://github.com/tuanle96/mcp-odoo  
**GitHub Stars:** 408  
**npm Downloads (last month):** 167  
**Views:** 4  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/tuanle96-mcp-odoo

## Description
Production-grade MCP server for Odoo ERP (16-19) with zero Odoo-side install. 24 tools across read, write (approval-token gated), diagnose, migrate, and audit. JSON-2 transport for Odoo 19+, real Docker Compose smoke tests against Odoo 16/17/18/19, diagnostics (diagnoseodoocall, upgraderiskreport, fitgapreport, scanaddonssource), and 5 reusable agent prompts.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "mcp-odoo": {
    "command": "uvx",
    "args": ["odoo-mcp"]
  }
}
```

## Documentation

## What tuanle96/mcp-odoo MCP server does

The tuanle96/mcp-odoo MCP server exposes Odoo data and operational functions to MCP-compatible agents. It is designed for Odoo Community and Enterprise databases running versions 16 through 19, and does not require an App Store module or other Odoo-side installation. Agents can use it to inspect records and attachments, discover model schemas, construct domains, aggregate data, inspect access rules, and review data quality.

The server also supports operational work such as diagnosing failed Odoo calls, reviewing upgrade risks and logs, resolving model renames, scanning local addon source, and checking migration fit or gaps. Accounting-oriented functions include receivable/payable aging and an accounting health summary. Knowledge indexing and search provide local BM25 search over a bounded record slice without sending indexed data to an embeddings service.

## How it works

For Odoo 16–18, requests use XML-RPC. Odoo 19+ can use the External JSON-2 API. The server runs locally through stdio or can provide a local HTTP/SSE endpoint for clients that do not use stdio. A single process can be configured for multiple named Odoo instances, with an optional instance selector on tools and separate schema caches.

Read operations are the default focus. Writes through create, update, and delete paths are blocked unless the deployment enables writes and the request passes the approval workflow. Approved operations require live metadata, explicit confirmation, and a same-session approval token. Chatter posts follow the same gate unless direct chatter mode is enabled. An optional JSONL audit log records write-path events.

## Setup and configuration

The documented local installation command is:

```text
uvx odoo-mcp --setup
```

Configuration uses the Odoo connection details and credentials available to the local deployment. The README states that the server works with existing Odoo credentials and supports multiple named instances through configuration or environment settings. Optional controls cover field-level access rules, tool inclusion or exclusion, rate limiting, locale handling, structured logging, write elicitation, chatter behavior, and audit logging.

The project is available as the `odoo-mcp` Python package and is licensed under MIT. The local server is described as free to run; the separately hosted ERPipe service is a different product and is not required for this repository.

## Tools and capabilities

The documented tool surface includes 41 tools and 11 prompts. Capabilities include:

- Search, read, aggregate, and inspect Odoo records and attachments.
- Discover schemas, build domains, and apply smart field selection.
- Diagnose calls, inspect upgrade risk, and generate fit/gap reports.
- Scan local addon source and review migration-related data quality.
- Run long read operations as background tasks and poll their status.
- Query several configured instances with merged, attributed results.
- Use workflow prompts for invoice approval, purchase-order matching, onboarding, expense review, month-end close, and pre-migration checks.

## Limitations and notes

The tuanle96/mcp-odoo MCP server is a self-hosted local Python project, not the managed ERPipe gateway. The README identifies Claude Code and Cursor among its clients; the hosted service has a different remote URL and tool surface. Odoo 19 support depends on the External JSON-2 path, while earlier versions use XML-RPC. Write access is intentionally restricted by default workflow controls, so read-only deployments are the safer starting point for evaluation.

_Full upstream README: https://allmcps.com/mcp/tuanle96-mcp-odoo/readme_

