odoo-mcp-pro
AI connector for Odoo ERP that lets you search, create, update, and manage records using natural language via MCP.
README
<p align="center"> <a href="https://www.odoo.com"><img src="assets/odoo-logo.svg" alt="Odoo" height="60"/></a> <a href="https://modelcontextprotocol.io"><img src="assets/mcp-logo.svg" alt="Model Context Protocol" height="60"/></a> </p>
<h1 align="center">odoo-mcp-pro</h1>
<p align="center"> AI connector for Odoo ERP -- talk to your business data using natural language.<br/> Search, create, update, and manage records -- just ask. </p>
<p align="center"> <a href="https://github.com/pantalytics/odoo-mcp-pro/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-Elastic%202.0-blue.svg" alt="License: Elastic 2.0"/></a> <a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.10+-blue.svg" alt="Python 3.10+"/></a> <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-green.svg" alt="MCP Compatible"/></a> <a href="https://www.odoo.com/documentation/19.0/developer/reference/external_api.html"><img src="https://img.shields.io/badge/Odoo-14--19+-714b67.svg" alt="Odoo 14-19+"/></a> <a href="https://oauth.net/2.1/"><img src="https://img.shields.io/badge/OAuth-2.1-orange.svg" alt="OAuth 2.1"/></a> </p>
Skip the setup. The hosted version is up and running in 5 minutes -- with automatic updates, managed OAuth, and encrypted API keys. Start at pantalytics.com →
<p align="center"> <img src="docs/ai-grid@2x.png" alt="Odoo connected to Claude, OpenAI, Gemini, Copilot, Mistral via MCP" width="500"/> </p>
The idea
Odoo is powerful. AI is powerful. Together they're better.
odoo-mcp-pro is an AI connector for Odoo that uses MCP (Model Context Protocol) -- an open standard that lets AI assistants talk to external systems. It connects your AI assistant to your Odoo ERP, so you can use natural language as an interface to your business data. Not to replace Odoo's UI -- but to give you a second interface that's faster for many tasks. Works with Claude, ChatGPT, Cursor, Windsurf, and any other MCP-compatible AI tool.
"Show me all unpaid invoices over 5,000 EUR from Q4" -- your AI queries your Odoo instance directly and returns the results.
<p align="center"> <img src="docs/demo.gif" alt="Demo of odoo-mcp-pro" width="800"/> </p>
Use the interface that fits the task. Complex configuration? Use the Odoo UI. Quick data lookup, bulk questions, or creating records on the fly? Just ask your AI.
What you can do
- "Find all contacts in Amsterdam with open quotations"
- "Create a lead for Acme Corp, expected revenue 50k EUR"
- "Which sales orders from last month don't have a delivery yet?"
- "What fields does the sale.order model have?"
- "Update the expected closing date on opportunity #42 to next Friday"
Works with any Odoo model -- sales, invoices, contacts, inventory, CRM, HR, you name it.
Want to try it now? Skip the setup -- the hosted version is connected to your Odoo in under 5 minutes. Start at pantalytics.com →
Get started
Hosted (recommended)
The fastest and safest way to get started. We run the server for you -- sign up, paste your Odoo URL + API key, done.
- Up and running in 5 minutes. No install, no Docker, no infrastructure. Works with Claude, ChatGPT, Cursor, Windsurf, and any MCP-compatible AI tool.
- Always up to date. Security patches, Odoo-version compatibility, and new MCP features ship automatically -- no upgrade work on your side.
- Safer by default. Encrypted API keys (AES-128), managed OAuth 2.1, continuous monitoring, European infrastructure. We handle the boring-but-critical stuff so you don't have to.
- Sign up at pantalytics.com
- Log in and enter your Odoo URL + API key (how to generate one)
- Add the MCP server to your AI tool (Claude, ChatGPT, Cursor, etc.)
- Start asking questions
Your data stays in Odoo -- the server is a stateless proxy. API keys are encrypted at rest.
Self-hosted
Run on your own machine. Single-tenant only: one Odoo instance, configured via env vars. Authentication is your Odoo API key -- no OAuth, no user management, no admin UI.
# Install
pip install "mcp-server-odoo @ git+https://github.com/pantalytics/odoo-mcp-pro.git"
# Run (stdio mode, for Claude Desktop / Claude Code)
ODOO_URL=https://mycompany.odoo.com ODOO_API_KEY=your_key python -m mcp_server_odoo
# Run (HTTP mode, for remote access from one trusted network)
ODOO_URL=https://mycompany.odoo.com ODOO_API_KEY=your_key \
python -m mcp_server_odoo --transport streamable-http --host 0.0.0.0 --port 8000
HTTP mode has no built-in authentication -- expose it behind a reverse proxy or restrict at the network level.
Or add to your Claude Desktop claude_desktop_config.json:
{
"mcpServers": {
"odoo": {
"command": "python",
"args": ["-m", "mcp_server_odoo"],
"env": {
"ODOO_URL": "https://mycompany.odoo.com",
"ODOO_API_KEY": "your_api_key_here"
}
}
}
}
Need multi-tenant, per-user connections, OAuth, or an admin UI? That's SaaS territory. The hosted version is faster to set up, auto-updates, and handles security patches for you -- and costs less than the time you'd spend self-hosting. These features live in a separate commercial package that builds on top of this open-core server.
How it works
odoo-mcp-pro is an Odoo connector that implements MCP (Model Context Protocol) -- an open standard that lets AI assistants call external tools. It exposes the following tools that your AI can call based on your questions:
| Tool | What it does |
|---|---|
search_records |
Search any model with domain filters, sorting, pagination |
get_record |
Fetch a specific record by ID with smart field selection |
list_models |
Discover available Odoo models |
list_resource_templates |
Discover available resource URI templates |
create_record / create_records |
Create one or multiple records |
update_record / update_records |
Update one or multiple records |
delete_record / delete_records |
Delete one or multiple records |
import_records |
Idempotent upsert via external IDs (same as Odoo CSV import) |
server_info |
Server version, connection status |
Supports Odoo 14-19+ -- uses the JSON/2 API for Odoo 19+ and XML-RPC for older versions. The right protocol is selected automatically.
Security
- Odoo is the boss. All data, permissions, and business logic live in Odoo. Each user's API key determines what they can see and do -- ACLs and record rules apply as normal.
- Stateless proxy. The MCP server doesn't store or cache your business data.
- API keys encrypted at rest using AES-128 (Fernet). Never exposed to the AI, the browser, or logs.
- You stay in control. Revoke your API key in Odoo at any time to instantly cut off access.
Prefer managed security? The hosted version handles patches, OAuth token rotation, and incident monitoring -- your data still stays in Odoo, we just run the proxy for you.
Development
uv venv --python 3.10
source .venv/bin/activate
uv pip install -e ".[dev]"
pytest tests/ -q
ruff check . && ruff format .
See architecture.md for technical details and CLAUDE.md for coding conventions.
Contributing
Contributions are welcome. Fork the repo, create a feature branch, run pytest tests/ and ruff check ., then open a PR.
FAQ
Which Odoo versions are supported? Odoo 14-19+. The server auto-detects whether to use JSON/2 (Odoo 19+) or XML-RPC (14-18). No configuration needed.
Does it work on my phone? Yes -- the hosted version works on Claude mobile (iOS/Android), Claude.ai in any browser, Claude Desktop, Claude Code, and ChatGPT. Local installs (STDIO) only work on the machine where they're installed.
Is my data safe? Your data stays in Odoo. The MCP server is a stateless proxy -- it doesn't store or cache business data. API keys are encrypted at rest with AES-128 (Fernet). Each user's Odoo permissions apply: you can only see and do what your Odoo role allows.
I get "Access denied" on all models This usually means your Odoo API key doesn't have the right permissions. Try:
- Regenerate your API key in Odoo (Settings > Users > API Keys) and update it wherever you configured it (hosted:
/admin/setup; self-hosted: yourODOO_API_KEYenv var) - Make sure your Odoo user has at least read access to the models you want to query
- If you're on Odoo.sh, verify your subscription plan supports the JSON/2 API
I get "Authentication required" or "invalid_token" (hosted version) This means the OAuth connection between your AI tool and the MCP server failed. Try disconnecting and reconnecting the MCP server in your AI tool's settings. Self-hosted installs don't use OAuth -- they authenticate with your Odoo API key directly.
Do I need to set ODOO_DB? Only if you self-host Odoo with multiple databases. Odoo.sh and Odoo Online don't need it -- the hostname determines the database.
Should I use hosted or self-hosted? Hosted, unless you have a strong reason not to. Hosted is running in 5 minutes, auto-updates with every Odoo release, and has managed OAuth + encrypted API keys. Self-hosting is single-tenant only (one Odoo instance, API key auth, no admin UI), and you're on the hook for patches and security. Start with hosted at pantalytics.com →
License
This project is dual-licensed:
- Files derived from the original mcp-server-odoo by Andrey Ivanov stay under the Mozilla Public License 2.0 (LICENSE.MPL-2.0). These files carry an
SPDX-License-Identifier: MPL-2.0header, and NOTICE lists them. - Everything else -- the code Pantalytics added on top -- is under the Elastic License 2.0.
For the Elastic-licensed parts, in plain terms:
- You may use, copy, modify, and distribute this software -- including for your own commercial purposes (running it inside your own company, your own Odoo instance, your own projects).
- You may not offer it to third parties as a hosted or managed service that provides them with access to a substantial set of its features -- that's what Pantalytics does, and what the license protects.
- You may not remove license notices or circumvent license key functionality.
The Elastic-licensed parts are source-available, not OSI-open-source. See LICENSE, LICENSE.MPL-2.0, and NOTICE for the full picture.
For Odoo Implementation Partners
Want to offer AI-powered Odoo to your clients? Running your own hosted version of odoo-mcp-pro for clients is not permitted under the Elastic License 2.0. Instead, we run a Partner Program with a referral commission: you recommend odoo-mcp-pro to your end users, they sign up through your referral link, and you earn a recurring fee. No hosting or maintenance on your side.
Interested? Contact rutger@pantalytics.com for details.
Built by Pantalytics
odoo-mcp-pro is built and maintained by Pantalytics, an Odoo implementation partner based in Utrecht, Netherlands.
Originally forked from mcp-server-odoo by Andrey Ivanov. The files that came from that project remain under the Mozilla Public License 2.0; see NOTICE.
<sub>Odoo is a registered trademark of <a href="https://www.odoo.com">Odoo S.A.</a> The MCP logo is used under the <a href="https://github.com/modelcontextprotocol/modelcontextprotocol">MIT License</a>. This project is not affiliated with or endorsed by Odoo S.A. or Anthropic.</sub> #� �o�d�o�o�-�m�c�p� � �
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。