Analysis · Last verified 17 October 2026

Odoo 20’s native MCP server: what it does, and where it stops

Odoo 20 Enterprise ships a built-in MCP endpoint. For exploration, reporting, and question-answering it is ready as shipped. This page covers exactly what it includes, how it authenticates, and the specific cases where it isn’t enough.

Last verified: 17 October 2026. Odoo 20 has shipped. Every fact below is verified against Odoo's own 20.0 documentation — the AI app's MCP server and MCP tools pages — rather than the pre-release analysis this page launched with. That earlier pass described five read-only tools; the shipped server documents 27, five of which write. The correction is recorded in the changelog at the bottom of this page.

Does Odoo 20 have a built-in MCP server?

Yes. Odoo 20 ships an MCP server as part of its AI app, reachable at your database URL with /mcp appended. It authenticates with a static API key carrying an MCP scope — created under My Preferences → Security, sent as a bearer token, with a validity period set at creation — rather than OAuth. Odoo documents 27 tools on it, and five of those write: Create Records, Update Records, Write Custom CSS, Apply HTML to Page and Generate an Image. Calls run as the user the key belongs to, so access rights and record rules apply. Rate limiting, audit logging and any revocation short of letting the key expire are not documented.

What Odoo’s native MCP does well

Scope isolation is correct

An MCP credential cannot be reused as a general RPC key, and a normal RPC key will not work against /mcp. That isolation is a deliberate, well-made security decision, and several third-party implementations get it wrong.

The permission model is sound

Access checks run as the actual user with sudo dropped, record rules apply, and execution is force-downgraded to non-sudo. sudo is used only to look up the action, never to touch data.

Read-first is the right default

Shipping with no write tools exposed is the conservative choice, and it is the correct one for a module that auto-installs on any Enterprise database already running the AI module.

Tools are data, not code

Each tool is an ir.actions.server record flagged for MCP, built on Odoo’s ai.tool framework. The tool surface is extensible without patching the controller — good architecture, and what makes a governance layer possible on top.

If your use case is exploration, reporting, and question-answering on an Enterprise 20 database, Odoo’s native MCP is likely all you need. The rest of this page is about the cases where it isn’t.

Odoo 20 native MCP at a glance

Verified 17 October 2026 against Odoo's published 20.0 documentation.

PropertyOdoo 20 native (ai_mcp)
AvailabilityPart of the AI app in Odoo 20. Odoo's documentation does not state an edition requirement either way, so treat Community availability as unconfirmed.
EndpointYour database URL with /mcp appended — e.g. https://example.odoo.com/mcp
AuthenticationStatic API key with an MCP scope, created under My Preferences → Security and sent as a bearer token
Key lifetimeA validity period is set when the key is created. The key is shown once.
OAuth 2.1No — API key only
Per-user consent screenNo. The key carries one user's identity and permissions, so access is per user without a consent step.
Tools shipped27 documented AI tools
Write operationsYes — Create Records, Update Records, Write Custom CSS, Apply HTML to Page and Generate an Image are all documented as not read-only
Rate limitingNot documented
Audit logNot documented
Kill switchNot documented beyond letting a key expire
Odoo 14–19No — Odoo 20 only

The tool surface it ships

Odoo documents 27 tools, of which 22 are read-only and five write. Each is an ir.actions.server record flagged for MCP rather than hardcoded, and clients receive readOnlyHint and destructiveHint annotations per tool.

context

Returns the current user, timezone, and active company. Meant to be called first.

Model listing

Lists the models the authenticated user is permitted to reach.

Field inspection

Describes a model’s fields.

Search

Searches and reads records.

Grouped reads

Aggregates for simple analytics.

Four things it does not do

Each one below says who it actually affects. Several will not affect you.

GAP 01

Writes are unguarded once enabled

Read-only-by-default is a good posture. But the moment an administrator flags a write action, MCP passes the call through with confirmation already set to true. There is no human-in-the-loop prompt at the Odoo layer.

Who this affects: Anyone who wants an AI agent to create sales orders, post invoices, or update inventory.

What to do: Your only guards are the opt-in flag and the ACL check, so any MCP key should belong to a least-privilege user. If you only need reads, this does not affect you.

GAP 02

No audit trail

The module logs requests and little else. There is no record of which agent called which tool against which record with what payload.

Who this affects: Anyone with a compliance obligation, anyone in a regulated sector, and anyone who will one day need to answer “what did the AI do?”

What to do: If you need that answer in writing, the audit layer has to come from somewhere other than the native module.

GAP 03

No rate limiting or kill switch

An AI agent misinterpreting an instruction can issue a lot of calls very quickly. There is no throttle, and no global stop.

Who this affects: Production deployments, and anyone running agents unattended.

What to do: For a supervised, interactive session on a small dataset this is a low risk. For unattended agents it is the gap to close first.

GAP 04

Enterprise 20 only

The module is Enterprise-licensed and only exists in Odoo 20.

Who this affects: Every Odoo Community user, everyone on Odoo 14–19, and every organization that will not complete a major-version upgrade before 2027 — realistically most of the installed base for at least a year.

What to do: If you are not on Enterprise 20, this is not a decision you have to make yet. A third-party module is the only route today.

Which one should you use?

Your situationRecommendation
Enterprise 20, read-only reporting and Q&AUse Odoo’s native MCP. It is free, built in, and correctly scoped.
Enterprise 20, need writes with confirmation and auditNative MCP plus a governance layer.
Odoo Community, any versionNative MCP is not available — a third-party module is the only option.
Odoo 14–19Native MCP is not available — a third-party module is the only option.
Compliance or audit requirementA governance layer is required regardless of edition.
Odoo Online (*.odoo.com)No module can install — use a hosted gateway.
A team each needing their own AI accessOAuth-based per-user access. Native MCP is key-based.

Extending Odoo’s native MCP

It is extensible

ai_mcp is a normal Odoo module and can be extended like any other.

The right seam is the tool layer

Because tools are ir.actions.server records on the ai.tool framework, governed tools can be registered and their execution wrapped without touching the /mcp controller.

The wrong seam is the controller

Overriding the controller’s authentication to inject OAuth couples you to Odoo’s controller internals and means re-patching on every release.

One licensing consequence worth stating plainly: a module that depends on an Enterprise module inherits Enterprise-only distribution. Whether Odoo's AI app is Enterprise-only is something Odoo's 20.0 documentation does not state either way, so check it against your own licence before planning around it — we would rather flag the gap than guess at it.

Odoo 20 native MCP — frequently asked questions

Release timing, authentication, write safety, and edition availability.

Does Odoo 20 have MCP built in?

Yes. Odoo 20 Enterprise includes a native MCP module called ai_mcp, which exposes a single /mcp endpoint speaking JSON-RPC 2.0 against MCP spec revision 2025-11-25. It auto-installs on any Enterprise 20 database that already has the AI module. It is not available on Odoo Community, and it does not exist in Odoo 14 through 19.

Does Odoo 20’s MCP support OAuth?

No. Odoo 20’s native MCP authenticates with an API key carrying a dedicated MCP scope. There is no authorization server, no dynamic client registration, and no per-user consent screen. The scope isolation is well designed — an MCP credential cannot be reused as a general RPC key — but it remains key-based rather than identity-based, so every client sharing a key is indistinguishable in the logs.

Can Odoo 20’s MCP write to my database?

Yes. This page said otherwise before Odoo 20 shipped, and that was wrong. Odoo documents 27 AI tools on the MCP server, five of which are explicitly not read-only: Create Records, Update Records, Write Custom CSS, Apply HTML to Page and Generate an Image. Writes run as the user the API key belongs to, so Odoo access rights and record rules still bound them — but the capability is there by default rather than behind an administrator flag.

Does Odoo 20’s MCP have an audit log?

No. The module logs requests and little else. There is no per-call record of which agent invoked which tool against which record with what payload, and no denied-attempt log. If you need to answer a compliance question about AI activity in your ERP, that record has to come from a layer above the native module.

Is Odoo 20’s MCP available in Odoo Community?

No. The ai_mcp module is Enterprise-licensed. Odoo Community users have no built-in MCP option in any version, including 20, and a third-party module is the only route.

When is Odoo 20 released?

Odoo 20 was unveiled at Odoo Experience on 24–26 September 2026 and has since shipped — the release notes are published and the 20.0 documentation is live. Everything on this page is now verified against that shipped documentation rather than against pre-release analysis.

Do I still need a third-party Odoo MCP module?

It depends on your edition, your version, and whether you need writes recorded. If you are on Enterprise 20 and want exploration, reporting, and question-answering, Odoo’s native MCP is likely all you need. You still need a third party if you are on Odoo Community, on Odoo 14–19, on Odoo Online, or if you need per-user OAuth, write confirmation, rate limiting, a kill switch, or an audit trail.

Can I use Odoo 20’s MCP on Odoo Online?

Odoo Online (*.odoo.com) does not allow installing custom server-side modules, but ai_mcp is a first-party Odoo module rather than a third-party one, so its availability on Odoo Online is a question of Odoo’s own packaging rather than the custom-module restriction. Verify against Odoo’s Online plan documentation at general availability. For third-party MCP access to an Odoo Online instance, an external gateway is the only route, because no third-party module can install there.

What happens if I already run an MCP gateway and upgrade to Odoo 20?

You end up with two live MCP surfaces. They use different endpoints and different credential scopes, so they do not collide, but both are reachable and both need to be accounted for in your access review. Decide deliberately which one your clients point at rather than leaving both connected by default.

Will XML-RPC still work in Odoo 20?

Yes. XML-RPC is deprecated but not removed in Odoo 20. Odoo has formally deprecated the /xmlrpc, /xmlrpc/2, and /jsonrpc external RPC endpoints and currently schedules their removal for Odoo 22 in autumn 2028 and Odoo Online 21.1 in winter 2027. Odoo 19 introduces the External JSON-2 API as the replacement, using endpoints structured as /json/2/<model>/<method> with an API key as a bearer token. Integrations that reach Odoo over XML-RPC — including external MCP gateways — keep working through Odoo 20, and the migration to JSON-2 belongs on the roadmap rather than the critical path.

How this page is maintained

  • 7 Aug 2026 — Initial publication, based on pre-release analysis of ai_mcp.
  • 17 Oct 2026 — Odoo 20 shipped; re-verified against Odoo's published 20.0 documentation. One material correction: the pre-release analysis described five read-only tools, and the shipped server documents 27, five of which write (Create Records, Update Records, Write Custom CSS, Apply HTML to Page, Generate an Image). Claims this page previously made about rate limiting, audit logging and a kill switch now read "not documented" rather than "no", because absence from Odoo's docs is not proof the feature is absent.
  • Pending — re-verification after the first stable Odoo 20 patch.

If the gaps above apply to you

If they don’t, use Odoo’s native MCP — it is free and it is correctly built for read-only work.

Governance layer for Odoo MCP →Odoo 14–20 and Community: MCP Server for Odoo →What Odoo 20's AI credits cover →Does this module run on Odoo 20? →