Skip to main content
Glama
Raiybo

Odoo App

by Raiybo

Odoo App - connect Claude to Odoo

Share this link with your team: https://raiybo.github.io/Odoo-App/

It is a complete guide from zero: sign in to Claude (or create an account), install the Claude Desktop app with direct download buttons for Mac or Windows, add the Odoo extension, enter the Odoo login, verify. Ten minutes, no technical knowledge needed. The only things a person types are their Odoo email and Odoo password (or an API key); with a team link even the Odoo address is pre-filled.

Team link: open the page, scroll to For team admins, enter your company's Odoo address and click Create team link. Teammates who open that link see the address pre-filled everywhere, including inside the extension they download (the page builds a personalised odoo.mcpb in the browser). Example: https://raiybo.github.io/Odoo-App/?odoo=https%3A%2F%2Fmycompany.odoo.com&company=My%20Company

Two ways to install the connector

Who it is for

What happens

One-click extension (odoo.mcpb)

Everyone using Claude Desktop

Download, double-click, enter the Odoo login in a form, done. Claude Desktop runs the connector with its built-in Node.js and stores the password in the OS keychain.

Automatic installer (install.sh / install.ps1)

Claude Code users, people who prefer the terminal, IT roll-outs

One pasted command. Gets a private Node.js if needed, downloads the connector, asks for the Odoo login, verifies it against Odoo, registers the connector in Claude Desktop and Claude Code, restarts Claude Desktop.

Mac:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Raiybo/Odoo-App/main/install.sh)"

Windows (PowerShell, no admin rights needed):

irm https://raw.githubusercontent.com/Raiybo/Odoo-App/main/install.ps1 | iex

After either method, open Claude and ask "Check my Odoo connection".

Related MCP server: Odoo MCP Unified Server

What Claude can do once connected

The connector exposes these tools to Claude (it picks them itself):

Tool

Purpose

odoo_check_connection

Verifies the connection, reports Odoo version, database, user, company, access mode

odoo_search_models

Finds technical model names (customer -> res.partner, invoice -> account.move, ...)

odoo_fields

Lists a model's fields with labels, types, relations and selection values

odoo_search_read

Searches records with an Odoo domain and returns field values (the workhorse)

odoo_count

Counts matching records

odoo_read

Reads specific records by id

odoo_name_search

Finds a record id from a (partial) name

odoo_group_by

Counts and sums grouped by fields (pivot-style), version-aware

odoo_create / odoo_write / odoo_delete

Creates, updates, deletes records (Claude confirms with the user first; delete needs an explicit confirmation flag)

odoo_call

Calls any public model method, for workflow actions such as confirming a quotation or posting an invoice

odoo_record_link

Returns the web link to open a record in Odoo

Claude always acts as the connected user, with that user's Odoo access rights. A Read-only mode switch (extension setting, or ODOO_READ_ONLY=true) blocks every change.

How it connects (and why it works everywhere)

Odoo's API changed over the years, so the connector probes the server and picks the first method that works:

  1. Web session (/web/session/authenticate + /web/dataset/call_kw): what the Odoo web client itself uses. Works on every Odoo version and every Odoo Online plan with a normal password.

  2. JSON-2 API (/json/2/<model>/<method>): Odoo 19 and newer, with an API key.

  3. Classic JSON-RPC (/jsonrpc): Odoo 8 to 21, with a password or an API key.

It also finds the database name by itself (server list, login page, or address), follows redirects (http -> https, old domain -> new domain), renews expired sessions, and turns every failure into a plain-language explanation ("your account uses two-factor authentication, create an API key like this...").

Two-factor-authentication and Google/Microsoft single-sign-on accounts need an Odoo API key instead of the password (Odoo: your name -> Preferences -> Account Security -> New API Key). The page and the connector both explain that.

Repository layout

index.html                 the guide, served at https://raiybo.github.io/Odoo-App/
assets/odoo-app-bundle.js  builds a personalised odoo.mcpb in the browser (team links)
odoo.mcpb                  the one-click Claude Desktop extension (zip of bundle/)
bundle/                    the unzipped extension: manifest.json, server/index.js, icon.png, package.json (built, committed, served)
install.sh / install.ps1   the automatic installers for Mac/Linux and Windows
server/index.js            the MCP server: Odoo client + tools, zero dependencies, Node 18+
server/setup.js            helper for the installers: saves config, edits Claude's config files
extension/manifest.json    the extension manifest template (MCPB 0.3); the build fills in version and tools
scripts/build-mcpb.mjs     builds bundle/, odoo.mcpb and icon.png (no dependencies)
tests/                     offline end-to-end tests (fake Odoo), installer smoke tests, browser tests, live demo test

Development

npm test             # offline end-to-end tests against the built-in fake Odoo + the in-browser bundle builder
npm run test:browser # landing page and bundle builder in a real headless browser (Edge/Chrome); ONLINE=1 also checks Anthropic's download links
npm run test:live    # smoke test against Odoo's public demo server (needs internet)
npm run build        # rebuild bundle/, odoo.mcpb and icon.png
node server/index.js --test   # check a connection using ODOO_URL / ODOO_LOGIN / ODOO_PASSWORD env vars

Installer smoke tests (run the real installer unattended against the fake Odoo in an isolated HOME): bash tests/installer-smoke.sh [--download-node] and powershell -File tests\installer-smoke.ps1 [-DownloadNode]. GitHub Actions runs all of this on Linux, macOS and Windows on every push.

Configuration is read from environment variables, falling back to a JSON file (~/.odoo-claude/config.json on Mac/Linux, %LOCALAPPDATA%\OdooClaude\config.json on Windows, or ODOO_CONFIG_FILE): ODOO_URL, ODOO_LOGIN, ODOO_PASSWORD (password or API key), ODOO_DB (optional), ODOO_READ_ONLY, ODOO_INSECURE_SSL (self-signed certificates), ODOO_TIMEOUT_MS, ODOO_DEBUG=1 for verbose logs on stderr.

Installer knobs (environment variables): ODOO_URL, ODOO_LOGIN, ODOO_PASSWORD, ODOO_DB, ODOO_READ_ONLY make the install unattended (ODOO_URL alone pre-fills the question); ODOO_CLAUDE_NO_LAUNCH=1 never opens apps or web pages; ODOO_CLAUDE_HOME changes the install folder; ODOO_CLAUDE_NODE points at an existing Node.js binary; ODOO_CLAUDE_BASE_URL changes where files are downloaded from (for forks and mirrors).

Uninstall: --uninstall (Mac) or $env:ODOO_CLAUDE_UNINSTALL='1' (Windows) before running the install command again; or Settings -> Extensions -> Odoo -> Uninstall for the extension.

Releasing a new version: bump version in package.json, npm run build, commit, push, then gh release create vX.Y.Z odoo.mcpb --notes-file notes.md.

Security notes

  • Credentials never leave the user's computer except to their own Odoo server over HTTPS.

  • The extension keeps the password in the OS keychain (handled by Claude Desktop); the installer keeps it in a file readable only by the user.

  • The connector has no third-party dependencies; server/index.js is the whole program and can be audited in minutes.

  • Prefer API keys over passwords where possible, and enable Read-only mode for people who only need to look things up.

  • The page links to Anthropic's own "latest installer" endpoints for Claude Desktop (https://claude.ai/api/desktop/<platform>/.../latest/redirect), the same ones used by claude.com/download.

License

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI assistants to interact with Odoo ERP systems through natural language to search records, create entries, update data, and manage business operations. Supports secure authentication and configurable access controls for production environments.
    Mozilla Public 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Odoo ERP systems through 17+ business tools covering sales, purchasing, inventory, and accounting operations. Supports both Claude Desktop integration and web deployment with dual transport modes.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Connects Claude Desktop to Odoo ERP via JSON-2 API for searching invoices, creating sales orders, checking customer balances, and managing webhooks.
    1
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables Claude to read and write data in an Odoo instance, including stock, invoices, clients, and reminders, through a secure MCP connector.
    -