Odoo MCP Server
An MCP server implementation for Odoo ERP systems, providing a set of tools for managing Odoo records, models, and custom methods. Inspired by tuanle96/mcp-odoo.
Tools
Core CRUD Operations
-
create_record: Create a single new record
- Inputs:
model_name(string),values(object) - Returns: Dictionary with created record ID
- Inputs:
-
create_records: Create multiple records at once
- Inputs:
model_name(string),values_list(array of objects) - Returns: Dictionary with created record IDs
- Inputs:
-
read_records: Read specific records by their IDs
- Inputs:
model_name(string),ids(array),fields(optional array) - Returns: Dictionary with record data
- Inputs:
-
write_record: Update a single record
- Inputs:
model_name(string),record_id(number),values(object) - Returns: Dictionary with operation result
- Inputs:
-
write_records: Update multiple records
- Inputs:
model_name(string),record_ids(array),values(object) - Returns: Dictionary with operation result
- Inputs:
-
unlink_record: Delete a single record
- Inputs:
model_name(string),record_id(number) - Returns: Dictionary with operation result
- Inputs:
-
unlink_records: Delete multiple records
- Inputs:
model_name(string),record_ids(array) - Returns: Dictionary with operation result
- Inputs:
Search and Query Operations
-
search_records: Search for records with advanced filtering
- Inputs:
model_name(string),domain(array),fields(optional array),limit(optional number),offset(optional number),order(optional string) - Returns: Dictionary with matching records
- Inputs:
-
search_ids: Get only IDs of matching records
- Inputs:
model_name(string),domain(array),offset(optional number),limit(optional number),order(optional string) - Returns: Dictionary with list of IDs
- Inputs:
-
search_count: Count records matching a domain
- Inputs:
model_name(string),domain(array) - Returns: Dictionary with count
- Inputs:
Model Operations
-
search_models: Search for available models in the Odoo system
- Inputs:
query(string) - Search term for model names and display names - Returns: Dictionary with matching models
- Inputs:
-
get_model_info: Get information about a specific model
- Inputs:
model_name(string) - Returns: Dictionary with model information
- Inputs:
-
get_model_fields: Get field definitions for a model
- Inputs:
model_name(string),query_field(string) - Returns: Dictionary with field definitions
- Inputs:
Utility Operations
-
search_and_update: Search and update records in one operation
- Inputs:
model_name(string),domain(array),values(object) - Returns: Dictionary with affected record count and IDs
- Inputs:
-
get_current_user: Retrieve information about the currently authenticated Odoo user
- Inputs:
fields(optional array of strings) - Returns: Dictionary with current user data
- Inputs:
-
call_method: Call custom methods on models
- Inputs:
model_name(string),method_name(string),args(optional array),kwargs(optional object) - Returns: Dictionary with method result
- Inputs:
Resources
Model Information
- odoo://models/search/{query}: Search for models by name or description
- odoo://models/{model_name}/info: Information about a specific model
- odoo://models/{model_name}/fields: Field definitions for a specific model
Documentation
- odoo://help/domains: Complete guide to Odoo domain syntax with examples
- odoo://help/operations: Documentation of all available MCP tools and workflows
Configuration
Odoo Connection Setup
To connect to your Odoo instance, set the following 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)LOG_LEVEL: Logging level (default: INFO)
Usage with Claude Desktop
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"odoo": {
"command": "uvx",
"args": ["biszx-odoo-mcp"],
"env": {
"ODOO_URL": "https://your-odoo-instance.com",
"ODOO_DB": "your-database-name",
"ODOO_USERNAME": "your-username",
"ODOO_PASSWORD": "your-password-or-api-key"
}
}
}
}
Installation
Python Package
pip install biszx-odoo-mcp
Running the Server
# Using the installed package
biszx-odoo-mcp
# Using uv for development
uv run biszx-odoo-mcp
# Using the MCP development tools
uv run mcp dev src/biszx_odoo_mcp/main.py
License
This MCP server is licensed under the MIT License.
Metadata
Release files for biszx-odoo-mcp 1.4.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| biszx_odoo_mcp-1.4.3.tar.gz | 30.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| biszx_odoo_mcp-1.4.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 50.8 kB
Release files / biszx_odoo_mcp-1.4.3.tar.gz
| Download URL | biszx_odoo_mcp-1.4.3.tar.gz |
|---|---|
| Size | 30.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6f90bfa4596e34ddc83cc442361039eaa42b828c51b88e317bdad2c36062db55
|
|
BLAKE2b-256 checksum How to use checksums |
89262ce29d9018ec12eaf0350508118daa00547eeb9b133efce97860ebd85776
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.5
|
Release files / biszx_odoo_mcp-1.4.3-py3-none-any.whl
| Download URL | biszx_odoo_mcp-1.4.3-py3-none-any.whl |
|---|---|
| Size | 20.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b4abbfe2b5bb3a320f7935709a8f3ab8d454cc5291b3edc2908c7033ad033179
|
|
BLAKE2b-256 checksum How to use checksums |
4e0a1c3c2538c231fbe794a01c350d8ceeb95ecd2af34bd2419f296c31faf17f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.5
|