Skip to content
appsgit

MCP Odoo

MCP Odoo is an MCP server that adds developer tools to AI assistants such as Claude Desktop, Claude Code and Cursor. Odoo MCP: gated writes, multi-instance. Free hosted: ERPipe (mcp.erpipe.com). It has 419 GitHub stars, is released under the MIT license and runs locally with uvx odoo-mcp.

github.com/erpipe-org/mcp-odoo (opens in a new tab)

Install MCP Odoo

Generated from the server's MCP registry entry. Replace your-value with your own values.

Claude Desktop

claude_desktop_config.json
{
  "mcpServers": {
    "mcp-odoo": {
      "command": "uvx",
      "args": [
        "odoo-mcp"
      ],
      "env": {
        "ODOO_URL": "your-value",
        "ODOO_DB": "your-value",
        "ODOO_USERNAME": "your-value",
        "ODOO_PASSWORD": "your-value"
      }
    }
  }
}

Settings > Developer > Edit Config. macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\. Restart Claude Desktop afterwards.

Claude Code

claude mcp add --env ODOO_URL=your-value --env ODOO_DB=your-value --env ODOO_USERNAME=your-value --env ODOO_PASSWORD=your-value --transport stdio mcp-odoo -- uvx odoo-mcp

Cursor

.cursor/mcp.json
{
  "mcpServers": {
    "mcp-odoo": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "odoo-mcp"
      ],
      "env": {
        "ODOO_URL": "your-value",
        "ODOO_DB": "your-value",
        "ODOO_USERNAME": "your-value",
        "ODOO_PASSWORD": "your-value"
      }
    }
  }
}

Project file; use ~/.cursor/mcp.json to enable it in every project.

VS Code

.vscode/mcp.json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "odoo_password",
      "description": "ODOO_PASSWORD",
      "password": true
    }
  ],
  "servers": {
    "mcp-odoo": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "odoo-mcp"
      ],
      "env": {
        "ODOO_URL": "your-value",
        "ODOO_DB": "your-value",
        "ODOO_USERNAME": "your-value",
        "ODOO_PASSWORD": "${input:odoo_password}"
      }
    }
  }
}

Config formats checked against the official docs on Oct 7, 2026: modelcontextprotocol.io (opens in a new tab), code.claude.com (opens in a new tab), cursor.com (opens in a new tab), code.visualstudio.com (opens in a new tab).

Environment variables

Variables the server reads at startup.

NameRequiredDescription
ODOO_URLYesOdoo server URL, e.g. https://mycompany.odoo.com
ODOO_DBYesOdoo database name
ODOO_USERNAMEYesOdoo login (email)
ODOO_PASSWORDsecretYesOdoo password or API key

Tools (39)

Parsed from the Tools section of the README; check the repository for the current list.

  • list_models

    List Odoo model technical names and labels.

  • get_model_fields

    Read field metadata for one model.

  • search_records

    Run bounded read-only searchread. Smart-field selection when caller omits fields.

  • read_record

    Read one record by model and ID. Smart-field selection when caller omits fields.

  • aggregate_records

    Server-side groupby/aggregation via formattedreadgroup (Odoo 19+) or readgroup (16-18).

  • search_employee

    Search employees by name.

  • search_holidays

    Search leave records by date range.

  • get_odoo_profile

    Read server version, user context, transport, database, and installed module summary.

  • schema_catalog

    Build a bounded model catalog with optional field metadata.

  • build_domain

    Build and validate an Odoo domain from structured conditions.

  • read_attachment

    Read an ir.attachment's metadata and size-capped base64 content (ODOOMCPMAXATTACHMENTBYTES, default 1 MiB).

  • preview_write

    Produce a non-executing approval payload for create, write, or unlink.

  • validate_write

    Validate a write payload against trusted live fieldsget metadata.

  • execute_approved_write

    Execute only a same-session, live-validated, confirmed write when ODOOMCPENABLEWRITES=1.

  • execute_method

    Execute a reviewed model method. Direct create, write, and unlink are blocked.

  • chatter_post

    Post a chatter message on a mail.thread record. Default mode requires the approval-token preview/execute flow.

  • diagnose_odoo_call

    Diagnose a model call without executing it.

  • diagnose_access

    Diagnose ACL and record-rule visibility for the current Odoo credential.

  • inspect_model_relationships

    Group relationship fields, required fields, and create/write hints.

  • generate_json2_payload

    Convert XML-RPC-shaped input into JSON-2 endpoint, headers, and named body.

  • upgrade_risk_report

    Surface transport, method, and migration risks across Odoo versions.

  • lookup_model_history

    Resolve outdated model names (account.invoice → account.move) against a curated per-version rename catalog.

  • scan_addons_source

    Scan local addon source without importing addon code.

  • fit_gap_report

    Classify requirements into standard, configuration, Studio, custom module, avoid, or unknown.

  • business_pack_report

    Report expected modules, models, and discovery calls for sales, CRM, inventory, accounting, or HR.

  • index_knowledge

    Fetch a bounded record slice once and build a local BM25 index (accent-insensitive; data never leaves the machine).

  • search_knowledge

    Relevance-ranked free-text search over indexed records with zero further RPC calls.

  • knowledge_stats

    Report per-model index sizes and the ODOOMCPKNOWLEDGEMAXDOCS budget.

  • receivable_payable_aging

    Aged AR/AP report bucketed by days overdue (not due / 1-30 / 31-60 / 61-90 / 90+), with per-partner totals.

  • accounting_health_summary

    Open receivable/payable item counts plus the draft invoice backlog.

  • submit_async_task

    Run an allowlisted long read operation (scanaddonssource, indexknowledge, receivablepayableaging) on a bounded worker…

  • get_async_task

    Poll a task's status and result.

  • cancel_async_task

    Cancel a pending or running task.

  • list_async_tasks

    List live and recently finished tasks.

  • search_across_instances

    Search every opted-in instance (or a list/tag selection); rows tagged with instance, partial results on per-instance…

  • aggregate_across_instances

    Group/aggregate per instance plus additive grand totals across the fleet.

  • accounting_health_across_instances

    AR/AP aging across every client DB with combined buckets — the partner-network sweep.

  • health_check

    Report non-secret MCP runtime posture, including rate-limit counters and field-ACL status when enabled.

  • list_instances

    List configured Odoo instance names, URLs, databases, transports, and cross-instance tags — never credentials.

About MCP Odoo

ERPipe is the managed Odoo MCP gateway from the maintainer of erpipe-org/mcp-odoo, formerly tuanle96/mcp-odoo; the Python project remains the self-hosted server.

  • mcp
  • mcp-server
  • mcp-servers
  • odoo
  • odoo-mcp
  • agent-skills
  • claude-code
  • chatgpt
  • erpipe

FAQ

MCP Odoo FAQ

Still curious? Email info@appsgit.com.

What is MCP Odoo?

MCP Odoo is an MCP server that adds developer tools to AI assistants such as Claude Desktop, Claude Code and Cursor. Odoo MCP: gated writes, multi-instance. Free hosted: ERPipe (mcp.erpipe.com). It has 419 GitHub stars, is released under the MIT license and runs locally with uvx odoo-mcp. The source code is at github.com/erpipe-org/mcp-odoo.

How do I install the MCP Odoo MCP server?

Add the command uvx odoo-mcp to your MCP client: put it in claude_desktop_config.json for Claude Desktop, run claude mcp add for Claude Code, or add it to .cursor/mcp.json (Cursor) or .vscode/mcp.json (VS Code). The snippets on this page are ready to paste.

Is MCP Odoo free?

The server is open source under the MIT license, so running it is free. It needs credentials (ODOO_PASSWORD) for the service it connects to, which may require a paid account.

Is MCP Odoo actively maintained?

The most recent commit was on Aug 25, 2026. The latest release is v1.3.2, published Aug 19, 2026. appsgit only lists MCP servers with a commit in the last six months and re-checks every server daily.