Optional dependency that can be included when running the server to support numerical computing operations when processing Odoo data.
Provides comprehensive access to Odoo ERP systems, enabling interaction with models, records, and methods. Includes tools for searching, reading, creating, updating, and deleting records, executing custom methods, and retrieving model metadata through an XML-RPC connection to Odoo instances.
Optional dependency that can be included when running the server to support data manipulation and analysis of Odoo records and datasets.
Enables secure connection to Odoo instances via XML-RPC communication protocol for data exchange between the MCP server and Odoo systems.
Odoo MCP Server
An MCP server implementation that integrates with Odoo ERP systems, enabling AI assistants to interact with Odoo data and functionality through the Model Context Protocol.
Features
Comprehensive Odoo Integration: Full access to Odoo models, records, and methods
XML-RPC Communication: Secure connection to Odoo instances via XML-RPC
Flexible Configuration: Support for config files and environment variables
Resource Pattern System: URI-based access to Odoo data structures
Error Handling: Clear error messages for common Odoo API issues
Stateless Operations: Clean request/response cycle for reliable integration
Tools
search_records
Search for records in any Odoo model
Inputs:
model
(string): The model name (e.g., 'res.partner')domain
(array): Search domain (e.g., [['is_company', '=', true]])fields
(optional array): Optional fields to fetchlimit
(optional number): Maximum number of records to return
Returns: Matching records with requested fields
read_record
Read details of a specific record
Inputs:
model
(string): The model name (e.g., 'res.partner')id
(number): The record IDfields
(optional array): Optional fields to fetch
Returns: Record data with requested fields
create_record
Create a new record in Odoo
Inputs:
model
(string): The model name (e.g., 'res.partner')values
(object): Dictionary of field values
Returns: Dictionary with the new record ID
update_record
Update an existing record
Inputs:
model
(string): The model name (e.g., 'res.partner')id
(number): The record IDvalues
(object): Dictionary of field values to update
Returns: Dictionary indicating success
delete_record
Delete a record from Odoo
Inputs:
model
(string): The model name (e.g., 'res.partner')id
(number): The record ID
Returns: Dictionary indicating success
execute_method
Execute a custom method on an Odoo model
Inputs:
model
(string): The model name (e.g., 'res.partner')method
(string): Method name to executeargs
(optional array): Positional argumentskwargs
(optional object): Keyword arguments
Returns: Dictionary with the method result
get_model_fields
Get field definitions for a model
Inputs:
model
(string): The model name (e.g., 'res.partner')
Returns: Dictionary with field definitions
search_employee
Search for employees by name.
Inputs:
name
(string): The name (or part of the name) to search for.limit
(optional number): The maximum number of results to return (default 20).
Returns: List of matching employee names and IDs.
search_holidays
Searches for holidays within a specified date range.
Inputs:
start_date
(string): Start date in YYYY-MM-DD format.end_date
(string): End date in YYYY-MM-DD format.employee_id
(optional number): Optional employee ID to filter holidays.
Returns: List of holidays found.
Resources
odoo://models
Lists all available models in the Odoo system
Returns: JSON array of model information
odoo://model/{model_name}
Get information about a specific model including fields
Example:
odoo://model/res.partner
Returns: JSON object with model metadata and field definitions
odoo://record/{model_name}/{record_id}
Get a specific record by ID
Example:
odoo://record/res.partner/1
Returns: JSON object with record data
odoo://search/{model_name}/{domain}
Search for records that match a domain
Example:
odoo://search/res.partner/[["is_company","=",true]]
Returns: JSON array of matching records (limited to 10 by default)
Configuration
Odoo Connection Setup
Create a configuration file named
odoo_config.json
:
Alternatively, use environment variables:
ODOO_URL
: Your Odoo server URLODOO_DB
: Database nameODOO_USERNAME
: Login usernameODOO_PASSWORD
: Password or API keyODOO_TIMEOUT
: Connection timeout in seconds (default: 30)ODOO_VERIFY_SSL
: Whether to verify SSL certificates (default: true)HTTP_PROXY
: Force the ODOO connection to use an HTTP proxy
Usage with Claude Desktop
Add this to your claude_desktop_config.json
:
Docker
Installation
Python Package
Running the Server
Build
Docker build:
Parameter Formatting Guidelines
When using the MCP tools for Odoo, pay attention to these parameter formatting guidelines:
Domain Parameter:
The following domain formats are supported:
List format:
[["field", "operator", value], ...]
Object format:
{"conditions": [{"field": "...", "operator": "...", "value": "..."}]}
JSON string of either format
Examples:
List format:
[["is_company", "=", true]]
Object format:
{"conditions": [{"field": "date_order", "operator": ">=", "value": "2025-03-01"}]}
Multiple conditions:
[["date_order", ">=", "2025-03-01"], ["date_order", "<=", "2025-03-31"]]
Fields Parameter:
Should be an array of field names:
["name", "email", "phone"]
The server will try to parse string inputs as JSON
License
This MCP server is licensed under the MIT License.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
An implementation that integrates with Odoo ERP systems, enabling AI assistants to interact with Odoo data and functionality through the Model Context Protocol.
Related MCP Servers
- -securityAlicense-qualityAn MCP server implementation that integrates with Odoo ERP systems, enabling AI assistants to interact with Odoo data and functionality through the Model Context Protocol.Last updated -214MIT License
- -securityAlicense-qualityA bridge that allows AI agents to access and manipulate Odoo ERP data through a standardized Model Context Protocol interface, supporting partner information, accounting data, financial records reconciliation, and invoice queries.Last updated -10MIT License
- -securityAlicense-qualityA comprehensive implementation of the Model Context Protocol for Odoo ERP systems that enables AI assistants to interact directly with business data across sales, purchases, inventory, and accounting modules.Last updated -19MIT License
- -securityAlicense-qualityA Model Context Protocol server that enables AI assistants to interact with Odoo ERP systems, providing comprehensive tools for searching, creating, updating, and managing Odoo records through a standardized interface.Last updated -4GPL 3.0