# odoo-mcp

Connects Claude Code and other MCP clients to Odoo 18 over stdio for CRM, sales, accounting, projects, support, and stock tasks.

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

## What it does

\`odoo-mcp` exposes Odoo 18 through an MCP server that communicates over `stdio`. An agent can search and update records, create quotations, purchase orders, vendor bills, tasks, helpdesk tickets, calendar events, and contract lines. It also provides model schemas, record summaries, stock details, and instance capability checks.

Set `ODOO_URL`, `ODOO_DB`, `ODOO_USERNAME`, and `ODOO_PASSWORD` before starting the server. MCP clients launch it with `uvx odoo-18-mcp-server`. Payloads are checked with Pydantic, model access follows an allowlist, sensitive write fields are restricted, and record deletion through `unlink` is blocked.

Tool arguments must sit inside a top-level `payload` object; leaving it out causes validation to fail. Some actions depend on the matching Odoo 18 apps or modules, so the connected instance determines which business operations can run.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `ODOO_URL`, `ODOO_DB`, `ODOO_USERNAME`, `ODOO_PASSWORD`, `ODOO_MCP_DEFAULT_LIMIT`, `ODOO_MCP_MAX_LIMIT` — 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 --env ODOO_URL=<ODOO_URL> --env ODOO_DB=<ODOO_DB> --env ODOO_USERNAME=<ODOO_USERNAME> --env ODOO_PASSWORD=<ODOO_PASSWORD> --env ODOO_MCP_DEFAULT_LIMIT=<ODOO_MCP_DEFAULT_LIMIT> --transport stdio odoo-mcp -- uvx odoo-18-mcp-server
```
Replace <…> with your own values. 1 more environment variable is in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from odoo-18-mcp-server <command>

### Codex

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

### Cursor

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

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "odoo-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "odoo-18-mcp-server"
            ],
            "env": {
                "ODOO_URL": "<ODOO_URL>",
                "ODOO_DB": "<ODOO_DB>",
                "ODOO_USERNAME": "<ODOO_USERNAME>",
                "ODOO_PASSWORD": "<ODOO_PASSWORD>",
                "ODOO_MCP_DEFAULT_LIMIT": "<ODOO_MCP_DEFAULT_LIMIT>"
            }
        }
    }
}
```
Replace <…> with your own values. 1 more environment variable is in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from odoo-18-mcp-server <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> -e ODOO_MCP_DEFAULT_LIMIT=<ODOO_MCP_DEFAULT_LIMIT> odoo-mcp uvx odoo-18-mcp-server
```
Replace <…> with your own values. 1 more environment variable is in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from odoo-18-mcp-server <command>

## When to use it
- find customers and vendors by contact details
- create and confirm sales orders
- register invoice payments
- schedule tasks and follow-up activities
- inspect Odoo models and instance capabilities

## Example prompts
- Find the partner matching this email in Odoo and return a short business summary.
- Create a quotation with these product lines, then leave it unconfirmed for review.
- List pending activities for this assignee and create a task in the selected project.

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 392262
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33989
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81163
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119231
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47577
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43902

---
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
