mcpField
P
Panda Odoo Mcp Server

Panda Odoo Mcp Server

Local
github.com/pandeussilvaeBusiness & Marketing8Updated 2w ago

About Panda Odoo Mcp Server

Panda Odoo Mcp Server connects an Odoo instance to MCP clients for developers and integrators. It supports record operations and custom model methods over stdio or Streamable HTTP.

Key features

  1. 01Search and read Odoo records
  2. 02Create, update, and delete records
  3. 03Call custom model methods
  4. 04stdio and Streamable HTTP transports
  5. 05Session handling and rate limiting

Use cases

  1. 01Inspect Odoo records from an MCP client
  2. 02Create or update ERP data through an LLM client
  3. 03Expose custom Odoo methods without a custom connector

MCP support

It exposes Odoo record operations and model methods as tools to MCP clients. Connections use stdio or Streamable HTTP.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"odoo-panda": {
"command": "npx",
"args": [
"-y",
"mcp-remote"
]
}
}
}
Run commandnpx -y mcp-remote

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmmcp-remote

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

mcp-odoo-panda

License: MIT Python 3.10+ MCP

An MCP server for Odoo — let Claude, Cursor, or any MCP client search, read, create, update, and call methods on your Odoo ERP.

For developers and integrators who want Odoo tools inside an LLM client without writing a custom connector.

Odoo MCP Server

Quickstart

Requirements: Python 3.10+, an Odoo 15+ instance you can reach (local or remote).

  1. Install

    git clone https://github.com/pandeussilvae/mcp-odoo-panda.git
    cd mcp-odoo-panda
    pip install .
    
  2. Configure from the example

    cp odoo_mcp/config/config.example.yaml odoo_mcp/config/config.yaml
    # edit config.yaml — set odoo_url, database, username, api_key
    
  3. Choose how clients connect (MCP protocolVersion 2026-07-28 only)

    ModeWhen to use
    stdio (default)Claude Desktop / Cursor on the same machine (official mcp SDK)
    mcp_2026_07_28Remote Streamable HTTP (POST /mcp via mcp_sdk_server)

    Set connection_type in config.yaml (see stdio vs Streamable HTTP).

  4. Run

    odoo-mcp-server --config odoo_mcp/config/config.yaml
    # or: python -m odoo_mcp.core.mcp_server --config odoo_mcp/config/config.yaml
    
  5. Connect your MCP client (Claude Desktop / Cursor) — see Connect Claude or Cursor.

Docker alternative: docker compose up -d (lab stack; dev-only defaults).

Minimal config

Copy-paste starting point (odoo_mcp/config/config.yaml):

odoo_url: http://localhost:8069
database: your_database
username: your_username
api_key: your_password_or_api_key

protocol: xmlrpc
connection_type: stdio
transport_type: stdio

Environment variables override the file when set: ODOO_URL, ODOO_DB, ODOO_USER, ODOO_PASSWORD.

stdio vs Streamable HTTP

Both transports speak MCP protocolVersion: 2026-07-28 via the official Python mcp SDK (≥2.1.1).

  • stdio — the MCP client starts this process and talks over stdin/stdout (SDK modern-only). Best for desktop apps (Claude, Cursor). No open port.
  • mcp_2026_07_28 (alias http) — Streamable HTTP on POST /mcp (mcp_sdk_server + uvicorn). Use for remote / Docker.
Migration note

SSE / pre-2026-07-28 HTTP were removed. connection_type: sse, streamable_http, and modern_http fail at startup. Upgrade clients to 2026-07-28 envelopes (server/discover, per-request _meta).

HTTP example (dev):

connection_type: mcp_2026_07_28
http:
  host: 127.0.0.1   # prefer loopback; 0.0.0.0 is DEV-ONLY
  port: 8080

Connect Claude or Cursor

Cursor — add an MCP server entry (Settings → MCP), for example:

{
  "mcpServers": {
    "odoo": {
      "command": "odoo-mcp-server",
      "args": ["--config", "/absolute/path/to/mcp-odoo-panda/odoo_mcp/config/config.yaml"]
    }
  }
}

Claude Desktop — same shape in its MCP config file (claude_desktop_config.json): command + args pointing at your install and config.

Use absolute paths. Do not commit client configs that embed real passwords.

What you get

  • Search / read / create / write / unlink Odoo records
  • Call custom model methods
  • Session handling, rate limiting, optional HTTP CORS
  • MCP Streamable HTTP via official SDK (CONNECTION_TYPE=mcp_2026_07_28; protocol 2026-07-28)

Security

  • Never commit real passwords or API keys. Keep config.yaml local (it is gitignored); only config.example.yaml is tracked.
  • Compose / Dockerfile admin password defaults are DEV-ONLY for a local lab.
  • Binding 0.0.0.0 and CORS allowed_origins: ["*"] are DEV-ONLY. In production use loopback or a private interface and explicit origins.
  • Prefer env vars or a secrets manager for credentials.

Standalone

This project is a standalone MIT MCP server for a single Odoo connection. It is not a multi-tenant SaaS gateway. See ODWARD_BOUNDARY.md.

Optional: used by Odward Connect as an upstream engine; that integration lives outside this repo.

Deeper docs

DocTopic
CONFIGURATION.mdFull configuration reference
docs/API_REFERENCE.mdTools / API
docs/DEVELOPER_GUIDE.mdArchitecture for contributors
docs/DOCKER_DEPLOYMENT.mdDocker notes
docs/server_usage.mdServer usage
LEGGIMI.mdItalian quickstart

Historical refactor notes (when present) live under docs/archive/.

License

MIT — see LICENSE.


Developed by Paolo Nugnes and TechLab · [email protected] · [email protected]

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.