io.github.management-cmyk/odoo-mcp-connector

Official registry AI and agents

Query, report on, and optionally modify any Odoo ERP from Claude. Read-only by default.

What can you do with io.github.management-cmyk/odoo-mcp-connector?

  • 🔍 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/delete only when you opt in (ODOO_ENABLE_WRITES=true)
  • 🔑 Your data, your machine — configured entirely through environment variables

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package odoo-mcp-connector
Claude Code
claude mcp add odoo-mcp-connector -e 'ODOO_URL=<ODOO_URL>' -e 'ODOO_DB=<ODOO_DB>' -e 'ODOO_USERNAME=<ODOO_USERNAME>' -e 'ODOO_API_KEY=<your odoo_api_key>' -e 'ODOO_ENABLE_WRITES=<ODOO_ENABLE_WRITES>' -e 'ODOO_TIMEOUT_MS=<ODOO_TIMEOUT_MS>' -- npx -y odoo-mcp-connector@0.1.0
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "odoo-mcp-connector": {
            "command": "npx",
            "args": [
                "-y",
                "odoo-mcp-connector@0.1.0"
            ],
            "env": {
                "ODOO_URL": "<ODOO_URL>",
                "ODOO_DB": "<ODOO_DB>",
                "ODOO_USERNAME": "<ODOO_USERNAME>",
                "ODOO_API_KEY": "<your odoo_api_key>",
                "ODOO_ENABLE_WRITES": "<ODOO_ENABLE_WRITES>",
                "ODOO_TIMEOUT_MS": "<ODOO_TIMEOUT_MS>"
            }
        }
    }
}

Environment variables

  • ODOO_URL required Odoo base URL, e.g. https://your-company.odoo.com
  • ODOO_DB required Odoo database name
  • ODOO_USERNAME required Odoo login (email)
  • ODOO_API_KEY required secret Odoo API key (or password)
  • ODOO_ENABLE_WRITES Set to 'true' to allow create/update/delete. Default false (read-only).
  • ODOO_TIMEOUT_MS Per-request timeout in milliseconds (default 30000).

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. Odoo MCP Server
  2. Features
  3. Install
  4. Tools
  5. Configuration reference
  6. Development
  7. License

Odoo MCP Server

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/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": "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)
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_URLyes—Your Odoo base URL
ODOO_DByes—Database name
ODOO_USERNAMEyes—Login (email)
ODOO_API_KEYyes—API 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

Frequently asked questions

What is io.github.management-cmyk/odoo-mcp-connector?

Query, report on, and optionally modify any Odoo ERP from Claude. Read-only by default.

How do I install io.github.management-cmyk/odoo-mcp-connector?

It runs on your machine. In Claude Code: claude mcp add odoo-mcp-connector -e 'ODOO_URL=<ODOO_URL>' -e 'ODOO_DB=<ODOO_DB>' -e 'ODOO_USERNAME=<ODOO_USERNAME>' -e 'ODOO_API_KEY=<your odoo_api_key>' -e 'ODOO_ENABLE_WRITES=<ODOO_ENABLE_WRITES>' -e 'ODOO_TIMEOUT_MS=<ODOO_TIMEOUT_MS>' -- npx -y odoo-mcp-connector@0.1.0. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.github.management-cmyk/odoo-mcp-connector need an API key?

Yes. It expects ODOO_URL, ODOO_DB, ODOO_USERNAME, ODOO_API_KEY, which you set in its configuration.

Is io.github.management-cmyk/odoo-mcp-connector open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains io.github.management-cmyk/odoo-mcp-connector?

It is published by management-cmyk. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.