Odoo MCP
A self-hosted MCP server for Odoo: read and gated writes of ERP data through an agent, any edition and version
High risk
We rate an entry high when the tool writes to external systems, handles money, production databases or secrets, or runs arbitrary commands. The CLI installs it only with your consent.
Why this level
- Connects to an Odoo database with credentials
- Can write changes to ERP data
- Works with production systems
Install
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/odoo-mcpDetects the agents on your machine, checks the risk and pins the version.
Other ways to install
Assembled automatically, review before installing.
This entry is high risk, so there is no one-click install. Review the code and add the config by hand.
Run in a terminal
claude mcp add --transport stdio odoo-mcp -- uvx --setupOr add to the file .mcp.json, in the project
{
"mcpServers": {
"odoo-mcp": {
"command": "uvx",
"args": [
"--setup"
]
}
}
}If the file already exists, add the server inside the mcpServers key.
Keys and settings
ODOO_MCP_ELICIT_WRITESoptional- Enable human-in-the-loop approval for writes
ODOO_MCP_AUDIT_LOGoptional- Path to JSONL audit log file
ODOO_MCP_RATE_LIMIT_MODEoptional- Rate limit mode: warn or block
ODOO_LOCALEoptional- Locale for Odoo calls
MCP_CHATTER_DIRECToptional- Enable direct chatter posting bypassing approval gate
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Add to the file ~/.cursor/mcp.json, for all projects
{
"mcpServers": {
"odoo-mcp": {
"command": "uvx",
"args": [
"--setup"
]
}
}
}If the file already exists, add the server inside the mcpServers key. For a single project, put the same block into .cursor/mcp.json.
Keys and settings
ODOO_MCP_ELICIT_WRITESoptional- Enable human-in-the-loop approval for writes
ODOO_MCP_AUDIT_LOGoptional- Path to JSONL audit log file
ODOO_MCP_RATE_LIMIT_MODEoptional- Rate limit mode: warn or block
ODOO_LOCALEoptional- Locale for Odoo calls
MCP_CHATTER_DIRECToptional- Enable direct chatter posting bypassing approval gate
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Run in a terminal
code --add-mcp '{"name":"odoo-mcp","type":"stdio","command":"uvx","args":["--setup"]}'Or add to the file .vscode/mcp.json, in the project
{
"servers": {
"odoo-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"--setup"
]
}
}
}If the file already exists, add the server inside the servers key.
Keys and settings
ODOO_MCP_ELICIT_WRITESoptional- Enable human-in-the-loop approval for writes
ODOO_MCP_AUDIT_LOGoptional- Path to JSONL audit log file
ODOO_MCP_RATE_LIMIT_MODEoptional- Rate limit mode: warn or block
ODOO_LOCALEoptional- Locale for Odoo calls
MCP_CHATTER_DIRECToptional- Enable direct chatter posting bypassing approval gate
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Run in a terminal
codex mcp add odoo-mcp -- uvx --setupOr add to the file ~/.codex/config.toml, for all projects
[mcp_servers.odoo-mcp]
command = "uvx"
args = ["--setup"]If the file already exists, append the block to the end.
Keys and settings
ODOO_MCP_ELICIT_WRITESoptional- Enable human-in-the-loop approval for writes
ODOO_MCP_AUDIT_LOGoptional- Path to JSONL audit log file
ODOO_MCP_RATE_LIMIT_MODEoptional- Rate limit mode: warn or block
ODOO_LOCALEoptional- Locale for Odoo calls
MCP_CHATTER_DIRECToptional- Enable direct chatter posting bypassing approval gate
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Add to the file ~/.gemini/settings.json, for all projects
{
"mcpServers": {
"odoo-mcp": {
"command": "uvx",
"args": [
"--setup"
]
}
}
}If the file already exists, add the server inside the mcpServers key.
Keys and settings
ODOO_MCP_ELICIT_WRITESoptional- Enable human-in-the-loop approval for writes
ODOO_MCP_AUDIT_LOGoptional- Path to JSONL audit log file
ODOO_MCP_RATE_LIMIT_MODEoptional- Rate limit mode: warn or block
ODOO_LOCALEoptional- Locale for Odoo calls
MCP_CHATTER_DIRECToptional- Enable direct chatter posting bypassing approval gate
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Add to the file ~/.config/devin/mcp_config.json, for all projects
{
"mcpServers": {
"odoo-mcp": {
"command": "uvx",
"args": [
"--setup"
]
}
}
}If the file already exists, add the server inside the mcpServers key. Legacy Cascade keeps the MCP config in ~/.codeium/windsurf/mcp_config.json.
Keys and settings
ODOO_MCP_ELICIT_WRITESoptional- Enable human-in-the-loop approval for writes
ODOO_MCP_AUDIT_LOGoptional- Path to JSONL audit log file
ODOO_MCP_RATE_LIMIT_MODEoptional- Rate limit mode: warn or block
ODOO_LOCALEoptional- Locale for Odoo calls
MCP_CHATTER_DIRECToptional- Enable direct chatter posting bypassing approval gate
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Formerly Windsurf.
Add to the file cline_mcp_settings.json, for all projects
{
"mcpServers": {
"odoo-mcp": {
"command": "uvx",
"args": [
"--setup"
]
}
}
}If the file already exists, add the server inside the mcpServers key. Open the settings file in Cline: MCP Servers tab, Configure MCP Servers.
Keys and settings
ODOO_MCP_ELICIT_WRITESoptional- Enable human-in-the-loop approval for writes
ODOO_MCP_AUDIT_LOGoptional- Path to JSONL audit log file
ODOO_MCP_RATE_LIMIT_MODEoptional- Rate limit mode: warn or block
ODOO_LOCALEoptional- Locale for Odoo calls
MCP_CHATTER_DIRECToptional- Enable direct chatter posting bypassing approval gate
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Add to the file .roo/mcp.json, in the project
{
"mcpServers": {
"odoo-mcp": {
"command": "uvx",
"args": [
"--setup"
]
}
}
}If the file already exists, add the server inside the mcpServers key.
Keys and settings
ODOO_MCP_ELICIT_WRITESoptional- Enable human-in-the-loop approval for writes
ODOO_MCP_AUDIT_LOGoptional- Path to JSONL audit log file
ODOO_MCP_RATE_LIMIT_MODEoptional- Rate limit mode: warn or block
ODOO_LOCALEoptional- Locale for Odoo calls
MCP_CHATTER_DIRECToptional- Enable direct chatter posting bypassing approval gate
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
A fork of Roo Code, same .roo folders.
Add to the file opencode.json, in the project
{
"mcp": {
"odoo-mcp": {
"type": "local",
"command": [
"uvx",
"--setup"
]
}
}
}If the file already exists, add the server inside the mcp key.
Keys and settings
ODOO_MCP_ELICIT_WRITESoptional- Enable human-in-the-loop approval for writes
ODOO_MCP_AUDIT_LOGoptional- Path to JSONL audit log file
ODOO_MCP_RATE_LIMIT_MODEoptional- Rate limit mode: warn or block
ODOO_LOCALEoptional- Locale for Odoo calls
MCP_CHATTER_DIRECToptional- Enable direct chatter posting bypassing approval gate
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Add to the file ~/.config/zed/settings.json, for all projects
{
"context_servers": {
"odoo-mcp": {
"command": "uvx",
"args": [
"--setup"
]
}
}
}If the file already exists, add the server inside the context_servers key.
Keys and settings
ODOO_MCP_ELICIT_WRITESoptional- Enable human-in-the-loop approval for writes
ODOO_MCP_AUDIT_LOGoptional- Path to JSONL audit log file
ODOO_MCP_RATE_LIMIT_MODEoptional- Rate limit mode: warn or block
ODOO_LOCALEoptional- Locale for Odoo calls
MCP_CHATTER_DIRECToptional- Enable direct chatter posting bypassing approval gate
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Add to the file .codeassistant/mcp.json, in the project
{
"mcpServers": {
"odoo-mcp": {
"command": "uvx",
"args": [
"--setup"
]
}
}
}If the file already exists, add the server inside the mcpServers key.
Keys and settings
ODOO_MCP_ELICIT_WRITESoptional- Enable human-in-the-loop approval for writes
ODOO_MCP_AUDIT_LOGoptional- Path to JSONL audit log file
ODOO_MCP_RATE_LIMIT_MODEoptional- Rate limit mode: warn or block
ODOO_LOCALEoptional- Locale for Odoo calls
MCP_CHATTER_DIRECToptional- Enable direct chatter posting bypassing approval gate
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Install the MCP server: pip install odoo-mcp. In your MCP config run python -m odoo_mcp and set ODOO_URL, ODOO_DB, ODOO_USERNAME, ODOO_PASSWORD.
Other ways from the author
pip install odoo-mcpInstalls the MCP server from PyPI; run it with python -m odoo_mcp.
This is third-party code. Review the repository files before installing.
What it does
The server connects Odoo to an agent over MCP and exposes tools for ERP models: reading records, search, diagnostics and gated writes. Writes go through a safeguard so the agent does not change data unchecked. It supports multiple Odoo instances and the Community and Enterprise editions from version 16 on. It runs locally over stdio, installs from PyPI or via Docker and connects to your Odoo server over XML-RPC or JSON-RPC. The same author offers a separate hosted gateway product, but this repository stays the self-hosted local server.
Who it is for. For teams on Odoo who want an agent to read and carefully change ERP data.
Good fit when
- You want to ask an agent for Odoo data: orders, products, contacts
- You want gated writes to Odoo through an agent
- You want to connect several Odoo instances to one agent
Not a fit when
- You do not use Odoo but another ERP
- You cannot give an agent access to a production database even with limits
Example request
Show unpaid invoices from Odoo for last month for this customerLimitations
The server connects to your Odoo instance and needs a URL, database, user and a password or API key, so access must be granted deliberately. Even with write gating the agent works with ERP data, which is high risk for a production database. The hosted ERPipe gateway is a separate paid product outside this repository. Operation depends on Odoo version compatibility and the XML-RPC or JSON-RPC transport.
How to disable. Remove the odoo server from your client's MCP config and uninstall the package: pip uninstall odoo-mcp or stop the Docker container.
MCP
- Transport
- stdio
- Authentication
- API key
| Environment variables | |
|---|---|
| ODOO_URL required | URL of your Odoo instance |
| ODOO_DB required | Odoo database name |
| ODOO_USERNAME required | Odoo user |
| ODOO_PASSWORD required, secret | User password or API key |
| ODOO_TRANSPORT | Connection transport: xmlrpc or jsonrpc |
Security check
- Connects to an Odoo database with credentials
- Can write changes to ERP data
- Works with production systems
README in short
The README presents a free AI layer for Odoo: the server gives Community and Enterprise the capabilities that Odoo itself keeps to Enterprise. Setup takes a few minutes with pip install odoo-mcp, a uvx run, Docker and an mcpServers config snippet with connection variables. Writes are gated, and diagnostics and multiple instances are supported. The repository is the local Python server, while the hosted ERPipe gateway is a separate product. MIT licensed, published on PyPI.
FAQ
How does this repo differ from ERPipe?
This is a self-hosted local server over stdio with the full tool surface. ERPipe is a separate hosted gateway from the same author with a remote URL.
Which Odoo versions are supported?
Community and Enterprise from version 16 on, over XML-RPC or JSON-RPC.
Related
Salesforce's official DX MCP server: work with orgs, metadata, data, users and Apex tests from your agent
Yandex Kit skills for store management
kit-skills
Yandex's official skill set: catalog, prices, stock, orders, storefront and a weekly checkup for a Yandex Kit store, through Claude Code or Codex
YouGile MCP by Indalo
YouGile MCP
Full 65-operation YouGile API coverage with configurable permissions, write confirmation and a shared company rate limit
Bitrix24 portal MCP server
MCP-сервер портала Битрикс24
Bitrix24's official per-portal MCP: an external agent uses OAuth or a token to read and change tasks, deals, meetings and mail