Skip to main content
Glama
Odoo MCP Server

Odoo MCP Server

by deeprunnerai

Odoo MCP Server

MCP (Model Context Protocol) server for interacting with Odoo ERP. Enables AI assistants like Claude to read and write data across Odoo apps including Inventory, CRM, Sales, Manufacturing, and Purchases.

Repository: https://github.com/deeprunnerai/odoo-mcp-server

Quick Start

1. Clone and build

git clone https://github.com/deeprunnerai/odoo-mcp-server.git
cd odoo-mcp-server
npm install
npm run build

2. Configure Claude Code

Add to your Claude Code settings (~/.claude.json) under the mcpServers section.

Important: Replace the path with your actual clone location.

macOS/Linux:

{
  "mcpServers": {
    "odoo": {
      "type": "stdio",
      "command": "node",
      "args": ["/Users/YOUR_USERNAME/Projects/odoo-mcp-server/dist/index.js"],
      "env": {
        "ODOO_URL": "https://odoo.deeprunner.ai",
        "ODOO_DB": "deeprunner",
        "ODOO_USERNAME": "your-email@deeprunner.ai",
        "ODOO_PASSWORD": "your-password"
      }
    }
  }
}

Windows:

{
  "mcpServers": {
    "odoo": {
      "type": "stdio",
      "command": "node",
      "args": ["C:\\Users\\YOUR_USERNAME\\Projects\\odoo-mcp-server\\dist\\index.js"],
      "env": {
        "ODOO_URL": "https://odoo.deeprunner.ai",
        "ODOO_DB": "deeprunner",
        "ODOO_USERNAME": "your-email@deeprunner.ai",
        "ODOO_PASSWORD": "your-password"
      }
    }
  }
}

To find your path: After cloning, run pwd (macOS/Linux) or cd (Windows) in the odoo-mcp-server directory.

3. Restart Claude Code

After adding the config, restart Claude Code to load the MCP server.

Related MCP server: odoo-mcp

Available Tools

Generic Tools

  • odoo_search - Search records in any model

  • odoo_read - Read specific records by ID

  • odoo_search_read - Search and read in one call

  • odoo_create - Create new records

  • odoo_update - Update existing records

  • odoo_delete - Delete records

  • odoo_get_fields - Get field definitions for a model

  • odoo_execute - Execute any model method

Inventory Tools

  • inventory_list_products - List products with stock info

  • inventory_get_stock - Get stock levels by product/warehouse

  • inventory_list_warehouses - List all warehouses

  • inventory_list_operations - List receipts/deliveries/transfers

  • inventory_create_transfer - Create internal stock transfer

CRM/Sales Tools

  • crm_list_leads - List CRM leads/opportunities

  • crm_create_lead - Create new lead

  • sales_list_orders - List sales orders

  • sales_create_order - Create sales order

  • sales_confirm_order - Confirm quotation

Contacts Tools

  • contacts_list - List partners/contacts

  • contacts_create - Create new contact

Manufacturing Tools

  • manufacturing_list_orders - List manufacturing orders

  • manufacturing_create_order - Create MO

  • manufacturing_list_boms - List Bills of Materials

Purchase Tools

  • purchase_list_orders - List purchase orders

  • purchase_create_order - Create PO

Example Usage

Once configured, you can ask Claude things like:

  • "List all products in the Air Quality Sensors category"

  • "What's the current stock of AethAir Pro 500 across all warehouses?"

  • "Create a sales order for Tesla with 10 units of the outdoor sensor"

  • "Show me all pending manufacturing orders"

  • "Create a new lead for a potential government contract"

  • "How many users are there in Odoo?"

Common Odoo Models

Model

Description

product.product

Product variants

product.template

Product templates

stock.quant

Stock quantities

stock.picking

Inventory transfers

stock.warehouse

Warehouses

res.partner

Contacts/Partners

res.users

Users

sale.order

Sales orders

purchase.order

Purchase orders

crm.lead

CRM leads/opportunities

mrp.production

Manufacturing orders

mrp.bom

Bills of materials

Development

Run in development mode:

npm run dev

Build for production:

npm run build

License

MIT

Available Tools

25 tools
contacts_createC

Create a new contact/partner

Inputs: name (required), email, phone, street, +5 more.

contacts_listC

List contacts/partners (customers, vendors, etc.)

Inputs: search, is_customer, is_vendor, limit.

crm_create_leadC

Create a new CRM lead/opportunity

Inputs: name (required), partner_id, contact_name, email_from, +3 more.

crm_list_leadsC

List CRM leads/opportunities

Inputs: stage, user_id, limit.

inventory_create_transferC

Create an internal stock transfer between locations

Inputs: from_location_id (required), to_location_id (required), products (required), scheduled_date.

inventory_get_stockB

Get current stock levels for products across warehouses

Inputs: product_ids (required), warehouse_id.

inventory_list_operationsB

List pending inventory operations (receipts, deliveries, transfers)

Inputs: operation_type, state, limit.

inventory_list_productsC

List products in inventory with stock quantities

Inputs: category, search, limit.

inventory_list_warehousesB

List all warehouses and their stock locations

Inputs: no named parameters.

manufacturing_create_orderC

Create a new manufacturing order

Inputs: product_id (required), quantity (required), bom_id, scheduled_date.

manufacturing_list_bomsC

List Bills of Materials

Inputs: product_id, limit.

manufacturing_list_ordersC

List manufacturing orders

Inputs: state, product_id, limit.

odoo_createC

Create a new record in any Odoo model

Inputs: model (required), values (required).

odoo_deleteC

Delete records from any Odoo model

Inputs: model (required), ids (required).

odoo_executeB

Execute any method on an Odoo model. For advanced operations like workflow actions.

Inputs: model (required), method (required), args, kwargs.

odoo_get_fieldsB

Get field definitions for an Odoo model. Useful to understand available fields.

Inputs: model (required).

odoo_readC

Read specific fields from records by their IDs

Inputs: model (required), ids (required), fields.

odoo_search_readB

Search and read records in one call. Most efficient way to get data.

Inputs: model (required), domain (required), fields, limit, +1 more.

odoo_updateC

Update existing records in any Odoo model

Inputs: model (required), ids (required), values (required).

purchase_create_orderC

Create a new purchase order

Inputs: partner_id (required), lines (required).

purchase_list_ordersC

List purchase orders

Inputs: state, partner_id, limit.

sales_confirm_orderC

Confirm a quotation to convert it to a sales order

Inputs: order_id (required).

sales_create_orderC

Create a new sales order (quotation)

Inputs: partner_id (required), lines (required), note.

sales_list_ordersC

List sales orders

Inputs: state, partner_id, limit.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 25 tools

    Disambiguation4/5

    Most tools are clearly distinct by domain and action, but there is some overlap between odoo_search and odoo_search_read, and between inventory_list_products and inventory_get_stock, which could cause minor confusion. However, descriptions help clarify differences.

    Naming Consistency5/5

    All tool names follow a consistent snake_case pattern with a clear domain_action structure (e.g., contacts_create, inventory_list_products). This predictability makes it easy for agents to understand and navigate the toolset.

    Tool Count3/5

    With 25 tools, the count is borderline high for a single server, potentially overwhelming for agents. While it covers multiple Odoo modules, it might benefit from consolidation or modularization to improve usability.

    Completeness5/5

    The toolset provides comprehensive coverage of Odoo's core domains (CRM, sales, inventory, manufacturing, purchase, contacts) with full CRUD operations via both specific and generic tools. No obvious gaps exist for typical agent workflows.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      A
      maintenance
      An MCP server that enables AI assistants like Claude to interact with Odoo ERP systems through natural language, allowing users to search, create, update, and manage business data in their Odoo instance.
      7,404 PyPI
      413
      Mozilla Public 2.0
    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that connects AI assistants to Odoo ERP instances via the built-in XML-RPC API without requiring any additional addons. It enables users to search, create, update, and manage Odoo records and models through natural language.
      34 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that enables AI assistants to interact with Odoo ERP, allowing natural language queries, record creation, updates, and deletions.
      LGPL 3.0
    • A
      license
      Not graded
      quality
      C
      maintenance
      An MCP server that enables AI assistants to interact with Odoo ERP systems, allowing natural language access to business data, CRUD operations, and instance management without requiring Odoo module installation.
      1
      MIT