MCP Directory

MCP Server for Odoo

Search, create, update and aggregate Odoo ERP records from AI assistants via XML-RPC.

Unverified
stdio (local)
API key
Python

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
uvx mcp-server-odoo

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "mcp-server-for-odoo": {
      "command": "uvx",
      "args": [
        "mcp-server-odoo"
      ],
      "env": {
        "ODOO_URL": "https://your-odoo-instance.com",
        "ODOO_API_KEY": "your-api-key-here",
        "ODOO_DB": "your-database-name"
      }
    }
  }
}

Requires `uv` (the Python package runner). Install it from https://docs.astral.sh/uv/ if `uvx` is not found.

Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf

Before you start

  • Python 3.10 or higher
  • UV installed on the local machine (or use the pip/Docker install methods)
  • Access to an Odoo instance — production: Odoo 16.0+ with the mcp_server module installed; YOLO/testing: any Odoo with XML-RPC enabled
  • An Odoo API key (recommended) or username/password credentials
  • ODOO_DB set if the Odoo server restricts database listing

About MCP Server for Odoo

mcp-server-odoo bridges MCP clients (Claude Desktop, Claude Code, Cursor, Windsurf, VS Code Copilot, Zed) to an Odoo ERP instance. It translates MCP tool calls into Odoo XML-RPC requests, handling authentication, access control, field selection, pagination, data formatting and error handling. The server runs locally (via uvx, pip/pipx, or Docker) where the AI client lives, not on the Odoo server. Standard production mode requires the Odoo mcp_server module (Odoo 16.0+) which gates which models are exposed and enforces read/write/create/delete permissions per model; an opt-in YOLO mode lets it talk directly to any XML-RPC-enabled Odoo for development and demos.

Tools & capabilities (10)

search_records

Search for records in any Odoo model using a domain filter, with optional field selection, pagination and a smart-default field set.

get_record

Retrieve a specific record by ID, with smart-default fields and metadata or an explicit field list.

list_models

List all models enabled for MCP access.

list_resource_templates

List the available resource URI templates and their patterns.

create_record

Create a new record in a given model from a values dict, with field validation and permission checks.

update_record

Update an existing record by ID with new field values.

delete_record

Delete a record by ID, respecting model-level permissions.

post_message

Post a message to a record's chatter (mail.thread) as an internal note or a follower-notifying comment; supports HTML body, partner mentions and attachments.

aggregate_records

Server-side aggregation: group, sum and count records in PostgreSQL (via formatted_read_group / read_group) instead of pulling raw rows; defaults to a count per group.

call_model_method

Escape hatch that invokes any public method on any model via XML-RPC execute_kw for workflow actions (e.g. action_post, action_confirm). Registered only when ODOO_YOLO=true and ODOO_MCP_ENABLE_METHOD_CALLS=true; can call destructive methods, so use only in trusted environments.

What this server can do

MCP Server for Odoo provides tools for these capabilities — tap one to see every MCP server that does the same:

When to use it

  • Query business data in natural language — e.g. customers from a country, products with low stock, unpaid invoices from last month
  • Create and update Odoo records such as contacts, products and calendar events from a chat assistant
  • Produce totals and groupings (sales by month, partners by country) with server-side aggregation
  • Inspect model field definitions to understand an Odoo data model
  • Drive Odoo workflow actions (post invoice, confirm sales order, validate picking) via the opt-in method-call tool in trusted setups

Security notes

API key auth is recommended; each key is tied to a specific Odoo user and respects Odoo's built-in access rights and record rules. The optional Odoo mcp_server module adds per-model MCP access controls. The streamable-http transport has NO built-in client authentication — anyone who can reach the port gets full Odoo access with the server's credentials, so keep the default localhost bind or front it with an authenticating reverse proxy. YOLO mode bypasses all MCP security controls and must never be used in production. The call_model_method tool can invoke any public method (including destructive ones like unlink) and is only registered when ODOO_YOLO=true and ODOO_MCP_ENABLE_METHOD_CALLS=true.

MCP Server for Odoo FAQ

Do I need to install anything inside Odoo?

For production use, yes — install the Odoo mcp_server module (Odoo 16.0+), enable the models you want to expose, set per-model permissions, and generate an API key. For quick testing/demos you can use YOLO mode against any XML-RPC-enabled Odoo without the module, but YOLO mode bypasses all MCP security and must never be used in production.

How does authentication work?

Set ODOO_API_KEY (recommended) or both ODOO_USER and ODOO_PASSWORD. An API key is linked to a specific Odoo user and the server respects that user's access rights and record rules. Specify ODOO_DB if your server restricts database listing.

Where does the server run?

On your local computer where the MCP client (e.g. Claude Desktop) is installed — not on the Odoo server. It connects out to Odoo over XML-RPC. It can be run via uvx, pip/pipx, or Docker.

Is the HTTP transport safe to expose?

No. The streamable-http transport has no built-in client authentication, so anyone who can reach the port gets full Odoo access with the server's credentials. Keep the default localhost bind or place an authenticating reverse proxy in front of it.

Alternatives to MCP Server for Odoo

Compare all alternatives →

AI-powered task-management system for AI-driven development that drops into Cursor, Windsurf, Claude Code, and more.

Unverified
stdio (local)
API key
JavaScript
15 tools
Updated 2 months agoRepo

Background computer-use MCP server that drives native macOS, Windows, and Linux desktop apps without stealing focus.

Unverified
stdio (local)
No auth
Rust
33 tools
Updated 11 hours agoRepo

Self-hosted MCP server for Jira and Confluence Cloud and Server/Data Center.

Verified
stdio (local)
API key
Python
11 tools
Updated 2 months agoRepo