Skip to main content

A modular, type-safe, and secure MCP server for interacting with Odoo 18 ORM

Project description

OdooClaw MCP

Standalone MCP (Model Context Protocol) server for Odoo 18 over stdio.

MCP name: io.github.nicolasramos/odoo-mcp
PyPI package: odooclaw-mcp
Official CLI: odooclaw-mcp

Backward-compatible aliases are also installed:

  • odoo-mcp
  • odoo-mcp-server
  • odoo-18-mcp-server

Quick Start

1) Install

pip install odooclaw-mcp

From source:

git clone https://github.com/nicolasramos/odooclaw-mcp.git
cd odooclaw-mcp
pip install -e .

2) Configure environment

cp .env.example .env

Required:

ODOO_URL=https://yourcompany.odoo.com
ODOO_DB=your_database
ODOO_USERNAME=your_username
ODOO_PASSWORD=your_password

Optional:

ODOO_MCP_DEFAULT_LIMIT=50
ODOO_MCP_MAX_LIMIT=80
LOG_LEVEL=INFO

3) Validate and run

odooclaw-mcp --check-config
odooclaw-mcp

Alternative:

python -m odoo_mcp

MCP Client Configuration (stdio)

{
  "mcpServers": {
    "odoo": {
      "command": "odooclaw-mcp",
      "env": {
        "ODOO_URL": "https://yourcompany.odoo.com",
        "ODOO_DB": "your_database",
        "ODOO_USERNAME": "your_username",
        "ODOO_PASSWORD": "your_password",
        "ODOO_MCP_DEFAULT_LIMIT": "50",
        "ODOO_MCP_MAX_LIMIT": "80"
      }
    }
  }
}

Scope

  • 38+ MCP tools for Odoo operations (CRUD + business actions)
  • Pydantic validation for all tool payloads
  • Odoo 18 compatibility helpers (customer_rank / supplier_rank / payment_state)
  • Security guards (model allowlist, denylisted fields, action guard, unlink blocked)
  • Structured logging and audit actions

Security Model

The server uses standard Odoo JSON-RPC endpoints and executes operations as the configured Odoo session user.

For production, use a dedicated least-privilege Odoo account.

Production Notes

  • This is a stdio MCP server, not an HTTP API service.
  • Docker/Compose support is mainly for packaging or controlled runtime scenarios.
  • In normal usage, your MCP client launches the server process directly.
  • Keep Odoo credentials in environment variables or a secrets manager.

Known Limitations

  • One Odoo credential context per MCP process.
  • ODOO_DB is currently required by the authentication flow.
  • Some tools require specific Odoo apps/modules (CRM, Helpdesk, Project, etc.).
  • Designed for Odoo 18 field semantics.

Development

pip install -e .[dev]
ruff check src tests
black --check src tests
mypy src --ignore-missing-imports
pytest tests -v
python -m build
twine check dist/*

Docs

License

MIT - see LICENSE.

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

odooclaw_mcp-2.1.0.tar.gz (37.0 kB view details)

Uploaded Source

Built Distribution

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

odooclaw_mcp-2.1.0-py3-none-any.whl (47.8 kB view details)

Uploaded Python 3

File details

Details for the file odooclaw_mcp-2.1.0.tar.gz.

File metadata

  • Download URL: odooclaw_mcp-2.1.0.tar.gz
  • Upload date:
  • Size: 37.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for odooclaw_mcp-2.1.0.tar.gz
Algorithm Hash digest
SHA256 6f219b8203e2270bdf6832c729e0ef206d46674c409eb0011ef248a9f1a6e180
MD5 353258dce1b9751052c66a8e2eb9f440
BLAKE2b-256 68d26c2640a401fb6b0ad7de93b8ec7a09ae3530a50be2df17a2f2942021a76d

See more details on using hashes here.

File details

Details for the file odooclaw_mcp-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: odooclaw_mcp-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 47.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for odooclaw_mcp-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 323dedc781eae9f04cee56eaf8e02b1c77b81eb5152bdae841f0c349459d544a
MD5 90cca300be94e8c69617df65690e9997
BLAKE2b-256 8d6759702477b682f5a69d14ce6258f6ff60f89613e664612079f95a6dd8942d

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