# Odoo Inventory MCP

> Odoo Inventory MCP Server lets you manage your entire warehouse and product lifecycle using natural conversation with Odoo ERP. Track stock levels across multiple sites, audit complex transfers, search specific lot numbers, or find exact storage locations—all without opening a single tab. It gives you full visibility into where every item is right now.

## Overview
- **Category:** erp-operations
- **Price:** Free
- **Tags:** stock-levels, warehouse-management, lot-tracking, stock-transfers, procurement, logistics

## Description

You gotta stop jumping between tabs just to check stock levels. This **Odoo Inventory MCP Server** lets your agent connect straight into Odoo ERP so you can talk through complex warehouse operations using plain English. You never have to open a single reporting module again; your AI client handles the database calls, giving you real-time visibility into where every item is sitting right now.

You use natural conversation—like asking 'Where's Product XYZ?'—and it runs the necessary queries instantly. The server exposes nine specific tools that cover everything from mapping out your physical bins to tracing a single batch of goods through multiple sites. It gives you full control without needing any clicks or confusing menus.

To figure out exactly how much product is where, you run **`odoo_product_stock`**, which pulls up a detailed breakdown for one product, showing its precise quantity reserved at every internal location within your system. If you need to know the general availability of products across multiple sites, use **`odoo_search_inventory_products`**; it gives you real-time counts: what's available right now, what’s incoming soon, and what's outgoing.

For full warehouse mapping, two tools do the heavy lifting. You get a master list of all top-level warehouses—including their names, short codes, and addresses—by calling **`odoo_list_warehouses`**. To drill down into where goods actually sit, use **`odoo_list_locations`**; this retrieves every single internal storage location (your bins or zones) and its full path in the network. You can combine these to plan exactly where you need to place something.

When you need to track what moved through your system, you have several options. To pull up a list of all major stock transfers—the receipts or deliveries that move large quantities—you use **`odoo_list_transfers`**. For the actual movement history, **`odoo_list_stock_moves`** lists every individual product movement in chronological order; you see what moved, how much, and where it went. If you need the deep dive on one specific transfer, run **`odoo_get_transfer`**, which pulls up all the full details for that stock transfer, including every single product move line attached to it.

For strict traceability, especially with specialized goods, use **`odoo_search_lots`**. This tool lets you search by lot numbers or serial identifiers, tracing a specific batch's whole origin and its total quantity. If you need to check pending paperwork, running **`odoo_list_adjustments`** lists all proposed inventory corrections—things like cycle count discrepancies or missing items—that are sitting there waiting for a manager to sign off on them.

In short, the server handles these nine specific functions: **`odoo_get_transfer`**, **`odoo_list_adjustments`**, **`odoo_list_locations`**, **`odoo_list_stock_moves`**, **`odoo_list_transfers`**, **`odoo_list_warehouses`**, **`odoo_product_stock`**, **`odoo_search_inventory_products`**, and **`odoo_search_lots`**. It gives you the complete picture of your product lifecycle, from warehouse planning to final count verification.

## Tools

### odoo_get_transfer
Retrieves full details for a specific stock transfer, including every individual product move line within that transfer.

### odoo_list_adjustments
Lists proposed inventory adjustments—like discrepancies or cycle count differences—that are awaiting review and approval.

### odoo_list_locations
Retrieves a list of all internal storage locations (bins, zones) within your Odoo warehouses, including their full path.

### odoo_list_stock_moves
Lists recent individual product movements in chronological order, showing what moved, the quantity, and where it went.

### odoo_list_transfers
Pulls a list of all major stock transfers (receipts, deliveries) showing their current status, source/destination, and reference number.

### odoo_list_warehouses
Lists the names, short codes, and addresses for every top-level warehouse configured in your Odoo system.

### odoo_product_stock
Gets a detailed breakdown of stock levels for one product, showing its quantity reserved at each specific internal location.

### odoo_search_inventory_products
Searches for products by name and returns real-time counts: available, incoming, and outgoing quantities.

### odoo_search_lots
Searches for product lots or serial numbers to trace a specific batch's origin and total quantity.

## Prompt Examples

**Prompt:** 
```
Search for leads from the website
```

**Response:** 
```
👥 **CRM Leads — Website**
| Name | Email | Stage | Revenue |
|---|---|---|---|
| Acme Corp | info@acme.com | Qualification | $15,000 |
| Beta Inc | hello@beta.io | Proposition | $8,500 |
```

**Prompt:** 
```
Show recent sales orders
```

**Response:** 
```
📋 **Sales Orders**
| SO# | Customer | Amount | Status |
|---|---|---|---|
| S00042 | Acme Corp | $12,500 | Confirmed |
| S00041 | Beta Inc | $3,200 | Draft |
```

## Capabilities

### Audit Location-Specific Stock
Find out exactly how much of a specific product is stored in each warehouse zone or internal bin.

### Trace Full Shipment History
Pull up a complete audit trail for any batch of goods, showing every source and destination location the stock moved through.

### Identify Pending Adjustments
List all proposed inventory corrections—like cycle count discrepancies or missing items—that are waiting for manager approval.

### Map Warehouse Structure
Get a list of every physical storage area and bin within your Odoo network, helping you plan placement.

### Search Product Batches (Lots)
Use lot numbers or serial identifiers to quickly find all associated products and their quantities for strict traceability.

## Use Cases

### Finding Stock for a Customer Order
The operations team needs to fulfill an urgent order but isn't sure if enough stock exists. They ask the agent: 'Check stock for SKU-456.' The agent runs `odoo_search_inventory_products`, which returns real-time data showing not just the total available count, but also how many units are reserved versus physically ready to ship.

### Investigating a Stock Discrepancy
The warehouse manager notices Product B is short by 10 units. They ask the agent to 'Show pending adjustments for Product B.' The agent runs `odoo_list_adjustments`, immediately presenting all cycle count reports and proposed corrections that need review, stopping the manual investigation process.

### Tracking a Failed Delivery
A delivery was supposed to happen but failed. A user asks: 'What happened with transfer XYZ?' The agent runs `odoo_list_transfers` to find the status, then uses `odoo_get_transfer` to pull the detailed list of items that were involved in that specific move.

### Checking Batch Traceability
A quality control officer needs to confirm all parts used in a recall must come from Lot #ABC. They ask: 'Search for lot ABC.' The agent uses `odoo_search_lots` and gets the product name, associated records, and total quantity linked to that specific batch number.

## Benefits

- See the complete current stock count for any product using `odoo_search_inventory_products`. You get available quantity, incoming projected amounts, and outgoing commitment numbers—all in one view.
- Trace a shipment's full lifecycle by calling `odoo_list_transfers` first. Then, use `odoo_get_transfer` to drill down into the precise product move lines for audit records.
- Map your entire warehouse structure using `odoo_list_locations`. This helps you understand which bins exist before planning any physical inventory placement or count.
- Quickly review discrepancies by running `odoo_list_adjustments`. You instantly see all proposed stock changes that need validation, without manually filtering reports.
- Confirm product availability across multiple sites by using `odoo_product_stock`. This tool shows you the quantity broken down by location, not just a single total number.

## How It Works

The bottom line is: you ask a question about your inventory flow, and the agent runs multiple backend queries to build the answer for you.

1. You tell your AI agent what you need—for example, 'Show me all transfers that happened last week.'
2. The agent identifies the required tools (like `odoo_list_transfers`) and executes them against Odoo's database.
3. It returns structured data showing transfer references, status, source/destination locations, and related documents.

## Frequently Asked Questions

**How do I check stock by location using odoo_product_stock?**
Run `odoo_product_stock` and specify the product ID. It will return a breakdown showing the quantity for that item at every internal bin or warehouse zone, not just the total count.

**What is the difference between odoo_list_transfers and odoo_list_stock_moves?**
Use `odoo_list_transfers` to see the high-level batch movements (e.g., 'Incoming Shipment ABC'). Use `odoo_list_stock_moves` to get the granular, chronological record of every individual product unit that moved during those transfers.

**Can I find out about pending adjustments using odoo_list_adjustments?**
Yes. Running `odoo_list_adjustments` pulls all quant records where an adjustment has been proposed but hasn't yet been confirmed or applied by a manager.

**Which tool do I use to find out what product lots are available?**
Use `odoo_search_lots`. You provide the lot number, and it returns information on the associated product name and the total quantity remaining for that specific batch.

**When do I use odoo_get_transfer to see granular stock movements?**
It gives you every single associated move line (move IDs) within a specific transfer. You need this when the summary isn't enough; it shows exactly which product moved, how much, and where for that one receipt or delivery.

**How do I use odoo_list_locations to map my warehouse structure?**
This tool lists all internal storage spots—bins, zones, and shelves. It returns the full hierarchical path (e.g., WH/Aisle 1/Bin C), letting you understand where stock is physically stored inside a larger location.

**What does odoo_search_inventory_products tell me about general availability and forecasts?**
It provides real-time quantities, but it also includes forecasted numbers (virtual_available). This lets you check not just what's on hand now, but also the expected incoming or outgoing stock for planning.

**When do I use odoo_list_warehouses to see all operational sites?**
This is your starting point if you need an overview of every top-level warehouse configured in Odoo. It lists the short codes and addresses for all major organizational units before you check specific transfers.

**Which Odoo versions are supported?**
This server uses the JSON-RPC protocol, which is compatible with Odoo 14, 15, 16, 17, and 18. Both Odoo Community and Enterprise editions are supported.

**Does it work with Odoo.com (SaaS)?**
Yes! Works with both Odoo.com hosted instances and self-hosted Odoo servers. Just provide your instance URL and API key.

**How do I generate an API Key?**
Go to Settings → Users → select your user → API Keys tab → New API Key. Give it a descriptive name and copy the generated key.