create_sales_order writes into a live ERP, so the Odoo user you connect as is the real boundary — give it the rights you would give a person doing the same job. analyze_sales_performance is the reason to reach for this rather than a generic database server: it answers on Odoo's own terms instead of making you join tables.
A Python server that connects to an Odoo ERP over XML-RPC and exposes its data, with tools, resource URIs and prompts across sales, purchasing, inventory and accounting.
- search_sales_orders to find orders, create_sales_order to raise one
- analyze_sales_performance for the analytical view over sales rather than a raw list
- Data access across Odoo modules through the same XML-RPC connection
- Standardised resource URIs for Odoo data
- Pre-configured prompts for common business scenarios
- Errors returned with a message and validation rather than a bare XML-RPC fault
A Python version the project supports, and an Odoo instance reachable over XML-RPC with credentials for it. Installable from PyPI as odoo-mcp-improved.
One command plus a key — pip install odoo-mcp-improved, then supply credentials
