MCP server: One MCP server.

Odoo

@nicolasramosMCP server · External

MCP server for Odoo 18 with 38 business tools

ERPv1.0.1MITPython
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: creates or changes data: records, files, settings.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

PyPIodoo-18-mcp-serverv1.0.1

Run

uvx odoo-18-mcp-server

MCP client config

{
  "mcpServers": {
    "odoo": {
      "command": "uvx",
      "args": [
        "odoo-18-mcp-server"
      ]
    }
  }
}
README5 min read

OdooClaw MCP

Standalone MCP (Model Context Protocol) server for Odoo 18 over stdio.

MCP name: io.github.nicolasramos/odooclaw-mcp
PyPI package: odooclaw-mcp
Official CLI: odooclaw-mcp

Backward-compatible aliases are also installed:

  • odoo-mcp
  • odoo-mcp-server
  • odoo-18-mcp-server

Quick Start

1) Install

bash
pip install odooclaw-mcp

From source:

bash
git clone https://github.com/nicolasramos/odooclaw-mcp.git
cd odooclaw-mcp
pip install -e .

2) Configure environment

bash
cp .env.example .env

Required:

env
ODOO_URL=https://yourcompany.odoo.com
ODOO_DB=your_database
ODOO_USERNAME=your_username
ODOO_PASSWORD=your_password

Optional:

env
ODOO_MCP_DEFAULT_LIMIT=50
ODOO_MCP_MAX_LIMIT=80
LOG_LEVEL=INFO

3) Validate and run

bash
odooclaw-mcp --check-config
odooclaw-mcp

Alternative:

bash
python -m odoo_mcp

MCP Client Configuration (stdio)

json
{
  "mcpServers": {
    "odoo": {
      "command": "odooclaw-mcp",
      "env": {
        "ODOO_URL": "https://yourcompany.odoo.com",
        "ODOO_DB": "your_database",
        "ODOO_USERNAME": "your_username",
        "ODOO_PASSWORD": "your_password",
        "ODOO_MCP_DEFAULT_LIMIT": "50",
        "ODOO_MCP_MAX_LIMIT": "80"
      }
    }
  }
}

Tool call payload contract

When calling tools through the MCP protocol, arguments must be wrapped in a top-level payload object.

Valid shape:

json
{
  "name": "odoo_search",
  "arguments": {
    "payload": {
      "model": "res.partner",
      "domain": [["customer_rank", ">", 0]],
      "limit": 3
    }
  }
}

If payload is omitted, validation fails with an error equivalent to Field required: payload.

Scope

  • 85 MCP tools for Odoo operations (CRUD + business actions + migration workflows)
  • Pydantic validation for all tool payloads
  • Odoo 18 compatibility helpers (customer_rank / supplier_rank / payment_state)
  • Security guards (model allowlist, denylisted fields, action guard, unlink blocked)
  • Structured logging and audit actions

Available Tools

The server currently exposes 85 MCP tools.

Note: the grouped tables below focus on common/high-value tools. Use MCP list_tools to inspect the full live tool catalog for your installed version.

Core record operations

ToolPurpose
odoo_searchSearch records in an allowed model using Odoo domain syntax.
odoo_readRead selected fields from specific record IDs.
odoo_search_readCombined search + read for efficient retrieval.
odoo_createCreate a new record in an allowed model.
odoo_writeUpdate existing records in an allowed model.
odoo_invoke_actionInvoke an Odoo model method such as action_* or button_*.
odoo_get_record_summaryReturn a compact, human-friendly summary for a record.

Partners, sales, and CRM

ToolPurpose
odoo_find_partnerFind a customer or vendor by name, VAT, or email.
odoo_get_partner_summaryGet a partner overview with useful business context.
odoo_find_sale_orderSearch sale orders by name, partner, or state.
odoo_get_sale_order_summaryRetrieve a sale order summary including lines.
odoo_create_sale_orderCreate a quotation / sale order with product lines.
odoo_confirm_sale_orderConfirm a quotation into a sale order.
odoo_create_leadCreate a CRM lead / opportunity.

Accounting, purchasing, and payments

ToolPurpose
odoo_create_purchase_orderCreate a purchase order from partner and line data.
odoo_create_vendor_invoiceCreate a vendor bill.
odoo_find_pending_invoicesFind posted invoices or bills pending payment using Odoo 18 semantics.
odoo_get_invoice_summaryGet a detailed summary of an invoice or bill.
odoo_register_paymentRegister a payment for a specific invoice.

Projects, activities, and chatter

ToolPurpose
odoo_find_taskSearch project tasks by name, project, or stage.
odoo_create_taskCreate a new project task.
odoo_update_taskUpdate task stage, assignee, or deadline.
odoo_create_activitySchedule an activity on a record.
odoo_list_pending_activitiesList pending activities, optionally filtered by model or assignee.
odoo_mark_activity_doneMark an activity as completed.
odoo_post_chatter_messagePost a chatter message on a record.
odoo_create_activity_summaryCreate a summary-style activity for follow-up.
odoo_close_activity_with_reasonClose an activity and record the reason.
odoo_log_timesheetLog a timesheet entry for a project or task.

Support, contracts, stock, and instance capabilities

ToolPurpose
odoo_get_capabilitiesReport which modules and capabilities are available in the connected instance.
odoo_create_helpdesk_ticketCreate a helpdesk ticket directly.
odoo_create_helpdesk_ticket_from_partnerCreate a helpdesk ticket linked to a partner.
odoo_draft_ticket_emailPrepare a draft support email from a ticket context.
odoo_create_contract_lineAdd a line to a contract.
odoo_replace_contract_lineReplace an existing contract line with a new one.
odoo_close_contract_lineClose a contract line with a reason and close date.
odoo_get_product_stockInspect stock quantities for a product.
odoo_create_calendar_eventCreate a meeting or appointment with attendees.

Introspection

ToolPurpose
odoo_get_model_schemaInspect the fields and schema of a model such as res.partner or account.move.

Available Resources

The server also exposes 5 MCP resources for discovery and context:

ResourcePurpose
odoo://context/odoo18-fields-referenceOdoo 18 field reference for common model/domain pitfalls such as customer_rank, supplier_rank, and payment_state.
odoo://modelsJSON list of models currently allowed by the security policy.
odoo://model/{model_name}/schemaTechnical schema for a specific Odoo model.
odoo://record/{model}/{id}/summaryJSON summary of a specific record.
odoo://record/{model}/{id}/chatter_summarySummary of the chatter history for a specific record.

Guardrails and Runtime Behavior

  • Uses standard Odoo JSON-RPC endpoints; it does not depend on OdooClaw delegation.
  • Tool payloads are validated with Pydantic before execution.
  • Model access is restricted by an allowlist defined in the server configuration.
  • Sensitive write fields are denylisted and unlink is blocked.
  • Search-style tools use default and maximum limits (ODOO_MCP_DEFAULT_LIMIT, ODOO_MCP_MAX_LIMIT).
  • sender_id is treated as audit/context metadata; execution runs as the authenticated Odoo session user.
  • Some tools require the corresponding Odoo apps/modules to be installed (CRM, Helpdesk, Projects, Contracts, Inventory, etc.).

Security Model

The server uses standard Odoo JSON-RPC endpoints and executes operations as the configured Odoo session user.

For production, use a dedicated least-privilege Odoo account.

Production Notes

  • This is a stdio MCP server, not an HTTP API service.
  • Docker/Compose support is mainly for packaging or controlled runtime scenarios.
  • In normal usage, your MCP client launches the server process directly.
  • Keep Odoo credentials in environment variables or a secrets manager.

Known Limitations

  • One Odoo credential context per MCP process.
  • ODOO_DB is currently required by the authentication flow.
  • Some tools require specific Odoo apps/modules (CRM, Helpdesk, Project, etc.).
  • Designed for Odoo 18 field semantics.

Development

bash
pip install -e .[dev]
ruff check src tests
black --check src tests
mypy src --ignore-missing-imports
pytest tests -v
python -m build
twine check dist/*

Docs

License

MIT - see LICENSE.

Similar modules

Browse ERP