Odoo MCP Server

1

Add it to Claude Code

Run this in a terminal.

Run in terminal
claude mcp add -e "ODOO_URL=${ODOO_URL}" -e "ODOO_DB=${ODOO_DB}" odoo-mcp-e1e0 -- npx -y odoo-mcp
Required:ODOO_URLODOO_DB+ 3 optional
README.md

Connect AI assistants to Odoo ERP via XML-RPC without additional addons

odoo-mcp

MCP (Model Context Protocol) server for Odoo ERP. Connect any AI assistant to your Odoo instance using standard XML-RPC — no addons, no YOLO mode, no hassle.

✨ Highlights

  • No addon required — uses Odoo's built-in XML-RPC API
  • No YOLO mode — proper API Key or user/password authentication
  • TypeScript — fully typed, reliable
  • Zero config — run with npx odoo-mcp, configure via environment variables
  • Odoo 14+ — works with any Odoo version that supports XML-RPC

Quick Start

1. Get your Odoo API Key

Go to Settings → Users → Your User → Preferences → Account Security → API Keys and generate one.

2. Configure your MCP client

Add to your MCP config (Claude Desktop, Cursor, etc.):

{
  "mcpServers": {
    "odoo": {
      "command": "npx",
      "args": ["-y", "odoo-mcp"],
      "env": {
        "ODOO_URL": "https://your-odoo.com",
        "ODOO_DB": "your-db",
        "ODOO_API_KEY": "your-api-key"
      }
    }
  }
}

3. Start asking questions

"Show me all open sales orders" "Create a new contact named John Doe with email john@example.com" "How many invoices were created this month?"

Environment Variables

Variable Required Description
ODOO_URL Odoo instance URL (e.g., https://your-odoo.com)
ODOO_DB Database name
ODOO_API_KEY ✅* API Key for authentication
ODOO_USER ✅* User email (when using user/password auth)
ODOO_PASSWORD ✅* Password (when using user/password auth)

* Either ODOO_API_KEY or both ODOO_USER + ODOO_PASSWORD are required.

Tools

Tool Description
search_records Search records with domain filters, field selection, pagination, and sorting
read_record Read specific records by ID
create_record Create a new record
update_record Update existing records
delete_record Delete records
count_records Count records matching a domain filter
list_models List all available Odoo models
get_fields Get field definitions for a model

Examples

Search records:

model: "res.partner"
domain: '[["is_company","=",true]]'
fields: "name,email,phone"
limit: 10

Create a record:

model: "res.partner"
values: '{"name":"John Doe","email":"john@example.com","is_company":false}'

Get field info:

model: "sale.order"
attributes: "string,type,required"

Authentication

API Key (Recommended)

  1. Log in to your Odoo instance
  2. Go to Settings → Users & Companies → Users
  3. Select your user → Preferences tab
  4. Under Account Security, click New API Key
  5. Copy the key and set it as ODOO_API_KEY

User/Password

Set ODOO_USER (email) and ODOO_PASSWORD instead of ODOO_API_KEY. This is less secure and not recommended for production.

Development

git clone https://github.com/intellieffect/odoo-mcp.git
cd odoo-mcp
npm install
npm run build

Test locally:

ODOO_URL=https://your-odoo.com ODOO_DB=your-db ODOO_API_KEY=your-key node dist/index.js

License

MIT

Tools (8)

search_recordsSearch records with domain filters, field selection, pagination, and sorting
read_recordRead specific records by ID
create_recordCreate a new record
update_recordUpdate existing records
delete_recordDelete records
count_recordsCount records matching a domain filter
list_modelsList all available Odoo models
get_fieldsGet field definitions for a model

Environment Variables

ODOO_URLrequiredOdoo instance URL
ODOO_DBrequiredDatabase name
ODOO_API_KEYAPI Key for authentication
ODOO_USERUser email for password authentication
ODOO_PASSWORDPassword for user authentication

Configuration

claude_desktop_config.json
{"mcpServers": {"odoo": {"command": "npx", "args": ["-y", "odoo-mcp"], "env": {"ODOO_URL": "https://your-odoo.com", "ODOO_DB": "your-db", "ODOO_API_KEY": "your-api-key"}}}}

Try it

Show me all open sales orders.
Create a new contact named John Doe with email john@example.com.
How many invoices were created this month?
List all available models in my Odoo instance.
Get the field definitions for the sale.order model.

Frequently Asked Questions

What are the key features of Odoo MCP?

Connects to Odoo via built-in XML-RPC API without extra addons. Supports secure authentication via API Keys or user/password. Fully typed TypeScript implementation. Compatible with Odoo 14 and newer versions. Provides full CRUD capabilities for Odoo records.

What can I use Odoo MCP for?

Automating customer data entry by creating contacts via natural language. Querying sales performance metrics directly from Odoo records. Quickly retrieving specific invoice or order details for reporting. Exploring Odoo database schema by listing models and field definitions.

How do I install Odoo MCP?

Install Odoo MCP by running: npx odoo-mcp

What MCP clients work with Odoo MCP?

Odoo MCP works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Odoo MCP docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare