Skip to main content
Glama
Alberto-Cabale

odoo-mcp-bridge

Odoo ↔ Claude MCP Bridge — deployment guide

This small project connects your Odoo instance (via-italia.odoo.com) to Claude, so I can read/write directly in Odoo (inventory, invoices, customers, follow-ups) without you having to click through the interface.

It runs continuously on a cloud host (Render, free to start). Claude connects to it via proper authentication (OAuth): the first time, a login page asks for your secret token; afterwards Claude stays connected automatically, and the secret never appears in a URL.

No Git command line needed: everything happens in the browser.


Step 0 — what you need before starting

  • The Odoo API key generated in via-italia.odoo.com (My Preferences → Account Security → New API Key). Keep it handy; you'll paste it in Step 3.

  • A secret token to protect access. Generate one now (only share it with Render, nowhere else):

    • On Mac: open Terminal and type openssl rand -hex 24, copy the result.

    • Otherwise: any password generator producing ~40 random characters works.

Related MCP server: odoo-mcp-server

Step 1 — put these files on GitHub (without Git)

  1. Go to github.com and create a free account if you don't have one.

  2. Click New repository. Name: odoo-mcp-bridge (or whatever you want). Leave it Public (required for Render deployment without linking an account). Don't check anything else. Create repository.

  3. On the new empty repository page, click uploading an existing file.

  4. Drag and drop the 6 files from this folder (Dockerfile, proxy.py, oauth_provider.py, requirements.txt, start.sh, README.md) into the drop zone.

  5. Commit changes.

Note the repository URL, like https://github.com/VOTRE-COMPTE/odoo-mcp-bridge.

Step 2 — create the service on Render

  1. Go to render.com and create a free account.

  2. New +Web Service.

  3. Choose Public Git Repository and paste the GitHub repository URL from Step 1. Connect.

  4. Service name: via-italia-odoo-mcp (or something else).

  5. Render detects the Dockerfile automatically — leave the Docker mode.

  6. Instance type: Free to start (enough for testing).

Step 3 — environment variables

Still on this creation page, expand AdvancedAdd Environment Variable, and add:

Key

Value

BRIDGE_SECRET

the token generated in Step 0

ODOO_URL

https://via-italia.odoo.com

ODOO_API_KEY

the Odoo API key generated in Step 0

ODOO_YOLO

read to start (read-only, no risk)

(ODOO_DB is not needed; Odoo detects it automatically.)

Click Create Web Service. The first deployment takes 2-3 minutes — you'll see the build logs scroll by.

Step 4 — verify it's running

Once the deployment is marked "Live", your service has an address like https://via-italia-odoo-mcp.onrender.com.

First test https://via-italia-odoo-mcp.onrender.com/healthz in a browser: you should see ok.

Your connector address (the one to give to Claude) is simply:

https://via-italia-odoo-mcp.onrender.com/mcp

No token in that URL — it can be shared safely; the protection happens in the next step.

Step 5 — connect Claude

In Claude: Customize → Connectors → "+" → Add custom connector, paste the URL from Step 4, Add, then click Connect.

A login page opens and asks for your BRIDGE_SECRET (the token generated in Step 0) — enter it and validate. Claude then stays connected; you won't have to do it again unless you redeploy the service (which clears the in-memory session).

Then come back to the conversation with Claude and ask it to verify the connection (for example: "list my latest Odoo quotes").

Step 6 — switch to read/write

Once reading works and you're comfortable, go back to Render → your service → Environment, change ODOO_YOLO from read to true, and redeploy (Render does it automatically after a variable change). Claude will then also be able to create invoices, update inventory, etc. — only enable this when you're ready for it to actually write to Odoo.

Known limitations

  • Render's Free plan puts the service to sleep after 15 minutes without traffic: the first request after a pause takes 30-60 seconds while it wakes up. For smoother daily use, a paid plan (~$7/month) removes this sleep.

  • Sessions (issued OAuth tokens) are kept in memory by the service, not on disk: a redeploy or restart clears them, and you'll need to do "Connect" again on the Claude side (just retype the BRIDGE_SECRET, nothing more).

Related MCP Connectors

Related MCP Servers

  • 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
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to interact with Odoo ERP to perform sales tasks such as searching clients and products, and creating and confirming quotations via the MCP protocol.
    5
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables Claude to interact with Odoo through 12 MCP tools covering discovery, CRUD operations, and bulk import/export via XML-RPC.
    MIT