get_inventory_levelsLABSCO SUMMARY
The three ERP screens you actually live in, without the ERP.
Stock, purchasing and production are separate menus in Odoo and one question in practice: can we build this, and what do we need to order. The reads are broad; the create paths are the simplified versions, so read back what they produced before acting on it.
What it is
A Go server against an Odoo ERP instance covering three areas: stock and products, purchase orders and vendors, and manufacturing orders, BOMs and work centres.
What you get
- Current inventory levels and stock availability
- Product detail and specifications by search
- Purchase orders filterable by status, and the vendor and supplier records behind them
- Purchase analytics over a period
- Manufacturing orders and the production schedule
- Bill of Materials for a product, and the work centres with their capacity
- A production planning overview
- Purchase orders, manufacturing orders and inventory adjustments created, in simplified form
Requirements
Go 1.21 or higher and access to an Odoo 17 instance. The URL, database name, username and password go in config.yaml, copied from the shipped example; PostgreSQL access is optional and only for direct DB reads.
Setup effort
Build from source — clone the repository, build it with Go, then put your Odoo URL, database and login in config.yaml
USE CASES
Answering whether you can build an order
Read the BOM against current inventory levels before promising a date.
Finding out where a purchase order stands
Filter by status rather than scrolling the list view.
Seeing what the factory has on
Read the manufacturing orders and the work centre capacity together.
Reviewing the month's buying
Pull the purchase analytics instead of building the pivot by hand.
Raising the order a shortfall implies
Look the product up, then create the purchase order for it.
Scheduling a build
Check the production plan, then create the manufacturing order against it.
12 tools
Listed in project docs. Your client may show a different list.
get_product_infocreate_inventory_adjustmentget_purchase_orderscreate_purchase_orderget_vendor_infoget_purchase_analyticsget_manufacturing_ordersget_bom_infocreate_manufacturing_orderget_work_centersget_production_planningBEFORE YOU INSTALL
What to know first
Tools you get
12 tools named in the project's documentation.
Requires
Go 1.21 or later
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Clone the repository, build it with Go, then put your Odoo URL, database and login in config.yaml. This one is built from source rather than installed with a single command.
Server setup
Prerequisites: Go 1.21 or higher, access to an Odoo 17 instance, PostgreSQL database (optional for direct DB access)
Clone and build:
git clone https://github.com/sarakhanx/odoo-mcp-server
cd odoo-mcp-server
go mod tidy
go build -o odoo-mcp-serverCopy example config and edit with your Odoo connection details:
cp config.yaml.example config.yaml
vim config.yamlThe config should contain:
odoo:
url: "<YOUR_ODOO_URL>"
database: "<YOUR_DATABASE>"
username: "<YOUR_USERNAME>"
password: "<YOUR_PASSWORD>"
discord:
webhook_url: "https://discord.com/api/webhooks/<YOUR_WEBHOOK_ID>/<YOUR_DISCORD_TOKEN>"
webhook:
port: "8080"
enabled: trueBuild Servers:
./build.shTest Connection:
# Test MCP Server
./odoo-mcp-server
# Test Webhook Server (for Discord notifications)
./odoo-webhook-serverAdd the mcpServers block to your Cursor settings or .cursor-mcp.json, pointing command at the built binary
MCP Clients
Any MCP client
{
"mcpServers": {
"odoo": {
"command": "<YOUR_PATH_TO_ODOO_MCP_SERVER>",
"args": [],
"env": {}
}
}
}