Skip to main content
Glama
golfamigo

Odoo MCP Unified Server

by golfamigo

Odoo MCP Unified Server šŸš€

Unified Odoo Model Context Protocol (MCP) Server with dual transport support (stdio + SSE), enhanced business tools, and type-safe configuration management.

✨ Features

šŸ”Œ Dual Transport Support

  • stdio: For Claude Desktop integration

  • SSE: For web deployment (Zeabur, Railway, etc.) - No Supergateway needed!

šŸ› ļø Complete Tool Set (17+ Tools)

Core Tools (3)

  • execute_method - Execute any Odoo method (most powerful)

  • search_employee - Search for employees

  • search_holidays - Search for holidays/time-off

Sales Tools (3)

  • search_sales_orders - Search sales orders

  • create_sales_order - Create new sales order

  • analyze_sales_performance - Analyze sales performance with trends

Purchase Tools (3)

  • search_purchase_orders - Search purchase orders

  • create_purchase_order - Create new purchase order

  • analyze_supplier_performance - Analyze supplier on-time delivery

Inventory Tools (2)

  • get_stock_levels - Get current stock levels

  • predict_stock_needs - Predict future stock needs

Accounting Tools (2)

  • get_financial_summary - Get financial overview

  • analyze_receivables - Analyze accounts receivable

šŸ“¦ Resources (4)

  • odoo://models - List all available models

  • odoo://model/{model_name} - Get model information

  • odoo://record/{model_name}/{record_id} - Get specific record

  • odoo://search/{model_name}/{domain} - Search records

āš™ļø Configuration Management

  • Type-safe configuration with Pydantic

  • Support for environment variables and JSON config

  • Validation on startup

šŸš€ Quick Start

For Claude Desktop (stdio mode)

  1. Install

cd E:\gitHub\odoo-mcp-unified
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
pip install -e .
  1. Configure - Add to Claude Desktop config (%APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "odoo-unified": {
      "command": "E:\\gitHub\\odoo-mcp-unified\\venv\\Scripts\\python.exe",
      "args": ["E:\\gitHub\\odoo-mcp-unified\\run_server.py"],
      "env": {
        "ODOO_URL": "https://alpha-goods-corporation.odoo.com",
        "ODOO_DB": "alpha-goods-corporation",
        "ODOO_USERNAME": "your-username",
        "ODOO_PASSWORD": "your-password",
        "MCP_TRANSPORT": "stdio"
      }
    }
  }
}
  1. Restart Claude Desktop

For Zeabur Deployment (SSE mode)

  1. Connect GitHub repo to Zeabur

  2. Set environment variables:

ODOO_URL=https://your-company.odoo.com
ODOO_DB=your-database
ODOO_USERNAME=your-username
ODOO_PASSWORD=your-password
MCP_TRANSPORT=sse
PORT=8000
  1. Deploy - Zeabur will automatically:

    • Build using Dockerfile

    • Expose SSE endpoint at /sse

    • No Supergateway needed!

šŸ“‹ Environment Variables

Required

  • ODOO_URL - Odoo instance URL

  • ODOO_DB - Database name

  • ODOO_USERNAME - Username

  • ODOO_PASSWORD - Password

Optional

  • MCP_TRANSPORT - Transport mode: stdio or sse (default: stdio)

  • ODOO_TIMEOUT - Request timeout in seconds (default: 60)

  • ODOO_VERIFY_SSL - Verify SSL certificates (default: false)

  • PORT - Server port for SSE mode (default: 8000)

  • HOST - Server host for SSE mode (default: 0.0.0.0)

  • LOG_LEVEL - Logging level (default: INFO)

šŸ“– Usage Examples

Execute Any Odoo Method

# Get product.product records
execute_method(
    model="product.product",
    method="search_read",
    args=[],
    kwargs={"fields": ["name", "list_price"], "limit": 10}
)

Analyze Sales Performance

analyze_sales_performance(
    params={
        "start_date": "2024-01-01",
        "end_date": "2024-12-31",
        "group_by": "month"
    }
)

Check Supplier Performance

analyze_supplier_performance(
    params={
        "supplier_id": 123,
        "start_date": "2024-01-01",
        "end_date": "2024-12-31"
    }
)

šŸ—ļø Project Structure

odoo-mcp-unified/
ā”œā”€ā”€ src/odoo_mcp/
│   ā”œā”€ā”€ __init__.py
│   ā”œā”€ā”€ __main__.py
│   ā”œā”€ā”€ server.py              # Main MCP server
│   ā”œā”€ā”€ config.py              # šŸ†• Configuration management
│   ā”œā”€ā”€ odoo_client.py         # Odoo XML-RPC client
│   ā”œā”€ā”€ extensions.py          # Extension registration
│   ā”œā”€ā”€ models.py              # Pydantic models
│   ā”œā”€ā”€ prompts.py             # MCP prompts
│   ā”œā”€ā”€ resources.py           # MCP resources
│   ā”œā”€ā”€ tools_sales.py         # Sales tools
│   ā”œā”€ā”€ tools_purchase.py      # Purchase tools
│   ā”œā”€ā”€ tools_inventory.py     # Inventory tools
│   └── tools_accounting.py    # Accounting tools
ā”œā”€ā”€ run_server.py              # šŸ†• Unified server runner (stdio + SSE)
ā”œā”€ā”€ requirements.txt           # Fixed FastMCP version
ā”œā”€ā”€ pyproject.toml
ā”œā”€ā”€ Dockerfile                 # šŸ†• Zeabur-ready
└── README.md

šŸ”§ Development

Run Tests

pytest tests/

Run Server Locally (stdio)

export ODOO_URL=https://your-company.odoo.com
export ODOO_DB=your-database
export ODOO_USERNAME=your-username
export ODOO_PASSWORD=your-password
python run_server.py

Run Server Locally (SSE)

export MCP_TRANSPORT=sse
export PORT=8000
python run_server.py
# Access: http://localhost:8000/sse

šŸ› Troubleshooting

āœ… Using Latest Stable Versions

This project uses the latest stable versions of FastMCP (>=0.7.0) and MCP (>=1.0.0):

  • Modern FastMCP API without deprecated parameters

  • Enhanced performance and stability

  • Latest features and improvements

SSL Certificate Error

If you see SSL errors:

export ODOO_VERIFY_SSL=false

Connection Timeout

Increase timeout:

export ODOO_TIMEOUT=120

šŸ“¦ What's New in v2.0

šŸ†• Compared to odoo-mcp-improved

  • āœ… SSE Transport support (Zeabur deployment without Supergateway)

  • āœ… Unified config.py module (type-safe configuration)

  • āœ… Dual transport mode in single codebase

  • āœ… Enhanced documentation

šŸ†• Compared to mcp-odoo

  • āœ… All basic features (execute_method, resources)

  • āœ… 12+ additional business tools

  • āœ… Extension system

  • āœ… SSE support

  • āœ… Better error handling

šŸ“„ License

MIT License

šŸ¤ Contributing

Contributions welcome! Please open an issue or PR.


Made with ā¤ļø for Alpha Goods Corporation

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/golfamigo/odooMcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server