# Reported issues for mcp-odoo

Pod holds 20 of 27 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [mcp-odoo](/mcp/mcp-odoo).

## Most discussed

### Glama listing is missing Dockerfile

Your MCP server is currently listed on the [Glama MCP directory](https://glama.ai/mcp/servers/tuanle96/mcp-odoo), but it is not available for others to use because it does not have a Dockerfile.

It takes only a few minutes to fix this:

1. Go to your server's listing: [tuanle96/mcp-odoo](https://glama.ai/mcp/servers/tuanle96/mcp-odoo)
2. Click "Claim" to verify ownership.
3. Once claimed, navigate to the [admin `Dockerfile` page](https://glama.ai/mcp/servers/tuanle96/mcp-odoo/admin/dockerfile) 

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/12) · 2025-04-22 · closed · external user · 4 comments

### Glama listing is missing Dockerfile

Your MCP server is currently listed on the [Glama MCP directory](https://glama.ai/mcp/servers/tuanle96/mcp-odoo), but it is not available for others to use because it does not have a Dockerfile.

It takes only a few minutes to fix this:

1. Go to your server's listing: [tuanle96/mcp-odoo](https://glama.ai/mcp/servers/tuanle96/mcp-odoo)
2. Click "Claim" to verify ownership.
3. Once claimed, navigate to the [admin `Dockerfile` page](https://glama.ai/mcp/servers/tuanle96/mcp-odoo/admin/dockerfile) 

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/12) · 2025-04-22 · closed · external user · 4 comments

### halt on “Making request to 127.0.0.1:8069/xmlrpc/2/common”

odoo16+mcp_odoo
mcp_odoo console：
![Image](https://github.com/user-attachments/assets/5ba53cd7-5bce-4529-b252-51d6f9376a99)

odoo16 server console：
 
![Image](https://github.com/user-attachments/assets/242c7d42-22ae-4451-8438-662eef8a9483)

The last print is “Making request to 127.0.0.1:8069/xmlrpc/2/common”

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/11) · 2025-04-16 · closed · external user · 6 comments

### halt on “Making request to 127.0.0.1:8069/xmlrpc/2/common”

odoo16+mcp_odoo
mcp_odoo console：
![Image](https://github.com/user-attachments/assets/5ba53cd7-5bce-4529-b252-51d6f9376a99)

odoo16 server console：
 
![Image](https://github.com/user-attachments/assets/242c7d42-22ae-4451-8438-662eef8a9483)

The last print is “Making request to 127.0.0.1:8069/xmlrpc/2/common”

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/11) · 2025-04-16 · closed · external user · 6 comments

### Issue with installation - created Documentation: Comprehensive Guide for Integrating Odoo MCP Server with Claude Desktop on macOS

Hello,

I recently integrated the Odoo MCP server with Claude Desktop on macOS and encountered several challenges that weren't covered in the existing documentation. After resolving these issues, I've created a comprehensive guide that might help other users and could be valuable to include in the official documentation.

Issues Encountered
Python Path Resolution: When using pyenv or Homebrew on macOS, Claude Desktop couldn't locate the Python interpreter using just python or python3 in the conf

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/8) · 2025-03-28 · closed · external user · 3 comments

### Tools missing in Claude Desktop

I've just tried in Claude Desktop using the docker image and only three tools are available:
<img width="497" alt="Image" src="https://github.com/user-attachments/assets/98edce2e-b49d-489a-b46c-3b74f2b0a530" />

Using docker image built from latest on develop.

Here is my configuration for claude desktop:
```
{
  "mcpServers": {
    "odoo": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--network",
        "odoo-network",
        "-e",
        

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/7) · 2025-03-27 · closed · external user · 8 comments

### Tools missing in Claude Desktop

I've just tried in Claude Desktop using the docker image and only three tools are available:
<img width="497" alt="Image" src="https://github.com/user-attachments/assets/98edce2e-b49d-489a-b46c-3b74f2b0a530" />

Using docker image built from latest on develop.

Here is my configuration for claude desktop:
```
{
  "mcpServers": {
    "odoo": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--network",
        "odoo-network",
        "-e",
        

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/7) · 2025-03-27 · closed · external user · 8 comments

### Any ideas on mind?

I just woke up today thinking in building a MCP server for [ODOO](https://www.odoo.com/).

Same idea?

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/1) · 2025-03-18 · closed · outside contributor · 18 comments

## Most recent

### [bug] search_records: invalid non-empty domain input becomes an unfiltered search

## Environment

- Odoo version: 18.0
- Odoo transport: XML-RPC
- MCP transport: stdio
- Python version: 3.12.13
- `odoo-mcp` version or commit: `odoo-mcp==1.3.0`, reproduced on current `main` at `e6777dca7993fc2591bd519e0a997282e15c2153`
- Client name and version: custom internal MCP compatibility harness, unreleased

## Command or MCP client configuration

The compatibility run used a local policy-limited relay around the published stdio server. The relay forwarded `search_records` calls unchan

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/65) · 2026-08-13 · closed · external user · 0 comments

### [bug] search_records: invalid non-empty domain input becomes an unfiltered search

## Environment

- Odoo version: 18.0
- Odoo transport: XML-RPC
- MCP transport: stdio
- Python version: 3.12.13
- `odoo-mcp` version or commit: `odoo-mcp==1.3.0`, reproduced on current `main` at `e6777dca7993fc2591bd519e0a997282e15c2153`
- Client name and version: custom internal MCP compatibility harness, unreleased

## Command or MCP client configuration

The compatibility run used a local policy-limited relay around the published stdio server. The relay forwarded `search_records` calls unchan

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/65) · 2026-08-13 · closed · external user · 0 comments

### Write-approval durability across multiple worker processes (gate 2: process-local store)

## Summary

`execute_approved_write` is gated by **two independent checks**. PR #48 fixes the first
(stateless hash — integral floats hashing differently). This issue is about the **second**,
distinct root cause of intermittent approval failures: the **stateful session check** relies
on process-local memory and breaks under multi-worker deployments.

This is a **proposal for discussion, not a PR** — the fix is larger and the trade-offs are
worth agreeing on before implementing.

## Problem

`ser

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/49) · 2026-07-09 · open · outside contributor · 1 comment

### Write-approval durability across multiple worker processes (gate 2: process-local store)

## Summary

`execute_approved_write` is gated by **two independent checks**. PR #48 fixes the first
(stateless hash — integral floats hashing differently). This issue is about the **second**,
distinct root cause of intermittent approval failures: the **stateful session check** relies
on process-local memory and breaks under multi-worker deployments.

This is a **proposal for discussion, not a PR** — the fix is larger and the trade-offs are
worth agreeing on before implementing.

## Problem

`ser

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/49) · 2026-07-09 · open · outside contributor · 1 comment

### [feat] Support local-file attachment uploads via <field>_from_path

## Problem

Uploading a large binary attachment to an Odoo record (e.g. a resume/CV, an invoice PDF, a product image — anywhere from a few hundred KB up) is not practical through the current write tools.

`validate_write` / `execute_approved_write` require the binary content to be passed inline as base64 in the `values` dict of the tool call. For an MCP client whose model has to actually construct that tool call (an LLM agent), this means the full base64 string has to pass through the agent's ow

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/45) · 2026-07-06 · closed · outside contributor · 0 comments

### [feat] Support local-file attachment uploads via <field>_from_path

## Problem

Uploading a large binary attachment to an Odoo record (e.g. a resume/CV, an invoice PDF, a product image — anywhere from a few hundred KB up) is not practical through the current write tools.

`validate_write` / `execute_approved_write` require the binary content to be passed inline as base64 in the `values` dict of the tool call. For an MCP client whose model has to actually construct that tool call (an LLM agent), this means the full base64 string has to pass through the agent's ow

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/45) · 2026-07-06 · closed · outside contributor · 0 comments

### Feature: Provide suggestions when lookup_model_history cannot find a model

## Problem

While contributing to Issue #33, I explored the implementation of `lookup_model_history` and tested its current behavior.

The lookup currently supports exact matching and partial substring matching, but small typos or abbreviated inputs return no helpful suggestions.

Examples:

| Input | Current Result |
|-------|----------------|
| `account.invoice` | exact |
| `account.invoicee` | none |
| `account inv` | none |
| `payment.methd` | none |

In these cases, the intended model is us

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/37) · 2026-07-03 · closed · outside contributor · 0 comments

### Feature: Provide suggestions when lookup_model_history cannot find a model

## Problem

While contributing to Issue #33, I explored the implementation of `lookup_model_history` and tested its current behavior.

The lookup currently supports exact matching and partial substring matching, but small typos or abbreviated inputs return no helpful suggestions.

Examples:

| Input | Current Result |
|-------|----------------|
| `account.invoice` | exact |
| `account.invoicee` | none |
| `account inv` | none |
| `payment.methd` | none |

In these cases, the intended model is us

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/37) · 2026-07-03 · closed · outside contributor · 0 comments

### aggregate_records calls deprecated `read_group` on Odoo 19.1 SaaS (should use `formatted_read_group`)

## Summary

On **Odoo 19.1 SaaS Enterprise** (`saas~19.1+e`), every call to `aggregate_records` fails because the connector invokes `<model>.read_group`, but in Odoo 19+ the public `read_group` method has been removed from the model API in favor of `formatted_read_group`.

The README explicitly states:
> `aggregate_records` pushes groupby/sum/count/avg into Postgres via `formatted_read_group` (Odoo 19+) or `read_group` (16-18).

So the intent was to dispatch to `formatted_read_group` on Odoo 19+

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/22) · 2026-05-21 · closed · external user · 2 comments

### Compatibility with Odoo 19 / JSON-2 API

Hi,

Thanks for your work on this project — it’s been very useful.

I’m currently using the MCP Odoo server module with a custom bridge. Since Odoo 19 has officially deprecated XML-RPC/JSON-RPC in favor of the new JSON-2 API (with full removal planned in Odoo 20), I’d like to ask:

Do you plan to update this module to support JSON-2 instead of XML-RPC?

If yes, do you already have a roadmap or timeline in mind?

If not, would you accept a PR that refactors the codebase to use JSON-2 (with kwargs

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/18) · 2025-09-12 · closed · external user · 2 comments

### Compatibility with Odoo 19 / JSON-2 API

Hi,

Thanks for your work on this project — it’s been very useful.

I’m currently using the MCP Odoo server module with a custom bridge. Since Odoo 19 has officially deprecated XML-RPC/JSON-RPC in favor of the new JSON-2 API (with full removal planned in Odoo 20), I’d like to ask:

Do you plan to update this module to support JSON-2 instead of XML-RPC?

If yes, do you already have a roadmap or timeline in mind?

If not, would you accept a PR that refactors the codebase to use JSON-2 (with kwargs

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/18) · 2025-09-12 · closed · external user · 2 comments

### Python 3.12 Compatibility Issue - SyntaxError with async keyword

## Description
When running odoo-mcp with Python 3.12, the server fails to start due to a SyntaxError related to the `async` keyword. This appears to be a compatibility issue between Python 3.12 and the way asyncio is being used in the dependency chain.

## Environment
- Python version: 3.12.3
- odoo-mcp version: 0.0.1
- Operating System: Linux (Ubuntu)
- Dependencies:
  - mcp==1.6.0
  - uvicorn==0.34.0
  - starlette==0.46.1
  - httpx==0.28.1
  - pydantic==2.11.3
  - anyio==4.9.0
  - httpx-sse==

[Read the thread](https://github.com/erpipe-org/mcp-odoo/issues/10) · 2025-04-11 · closed · external user · 1 comment

The remaining reports are on [the project's issue tracker](https://github.com/tuanle96/mcp-odoo/issues).
