mcpField
O
odoo-mcp-connector

odoo-mcp-connector

Local
github.com/management-cmykBusiness & Marketing0Updated 2d ago

About odoo-mcp-connector

odoo-mcp-connector connects Odoo ERP to Claude and other MCP clients for natural-language data queries and reporting. It works with any Odoo model, is read-only by default, and enables writes only when explicitly configured.

Key features

  1. 01Search, read, and count records in any model
  2. 02Inspect model lists and field information
  3. 03Query overdue invoices, sales, and stock
  4. 04Rank customers by invoiced revenue
  5. 05Optionally enable record creation, updates, and deletion

Use cases

  1. 01Query records in a specific Odoo model
  2. 02Create a sales summary for a date range
  3. 03Find overdue invoices or low-stock products
  4. 04Modify ERP records after enabling writes

MCP support

The MCP server exposes Odoo model search, read, count, and business reporting tools to clients; creating, updating, and deleting records are also available when writes are enabled.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"management-cmyk-odoo-mcp-connector": {
"command": "npx",
"args": [
"-y",
"odoo-mcp-connector"
],
"env": {
"ODOO_URL": "<ODOO_URL>",
"ODOO_DB": "<ODOO_DB>",
"ODOO_USERNAME": "<ODOO_USERNAME>",
"ODOO_API_KEY": "<ODOO_API_KEY>",
"ODOO_ENABLE_WRITES": "<ODOO_ENABLE_WRITES>",
"ODOO_TIMEOUT_MS": "<ODOO_TIMEOUT_MS>"
}
}
}
}
Run commandnpx -y odoo-mcp-connector
Environment variables to set
ODOO_URLOdoo base URL, e.g. https://your-company.odoo.com
ODOO_DBOdoo database name
ODOO_USERNAMEOdoo login (email)
ODOO_API_KEYSecretOdoo API key (or password)
ODOO_ENABLE_WRITESSet to 'true' to allow create/update/delete. Default false (read-only).
ODOO_TIMEOUT_MSPer-request timeout in milliseconds (default 30000).

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmodoo-mcp-connector0.1.0

Tools

9

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
limitintegerNoMax records (default 50).
modelstringYesModel technical name, e.g. 'res.partner', 'sale.order', 'account.move'.
orderstringNoSort spec, e.g. 'create_date desc'.
domainarrayNoOdoo search domain, e.g. [["is_company","=",true]]. Omit for all records.
fieldsarrayNoField names to return. Omit for all fields.
offsetintegerNoRecords to skip (default 0).

Details

From the project README

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

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": "[email protected]",
        "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)
ToolPurpose
odoo_search_readSearch + read records from any model
odoo_readRead records by ID
odoo_countCount records matching a domain
odoo_fieldsIntrospect a model's fields (name, type, label)
odoo_list_modelsList available models
odoo_overdue_invoicesUnpaid customer invoices past their due date
odoo_sales_summaryRevenue + order count over a date range
odoo_low_stockProducts at/below a quantity threshold
odoo_top_customersTop customers by invoiced revenue
Only when ODOO_ENABLE_WRITES=true
ToolPurpose
odoo_createCreate a record
odoo_writeUpdate records by ID
odoo_unlinkDelete records by ID (irreversible)
odoo_callCall an arbitrary model method

Configuration reference

VariableRequiredDefaultDescription
ODOO_URLyesYour Odoo base URL
ODOO_DByesDatabase name
ODOO_USERNAMEyesLogin (email)
ODOO_API_KEYyesAPI key (or password)
ODOO_ENABLE_WRITESnofalseSet "true" to allow writes
ODOO_TIMEOUT_MSno30000Per-request timeout (ms)

Development

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

License

MIT, Falak Sarhan Saade

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.