mcpbeat Sign in

MCP Odoo MCP Server

local only

MCP Odoo runs on your own machine — the client starts it, so there is no endpoint to ping. 2 262 installs a week from pypi. Last commit 25 Aug 2026.

Odoo MCP: gated writes, multi-instance. Free hosted: ERPipe (mcp.erpipe.com)

Installs per day peak 537 · avg 243 · +19% w/w
a month agotoday
2 262
Installs / week
pypi · odoo-mcp
426
Stars
4 open issues
25 Aug 2026
Last commit
from GitHub
MIT
License
Python

What changed 1

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 9 August 2026. No other catalogue keeps this.

9 Aug the owner changed

What the code does

We read the source, 5 d ago · rules 995398eba69f

Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

Builds a file path from a variable run_server.py:23
    log_file = os.path.join(log_dir, f"mcp_server_{timestamp}.log")
Page executes code built at runtime site/index.html:739
  function decode(html) { const t = document.createElement("textarea"); t.innerHTML = html; return t.value; }

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

This code can reach further than it looks

We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.

Three servers free · no card

Connect this server

This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.

run in your terminal
claude mcp add mcp-odoo -e 'ODOO_URL=<ODOO_URL>' -e 'ODOO_DB=<ODOO_DB>' -e 'ODOO_USERNAME=<ODOO_USERNAME>' -e 'ODOO_PASSWORD=<ODOO_PASSWORD>' -- uvx odoo-mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp-odoo": {
      "command": "uvx",
      "args": [
        "odoo-mcp"
      ],
      "env": {
        "ODOO_DB": "<ODOO_DB>",
        "ODOO_PASSWORD": "<ODOO_PASSWORD>",
        "ODOO_URL": "<ODOO_URL>",
        "ODOO_USERNAME": "<ODOO_USERNAME>"
      }
    }
  }
}
~/.codex/config.toml
[mcp_servers.mcp-odoo]
command = "uvx"
args = ["odoo-mcp"]
env = { ODOO_URL = "<ODOO_URL>", ODOO_DB = "<ODOO_DB>", ODOO_USERNAME = "<ODOO_USERNAME>", ODOO_PASSWORD = "<ODOO_PASSWORD>" }
.cursor/mcp.json
{
  "mcpServers": {
    "mcp-odoo": {
      "command": "uvx",
      "args": [
        "odoo-mcp"
      ],
      "env": {
        "ODOO_DB": "<ODOO_DB>",
        "ODOO_PASSWORD": "<ODOO_PASSWORD>",
        "ODOO_URL": "<ODOO_URL>",
        "ODOO_USERNAME": "<ODOO_USERNAME>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "mcp-odoo": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "odoo-mcp"
      ],
      "env": {
        "ODOO_DB": "<ODOO_DB>",
        "ODOO_PASSWORD": "<ODOO_PASSWORD>",
        "ODOO_URL": "<ODOO_URL>",
        "ODOO_USERNAME": "<ODOO_USERNAME>"
      }
    }
  }
}

Put your own values in place of <ODOO_URL> (Odoo server URL, e.g. https://mycompany.odoo.com), <ODOO_DB> (Odoo database name), <ODOO_USERNAME> (Odoo login (email)), <ODOO_PASSWORD> (Odoo password or API key). The author’s registry entry marks them as required.

Alternatives to MCP Odoo

same job, measured the same way
MCP Odoo
by erpipe-org

Odoo MCP: gated writes, multi-instance. Free hosted: ERPipe (mcp.erpipe.com)

local only
Odoo
by odooconsole

Odoo ERP for AI agents: hosted OAuth endpoint, gated writes, one endpoint for every instance.

answering
Sn MCP Server
by imjaineel

Multi-instance read-only MCP server for ServiceNow

48 installs/wk local only
Airflow
by us-all

Airflow MCP — list DAGs/runs/task instances, tail logs, trigger and clear (write-gated)

112 installs/wk local only
Exchangerate
by pipeworx-io

ExchangeRate MCP — wraps open.er-api.com (free, no auth)

428 installs/wk 46 tools answering
PocketInvoice MCP
by pocketapp-ctrl

Free hosted MCP for invoices, estimates, clients, items and PDFs. OAuth authorization required.

answering
Jellyfin MCP
by mrfentmen

MCP server for Jellyfin: server info, users, libraries. Works with any self-hosted instance.

73 installs/wk local only
MCP Write Gate
by goran-revops

Sits in front of any MCP server. Reads pass, writes are checked against your lists.

96 installs/wk local only

MCP Odoo — questions

Answers built from our own checks of this server.

Why is there no uptime for MCP Odoo?
MCP Odoo runs on your own machine over stdio — there is no network address to reach, so uptime cannot be measured for it by anyone. What can be measured is adoption: the pypi package odoo-mcp was installed 2 262 times last week.
How do I connect MCP Odoo?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It runs locally, so the command pulls odoo-mcp straight from pypi; nothing to host, nothing to sign up for.
How many people use MCP Odoo?
The pypi package odoo-mcp was installed 2 262 times in the last week. Week over week that is +19%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is MCP Odoo open source?
Yes — it is published under the MIT licence, written in Python, 426 stars on GitHub and 4 open issues. The source link is on this page, so you can read exactly what it does with your data before you connect it.