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-mcpodoo-mcp-serverodoo-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
stdioMCP 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_DBis 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.
Metadata
Release files for odooclaw-mcp 2.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| odooclaw_mcp-2.1.0.tar.gz | 37.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| odooclaw_mcp-2.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 84.9 kB
Release files / odooclaw_mcp-2.1.0.tar.gz
| Download URL | odooclaw_mcp-2.1.0.tar.gz |
|---|---|
| Size | 37.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6f219b8203e2270bdf6832c729e0ef206d46674c409eb0011ef248a9f1a6e180
|
|
BLAKE2b-256 checksum How to use checksums |
68d26c2640a401fb6b0ad7de93b8ec7a09ae3530a50be2df17a2f2942021a76d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|
Release files / odooclaw_mcp-2.1.0-py3-none-any.whl
| Download URL | odooclaw_mcp-2.1.0-py3-none-any.whl |
|---|---|
| Size | 47.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
323dedc781eae9f04cee56eaf8e02b1c77b81eb5152bdae841f0c349459d544a
|
|
BLAKE2b-256 checksum How to use checksums |
8d6759702477b682f5a69d14ce6258f6ff60f89613e664612079f95a6dd8942d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|