biszx-odoo-mcp
by biszx
README.md
# 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](https://github.com/tuanle96/mcp-odoo).
## Tools
All tools support an optional `save_to` parameter to save results to a JSON file.
### Data Retrieval
- **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
- **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
- **search_count**: Count records matching a domain
- Inputs: `model_name` (string), `domain` (array)
- Returns: Dictionary with count
- **read_records**: Read specific records by their IDs
- Inputs: `model_name` (string), `ids` (array of ints), `fields` (optional array)
- Returns: Dictionary with record data
- **read_group**: Group and aggregate records
- Inputs: `model_name` (string), `domain` (array), `fields` (array with optional aggregations), `groupby` (array), `offset` (optional number), `limit` (optional number), `order` (optional string)
- Returns: Dictionary with grouped results
### Data Modification
- **create_records**: Create records
- Inputs: `model_name` (string), `values_list` (array of objects)
- Returns: Dictionary with created record IDs
- **write_records**: Update records by ID
- Inputs: `model_name` (string), `record_ids` (array of ints), `values` (object)
- Returns: Dictionary with operation result
- **search_and_write**: Search for records, then update matched records
- Inputs: `model_name` (string), `domain` (array), `values` (object)
- Returns: Dictionary with affected record count and IDs
- **unlink_records**: Delete records by ID
- Inputs: `model_name` (string), `record_ids` (array of ints)
- Returns: Dictionary with operation result
- **search_and_unlink**: Search for records, then delete matched records
- Inputs: `model_name` (string), `domain` (array)
- Returns: Dictionary with affected record count and IDs
### Model Metadata
- **search_models**: Search for available models
- Inputs: `query` (string) — search term for model names and display names
- Returns: Dictionary with matching models
- **get_model_info**: Get information about a specific model
- Inputs: `model_name` (string)
- Returns: Dictionary with model information
- **get_model_fields**: Get field definitions for a model
- Inputs: `model_name` (string), `query_field` (string) — search term for field names and labels
- Returns: Dictionary with field definitions
### Utility
- **get_current_user**: Retrieve information about the currently authenticated Odoo user
- Inputs: `fields` (optional array of strings)
- Returns: Dictionary with current user data
- **call_method**: Call an arbitrary method on a model
- Inputs: `model_name` (string), `method_name` (string), `args` (optional array), `kwargs` (optional object)
- Returns: Dictionary with method result
## 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 URL
- `ODOO_DB`: Database name
- `ODOO_USERNAME`: Login username
- `ODOO_PASSWORD`: Password or API key
- `ODOO_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`:
```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
```bash
pip install biszx-odoo-mcp
```
### Running the Server
```bash
# 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.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues