Skip to main content
Glama
Odoo MCP Server

Odoo MCP Server

by falaksarhan

Odoo MCP Server

tests

A Model Context Protocol server for Odoo. Connect Claude (or any MCP client) to your own Odoo ERP and query, report on, and optionally modify your data in natural language.

Works with any Odoo model. Safe by default: read only unless you explicitly enable writes. Your credentials stay on your machine. Nothing is stored or sent anywhere except your own Odoo instance.

Features

  • Generic access to any model: search, read, count, introspect fields, list models

  • Ready made business tools: overdue invoices, sales summary, low stock products, top customers

  • Read only by default: create, update and delete only when you opt in (ODOO_ENABLE_WRITES=true)

  • Your data, your machine: configured entirely through environment variables

Related MCP server: Odoo MCP Server

Install

Add this to your MCP client config (e.g. Claude Desktop or Claude Code):

{
  "mcpServers": {
    "odoo": {
      "command": "npx",
      "args": ["-y", "odoo-mcp-connector"],
      "env": {
        "ODOO_URL": "https://your-company.odoo.com",
        "ODOO_DB": "your-database",
        "ODOO_USERNAME": "you@example.com",
        "ODOO_API_KEY": "your-odoo-api-key"
      }
    }
  }
}

Getting an Odoo API key

In Odoo: Settings, Users, your user, Account Security, New API Key. Paste the generated key into ODOO_API_KEY. (A password also works, but an API key is safer and revocable.)

Enabling writes

Read only is the default. To let the model create, update, or delete records, add:

"ODOO_ENABLE_WRITES": "true"

Odoo holds real business data. Enable writes only when you accept that the model can create, modify or delete records, always within your Odoo user's own permissions.

Tools

Always available (read only)

Tool

Purpose

odoo_search_read

Search + read records from any model

odoo_read

Read records by ID

odoo_count

Count records matching a domain

odoo_fields

Introspect a model's fields (name, type, label)

odoo_list_models

List available models

odoo_overdue_invoices

Unpaid customer invoices past their due date

odoo_sales_summary

Revenue + order count over a date range

odoo_low_stock

Products at/below a quantity threshold

odoo_top_customers

Top customers by invoiced revenue

Only when ODOO_ENABLE_WRITES=true

Tool

Purpose

odoo_create

Create a record

odoo_write

Update records by ID

odoo_unlink

Delete records by ID (irreversible)

odoo_call

Call an arbitrary model method

Configuration reference

Variable

Required

Default

Description

ODOO_URL

yes

Your Odoo base URL

ODOO_DB

yes

Database name

ODOO_USERNAME

yes

Login (email)

ODOO_API_KEY

yes

API key (or password)

ODOO_ENABLE_WRITES

no

false

Set "true" to allow writes

ODOO_TIMEOUT_MS

no

30000

Per-request timeout (ms)

Development

npm install
npm test       # vitest, fully mocked, no live Odoo needed
npm run build

License

MIT, Falak Sarhan Saade

Available Tools

9 tools
odoo_countC

Count records matching a domain.

Inputs: model (required), domain.

odoo_fieldsA

Introspect a model's fields — names, types, labels, relations. Useful before querying an unfamiliar model.

Inputs: model (required), attributes.

odoo_list_modelsB

List available Odoo models, optionally filtered by a substring of the technical name.

Inputs: filter.

odoo_low_stockB

List storable products at or below a quantity threshold — restock alerts.

Inputs: limit, threshold.

odoo_overdue_invoicesB

List unpaid customer invoices past their due date — an instant accounts-receivable / cash-flow view.

Inputs: as_of, limit, partner_id.

odoo_readC

Read specific records by their IDs.

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

odoo_sales_summaryA

Total revenue and order count over a date range, from sales orders (default) or POS orders.

Inputs: date_to (required), date_from (required), source.

odoo_search_readB

Search and read records from any Odoo model in one call. Returns matching records with the requested fields.

Inputs: model (required), limit, order, domain, +2 more.

odoo_top_customersA

Top customers ranked by invoiced revenue over a date range.

Inputs: date_to (required), date_from (required), limit.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 9 tools

    Disambiguation5/5

    Each tool has a distinct purpose: generic data access (search_read, read, count, fields, list_models) and specific business reports (overdue_invoices, sales_summary, low_stock, top_customers). No overlap between tools.

    Naming Consistency5/5

    All tools follow the 'odoo_<action>' pattern in snake_case. Verbs are clear and consistent (search_read, read, count, list_models) and report names are descriptive nouns. No deviation.

    Tool Count4/5

    With 9 tools, the set covers basic CRUD operations and several key business reports, which is reasonable for an Odoo MCP server. It is slightly on the lower side but not inadequate.

    Completeness2/5

    Significant gaps exist: no create, update, or delete operations for records. The server is largely read-only, which limits agents from performing many real-world tasks like updating invoices or creating sales orders.

    Maintenance

    ActivityMaintained
    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.
      39,303 PyPI
      413
      Mozilla Public 2.0
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables LLMs to interact with Odoo ERP systems through MCP protocol. Supports multi-server architecture with secure authentication, allowing natural language access to Odoo data, resources, and business operations.
      -
    • A
      license
      A
      quality
      D
      maintenance
      Enables AI assistants to interact with Odoo data using natural language to search, read, create, and update records. It acts as a secure bridge between MCP clients and Odoo instances version 17.0 through 19.0.
      11
      Apache 2.0
    • F
      license
      Not graded
      quality
      D
      maintenance
      MCP server to connect Claude with Odoo 18, enabling CRUD operations on Odoo models via natural language.
      2
      -