In these docs

Execution Layer for Odoo

Installation.

How to install the Execution Layer on your Odoo 19: requirements, the module layout, the safe defaults it installs with, and the first 15 minutes. One module, installed like any Odoo addon.

Available now · Odoo 19 Updated 22 September 2026

The Execution Layer is one installable Odoo module, nanti_mcp_enterprise. You run it inside your own Odoo, so your records never leave your server, and there is nothing to pip install: its only third-party Python dependencies (requests, cryptography) are part of Odoo’s own requirements and are present on every standard host, the official Docker image, and Odoo.sh.

Getting the module

Two ways, same module, same price: buy direct from nanti.ai (write to hello@nanti.ai and we deliver the module archive and the invoice) or on the Odoo Apps Store. Pricing is one-time, USD 499 per Odoo major, everything included.

Requirements

  • Odoo 19, Community or Enterprise.
  • Self-hosted or Odoo.sh. Not Odoo Online, which does not allow custom server modules.
  • One Odoo database per host (dbfilter / monodb) is the supported deployment.
  • HTTPS with a reverse proxy (and proxy_mode = True) if a cloud AI client, such as ChatGPT, needs to reach the server: those connect from the provider’s servers. Local clients on a LAN or VPN (Claude Desktop, Cursor) do not need public reachability. See connecting an AI client.

Installing

  1. Put the nanti_mcp_enterprise folder on your addons path, or add it to your Odoo.sh repository.
  2. Restart Odoo and update the Apps list.
  3. Install Execution Layer for Odoo — Enterprise MCP Server.
  4. Open the Execution Layer app. You land on the dashboard, and the built-in Setup guide takes it from there: about 15 minutes to a first governed read.

What is inside the one module

Six modules ship physically merged into the one installable:

PartLicenseWhat it adds
nanti_mcp_coreLGPL-3The MCP server, per-user OAuth identity, scoped API keys, fail-closed tools, base action logging
nanti_mcp_verifyOPL-1Verified writes, idempotency, atomic batches, stored Action Receipts
nanti_mcp_governanceOPL-1Bundles, tool policies, hidden and required fields, preconditions, export controls
nanti_mcp_approvalsOPL-1Risk classes, payload-bound approvals, separate approvers
nanti_mcp_auditOPL-1Before and after snapshots, record history, immutable mode, alerts, the dashboard
nanti_mcp_semanticsOPL-1The semantic registry, meaning injection, disambiguation, the Context Layer client

The OPL-1 parts are source-available in your installation, and nanti_mcp_core is the open-source (LGPL-3) foundation inside it: the source you run is the source you can read.

Safe defaults

The module installs conservatively, so the first thing that happens is nothing dangerous:

  • Read-only to start. Writes are off until an administrator turns on Configuration → Settings → Allow writes for AI clients.
  • Recording from the first minute. Every call leaves evidence, before you configure anything.
  • Fail closed. The execute_action allow-list is empty by default: no business buttons are callable until you add them, one method on one model at a time.
  • Read-only default bundle. Every internal user starts on Odoo permissions · read only, as a removable default.

Staging first, always

Install on a staging copy of your database, connect a client, and run the adversarial test suite before you point anything at production. Watching the layer refuse, roll back, and receipt correctly on your own data is the point. This is also your side of the product terms.

Next: connecting an AI client.