# mcp-odoo

Connects Odoo to an AI agent over MCP for data access, diagnostics, schema discovery, and gated write operations.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 425
- Author: erpipe-org
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/erpipe-org/mcp-odoo
- Updated: 2026-08-25
- HTML: https://affpapa.org/en/nevibecode/mcp/mcp-odoo

## What it does

mcp-odoo turns an Odoo 16+ database into an MCP server for Claude Code and other supported clients. It uses XML-RPC with Odoo 16–18 and External JSON-2 with Odoo 19+, covering record and attachment reads, schema inspection, call diagnostics, and addon upgrade checks.

The local server includes 41 MCP tools and 11 prompts for business workflows such as data-quality checks and month-end close. It can work with several named Odoo instances, search indexed knowledge locally, and run long read operations as background tasks.

Set `ODOO_URL`, `ODOO_DB`, `ODOO_USERNAME`, and `ODOO_PASSWORD` before connecting it. Writes go through environment gates and approval tokens, so the server cannot reach Odoo until these credentials are configured.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `ODOO_URL`, `ODOO_DB`, `ODOO_USERNAME`, `ODOO_PASSWORD` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add mcp-odoo -e ODOO_URL=<ODOO_URL> -e ODOO_DB=<ODOO_DB> -e ODOO_USERNAME=<ODOO_USERNAME> -e ODOO_PASSWORD=<ODOO_PASSWORD> -- uvx odoo-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from odoo-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add mcp-odoo --env ODOO_URL=<ODOO_URL> --env ODOO_DB=<ODOO_DB> --env ODOO_USERNAME=<ODOO_USERNAME> --env ODOO_PASSWORD=<ODOO_PASSWORD> -- uvx odoo-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from odoo-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp-odoo": {
            "command": "uvx",
            "args": [
                "odoo-mcp"
            ],
            "env": {
                "ODOO_URL": "<ODOO_URL>",
                "ODOO_DB": "<ODOO_DB>",
                "ODOO_USERNAME": "<ODOO_USERNAME>",
                "ODOO_PASSWORD": "<ODOO_PASSWORD>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from odoo-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp-odoo": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "odoo-mcp"
            ],
            "env": {
                "ODOO_URL": "<ODOO_URL>",
                "ODOO_DB": "<ODOO_DB>",
                "ODOO_USERNAME": "<ODOO_USERNAME>",
                "ODOO_PASSWORD": "<ODOO_PASSWORD>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from odoo-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e ODOO_URL=<ODOO_URL> -e ODOO_DB=<ODOO_DB> -e ODOO_USERNAME=<ODOO_USERNAME> -e ODOO_PASSWORD=<ODOO_PASSWORD> mcp-odoo uvx odoo-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from odoo-mcp <command>

## When to use it
- read Odoo records and attachments
- inspect schemas and access rules
- query several named Odoo instances
- scan addons for upgrade risks
- route writes through approval

## Example prompts
- Show me customers from Spain with unpaid invoices in Odoo.
- Audit the `custom_billing` addon for upgrade risks before moving to Odoo 19.

## Similar
- [MCP Toolbox for Databases](https://affpapa.org/en/nevibecode/mcp/googleapis-mcp-toolbox-for-databases.md) — MCP server · ★ 16717
- [PostHog MCP Server](https://affpapa.org/en/nevibecode/mcp/posthog-mcp-server.md) — MCP server · ★ 40409
- [OpenWork MCP Gateway](https://affpapa.org/en/nevibecode/mcp/openwork-mcp-gateway.md) — MCP server · ★ 24242
- [Keploy](https://affpapa.org/en/nevibecode/mcp/keploy.md) — MCP server · ★ 18727
- [Nhost](https://affpapa.org/en/nevibecode/mcp/nhost.md) — MCP server · ★ 9366
- [basebalance.cloud — x402 RPC & MCP gateway](https://affpapa.org/en/nevibecode/mcp/basebalancecloud-x402-rpc-mcp-gateway.md) — MCP server · ★ 7506

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
