Inventory Analysis MCP Server
An MCP (Model Context Protocol) server that connects to Odoo ERP to provide comprehensive inventory analysis, forecasting, and reporting capabilities.
Features
1. Stock Levels & Reorder Points
- Current stock levels with status classification (out of stock, critical, low, normal, overstock)
- Reorder alerts based on stock levels and reorder rules
- Days of stock calculations
- Stock summary statistics
2. Demand Forecasting
- Multiple forecasting methods:
- Moving Average
- Exponential Smoothing
- Linear Regression
- Holt-Winters (for seasonal data)
- Auto-selection (best method based on data)
- Trend detection (increasing, decreasing, stable)
- Seasonality detection
- Confidence intervals for predictions
- Accuracy metrics (MAE, RMSE, MAPE)
3. ABC/XYZ Analysis
- ABC Classification (by annual consumption value):
- A: High value items (~20% of items, ~80% of value)
- B: Medium value items (~30% of items, ~15% of value)
- C: Low value items (~50% of items, ~5% of value)
- XYZ Classification (by demand variability):
- X: Stable demand (CV < 0.5)
- Y: Variable demand (0.5 <= CV < 1.0)
- Z: Highly unpredictable demand (CV >= 1.0)
- Combined matrix with management recommendations
4. Turnover & Aging Reports
- Turnover Analysis:
- Turnover ratio calculation
- Days of inventory
- Classification: fast-moving, normal, slow-moving, dead stock
- Aging Analysis:
- Inventory age buckets (0-30, 31-60, 61-90, 91-180, 181-365, >365 days)
- Obsolescence risk assessment
- Slow-moving and high-risk item identification
Installation
Prerequisites
- Python 3.10 or higher
- Access to an Odoo instance (v14+)
Setup
-
Clone or download this repository
-
Install dependencies:
cd inventory_mcp_server pip install -e .Or using requirements.txt:
pip install -r requirements.txt -
Configure Odoo connection:
cp .env.example .env # Edit .env with your Odoo credentials
Configuration
Environment Variables
| Variable | Description | Default |
|---|---|---|
ODOO_URL | Odoo server URL | https://duracubeonline.com.au |
ODOO_DB | Database name | live |
ODOO_USERNAME | Username/email | accounting@qagroup.com.au |
ODOO_API_KEY | API key for authentication | (required) |
Claude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"inventory-analysis": {
"command": "python",
"args": ["-m", "src.server"],
"cwd": "C:/Users/jatin/ODOO/Claude/inventory_mcp_server",
"env": {
"ODOO_URL": "https://duracubeonline.com.au",
"ODOO_DB": "live",
"ODOO_USERNAME": "accounting@qagroup.com.au",
"ODOO_API_KEY": "your_api_key_here"
}
}
}
}
Or using uv:
{
"mcpServers": {
"inventory-analysis": {
"command": "uv",
"args": ["run", "--directory", "C:/Users/jatin/ODOO/Claude/inventory_mcp_server", "python", "-m", "src.server"],
"env": {
"ODOO_URL": "https://duracubeonline.com.au",
"ODOO_DB": "live",
"ODOO_USERNAME": "accounting@qagroup.com.au",
"ODOO_API_KEY": "your_api_key_here"
}
}
}
}
Available Tools
Stock Level Tools
| Tool | Description |
|---|---|
get_stock_levels | Get current stock levels with status classification |
get_reorder_alerts | Get products needing reorder |
get_stock_summary | Get summary statistics |
Forecasting Tools
| Tool | Description |
|---|---|
forecast_demand | Generate demand forecasts |
get_forecast_summary | Get forecast summary statistics |
ABC/XYZ Tools
| Tool | Description |
|---|---|
analyze_abc_xyz | Perform ABC/XYZ classification |
get_abc_xyz_summary | Get classification summary |
Turnover & Aging Tools
| Tool | Description |
|---|---|
analyze_turnover | Analyze inventory turnover |
analyze_aging | Analyze inventory aging |
get_turnover_summary | Get turnover summary |
get_aging_summary | Get aging summary |
get_slow_moving_items | Get slow-moving/dead stock |
get_high_risk_aging_items | Get high obsolescence risk items |
Usage Examples
Get Stock Alerts
"Show me products that need reordering"
Forecast Demand
"Forecast demand for the next 30 days for product ID 42"
ABC/XYZ Analysis
"Perform ABC/XYZ analysis on my inventory"
Identify Problem Stock
"Show me slow-moving inventory worth more than $1000"
Odoo Requirements
The server requires the following Odoo modules:
stock(Inventory)product(Products)
Optional for full functionality:
purchase(for reorder rules)sale(for sales history)
Required Odoo User Permissions
- Read access to:
product.productproduct.categorystock.quantstock.movestock.locationstock.warehouse.orderpoint
Development
Running Tests
pytest tests/
Code Formatting
black src/
ruff check src/
Type Checking
mypy src/
License
MIT License