Skip to main content

MCP server for Odoo 19.0 via the JSON-2 API

Project description

bemade-odoo-mcp

An MCP server that connects to Odoo 19.0, giving AI assistants full access to any Odoo model.

Supports two authentication modes:

  • API key (Bearer) — connects via the JSON-2 API (/json/2/)
  • Username/password (session) — connects via JSON-RPC (/web/dataset/call_kw/)

Features

  • search_records — Search any model with domain filters, field selection, and pagination
  • read_record — Read specific records by ID
  • list_models — List installed Odoo models
  • get_model_fields — Inspect a model's field schema
  • get_model_doc — Retrieve API documentation for a model
  • create_record / update_records / delete_records — Write operations
  • call_method — Call any public method on any model

Requirements

  • Python 3.12+
  • An Odoo 19.0 instance with either an API key or login credentials

Installation

uv tool install bemade-odoo-mcp

Or from source:

git clone https://github.com/bemade/odoo-mcp.git
cd odoo-mcp
uv sync

Configuration

Set environment variables (or create a .env file).

Option A: API key (recommended for production)

ODOO_URL=https://your-odoo-instance.com
ODOO_API_KEY=your-api-key-here
ODOO_DB=your-database-name  # only needed for multi-database setups

To create an API key in Odoo, go to Settings > Users > [your user] > Preferences > API Keys.

Option B: Username/password (convenient for local dev)

ODOO_URL=http://localhost:8069
ODOO_USERNAME=admin
ODOO_PASSWORD=admin
ODOO_DB=mydb

Optional

ODOO_INSTANCE_LABEL=production  # label shown in the MCP server name (default: "odoo")

Usage with Claude Code

Add to your Claude Code MCP config (.claude/settings.json or project .mcp.json):

{
  "mcpServers": {
    "odoo": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/odoo-mcp", "odoo-mcp"]
    }
  }
}

Or if installed as a tool:

{
  "mcpServers": {
    "odoo": {
      "command": "odoo-mcp"
    }
  }
}

Connecting to multiple instances

Run the same server binary multiple times with different env vars. Claude Code namespaces the tools automatically (mcp__odoo-prod__search_records, etc.):

{
  "mcpServers": {
    "odoo-prod": {
      "command": "odoo-mcp",
      "env": {
        "ODOO_URL": "https://prod.example.com",
        "ODOO_API_KEY": "prod-key",
        "ODOO_INSTANCE_LABEL": "production"
      }
    },
    "odoo-dev": {
      "command": "odoo-mcp",
      "env": {
        "ODOO_URL": "http://localhost:8069",
        "ODOO_USERNAME": "admin",
        "ODOO_PASSWORD": "admin",
        "ODOO_DB": "mydb",
        "ODOO_INSTANCE_LABEL": "local-dev"
      }
    }
  }
}

Development

uv sync
uv run pytest

License

LGPL-3.0-only

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bemade_odoo_mcp-0.1.0a4.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bemade_odoo_mcp-0.1.0a4-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file bemade_odoo_mcp-0.1.0a4.tar.gz.

File metadata

  • Download URL: bemade_odoo_mcp-0.1.0a4.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Pop!_OS","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for bemade_odoo_mcp-0.1.0a4.tar.gz
Algorithm Hash digest
SHA256 6051267f0f822bc4480d2e2dec6c8810308d5b6b1d9327e618d7b5a84da282de
MD5 4b3b44e2f5928b8478b0bc35880aa144
BLAKE2b-256 48ebe2151649729a54529885c997b779b83092dcac485dbe3a8233cfc5257bd0

See more details on using hashes here.

File details

Details for the file bemade_odoo_mcp-0.1.0a4-py3-none-any.whl.

File metadata

  • Download URL: bemade_odoo_mcp-0.1.0a4-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Pop!_OS","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for bemade_odoo_mcp-0.1.0a4-py3-none-any.whl
Algorithm Hash digest
SHA256 e03896d13ef802481b0ed9a80e0a6e519542e31ef635b676cd375caf581325a8
MD5 702ae3838095aea8ad565147f34fa12e
BLAKE2b-256 928751ae7d42d8ff13e0d640cf18d420e9493914055ef2fe97cad253d7c5a444

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page