Perfect Odoo MCP
by Hideki Andrea Yamamoto https://github.com/hidekiyamamoto/odoo-mcp , Davide Bottazzo https://github.com/hidekiyamamoto/odoo-mcp| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 1719 |
| Technical Name |
perfect_odoo_mcp |
| License | LGPL-3 |
| Website | https://github.com/hidekiyamamoto/odoo-mcp |
| Versions | 14.0 15.0 16.0 17.0 18.0 19.0 |
|
|
Perfect Odoo MCPExpose Odoo as a native MCP server with Odoo login, user ACLs, optional direct database access, and a serious workflow for developing custom MCP tools. Odoo OAuth ACL-aware tools Context bootstrap Optional SQL Custom tools |
Local Odoo addon installation required
Perfect Odoo MCP is not compatible with Odoo's Apps > Import Module upload flow. It defines Python controllers, models, OAuth routes, and MCP endpoints, so it must be installed as a normal local addon from an Odoo addons path and loaded by the Odoo server. This follows Odoo's security architecture for server-side Python code.
Usage Debian
curl -fsSL https://raw.githubusercontent.com/hidekiyamamoto/odoo-mcp/main/install-perfect-odoo-mcp.sh | bash
Built Inside Odoo
Perfect Odoo MCP is an Odoo app, not an external adapter. MCP calls enter Odoo, authenticate through Odoo, and execute with the authorized user's environment.
Odoo login and ACLsUsers authorize through Odoo OAuth. Record access follows Odoo security rules instead of a shared integration user. |
Operational discoveryInventory installed modules, inspect Python addon code, and store instance-specific AI context for future sessions. |
Automatic context bootstrapWhen context is empty, the server gives the AI a startup protocol for inspecting the database and saving durable guidance. |
Optional SQLExpose direct PostgreSQL access only when enabled, with readonly mode and statement guards for safer diagnostics. |
Context That Initializes Itself
The first context request is not a blank answer. If no durable context exists yet, Perfect Odoo MCP tells the consuming AI exactly how to bootstrap itself for this database before doing real work.
Read
Call get-ai-context and receive the bootstrap protocol.
|
Inspect
Run install_info and identify custom or unusual modules.
|
Verify
Use odoo_python_lookup to inspect relevant addon code.
|
Persist
Write the final operating context with set-ai-context.
|
Custom Tools That Can Grow With the Database
Draft tools are normal Python files, tested before exposure, reviewed before publishing, and loaded by the MCP server without changing the core module.
| InspectUse install info and Python lookup to understand models, fields, and business logic. | DraftWrite a custom tool file with EXPOSED = False. |
TestCall it through call-custom until behavior is correct. |
PublishSet EXPOSED = True, reload tools, and refresh actions. |
Use With AI Clients
After installation, copy the HTTPS endpoint from Settings and connect it from an MCP-capable client.
ChatGPTCreate a custom MCP connector in Developer Mode, use the Perfect Odoo MCP endpoint, choose OAuth discovery, authorize in Odoo, then refresh actions when tools change. |
Gemini CLIAdd the remote HTTP MCP server with |
First runAsk the client to call |
Tool Surface
|
|
|
Perfect Odoo MCP is designed as a foundation. More Odoo-native MCP capabilities are coming next.
Please log in to comment on this module