← Back to blog

Odoo 20 has an MCP server. Here is what it can and cannot do.

Odoo 20 ships its own MCP server. We installed Odoo 20.0 Enterprise and tested it: what you get per edition, whether it can write, why it cannot confirm orders or post invoices, what it costs, which AI clients connect, and when Odoo MCP Pro fits better.

In short: Odoo 20 has its own MCP server. It reads by default, and an administrator can let it create and edit records. It cannot press Odoo's buttons: in our test it could not confirm a quotation, post an invoice or delete anything. It only exists in Enterprise (and on Odoo Online since saas-19.4), and Odoo lists agentic AI under the Custom plan. Odoo MCP Pro works on every edition from Odoo 14 up and finishes the work in Odoo, buttons included. Start the trial today.

Updated 30 September 2026: we installed Odoo 20.0 Enterprise from the official source package, loaded demo data and tested the MCP server again. The findings are below.

Does Odoo 20 have an MCP server?

Yes. Odoo 20 Enterprise ships a module called ai_mcp that installs automatically together with Odoo's AI app. It adds an endpoint at /mcp on your own Odoo address. You point Claude, ChatGPT, Codex or another AI client at it, and the AI can work with your data. No extra module, no server next to it.

What that means for you depends on two things: which edition you run, and whether the AI may only read or also act.

Which Odoo editions get the MCP server?

Odoo comes in three editions: Odoo Online, Odoo Enterprise and Odoo Community. If you are not sure which one you have, read our guide to editions and hosting first.

You run Odoo Online

You already have it. The server has been in Odoo Online since July (version saas-19.4). You create an API key with the "MCP" scope, or connect with OAuth, and you can ask questions about your own data. Five minutes of work.

You run Odoo Enterprise, on Odoo.sh or your own server

You get it with Odoo 20.0, not before. Odoo 19.0 does not have the module and will not get it, because Enterprise outside Odoo Online only receives major versions. An upgrade to 20 is a project with custom modules, testing and a date, and it also changes what you pay. Until then you connect AI to your Odoo through an external MCP server such as Odoo MCP Pro.

You run Odoo Community

You do not get it. We checked the official Odoo 20 Community package: it contains no AI module and no MCP module at all. All 52 AI modules of Odoo 20 sit in the Enterprise code. If you want AI connected to Community, an external MCP server is the route. MCP Pro runs on Community without installing anything inside Odoo.

What can Odoo's MCP server do?

What works out of the box?

Asking questions about your own data. "How many open quotations above 10k did we send this quarter, per salesperson?" works, and works well. Out of the box the server offers five tools: search records, group and total records, list models, list fields, and a tool that tells the AI who you are, which company is active and which timezone you are in. All five only read.

The AI sees exactly the records you see in Odoo. We tested that with a sales user who may only see his own orders: through the MCP server he got his own 13 orders and was refused when he asked for employee records.

Can Odoo's MCP server write data?

Yes, if an administrator switches it on. Odoo's AI app ships more than 30 tools, and two of them write: "Create Records" and "Update Records". Each tool is a server action with a checkbox "Available in MCP". Tick it and the AI can create and edit records from outside. For comparison: every one of our own customers on Odoo Online uses write tools. Not a single workspace runs read-only.

Can it confirm a sales order or post an invoice?

No, not even with writing switched on. We tried both on Odoo 20. The update tool refused with "The field 'state' is readonly and shouldn't be updated directly". That is by design: in Odoo, confirming an order or posting an invoice is a button that runs business logic, not a field you overwrite. The native MCP server has no tool for buttons.

Same request, two routes: Odoo native MCP returns the error field state is readonly; the JSON/2 call action_confirm returns true

The same request on Odoo 20: refused by the native MCP server, confirmed through the API route MCP Pro uses.

Bar chart: 116 workflow buttons on five Odoo 20 models reachable through the API, 0 through native MCP. account.move 42, sale.order 23, account.payment 23, hr.employee 16, res.partner 12

Public action_ and button_ methods per model in Odoo 20. The native MCP server reaches none of them without custom Python.

Can it delete records?

No. There is no delete tool. Asking for one returns "The tool doesn't exist".

Can you add your own tools?

Yes. Any server action can be published as an MCP tool. We wrote a small Python server action that confirms a quotation, ticked "Available in MCP", and the AI could confirm orders. It works, but it is programming work for every workflow you want, and that code has to be maintained through every upgrade.

Test on Odoo 20.0 EnterpriseOdoo's MCP server, write switched onOdoo MCP Pro
Search and report on recordsYesYes
Create a recordYesYes
Change a fieldYes, except read-only fieldsYes
Confirm a quotationNo, "field 'state' is readonly"Yes
Post an invoiceNo, same errorYes
Register a paymentNo toolYes, as a form in the chat
Delete a recordNo toolYes
Import with external ids (no duplicates)No toolYes
Your own workflowAfter writing a Python server actionDirectly, plus playbooks per app

Is Odoo's MCP server free?

Partly. In our test the MCP tool calls used no AI credits: we had no credits and no IAP account set up, and searching and creating still worked. The code of the MCP module contains no check on your subscription plan either. Odoo's pricing page, however, lists "Agentic AI" under the Custom plan only, and the Custom plan price goes up 20% this year. So the software does not stop you on the Standard plan, but the contract does. Odoo's other AI features, such as agents inside Odoo, run on credits you buy from Odoo. In Odoo 20 you can no longer use your own OpenAI or Gemini key for those.

Which AI clients can connect to Odoo 20?

Any MCP client that can send an API key, and four clients through OAuth without a key: ChatGPT, Claude, Claude Code and Grok are approved out of the box. Other clients can register themselves only if an administrator switches on "Dynamic Client Registration", which is off by default.

Four things to know before you switch it on

Scorecard of access and control: native MCP versus Odoo MCP Pro on user rights, tool visibility, scoped keys, workflow buttons, delete, read-only enforcement, confirmation, audit trail and supported editions

Who decides what the AI may do. MCP Pro roles and audit come from the free MCP Pro Governance module.

The key is you. An MCP key gives the AI exactly your rights, no more and no less. Create the key with your administrator account and the AI can read everything you can read, payroll included. Odoo 20 lets an administrator limit which tools a user group sees, but there is still no way to give the AI less than the person holding the key. If you want that, you create a separate Odoo user with fewer rights, and that user counts on your bill. That missing dial is why MCP Pro has roles per key, separate from the Odoo user.

Writing is one checkbox. Every AI tool is a record under Settings, Technical, Server Actions, with the checkbox "Available in MCP". That is a supported route, not a back door, but you are the one who decides and who owns the result. Check what is switched on in your database instead of assuming it is read-only.

The "Readonly Tool" checkbox is not checked by anything. It tells your AI client that a tool changes nothing and may run without asking you. Nothing in Odoo verifies that. On Odoo 20 we ticked it on the create tool, the server announced the tool as read-only, and it still created a contact. What Odoo ships is consistent, so this only goes wrong when someone starts customising. Know that it can.

Odoo skips its own confirmation step. In Odoo's built-in AI chat, the AI shows you a preview and asks before it creates or changes something. Through MCP that step is skipped: the server marks every call as already confirmed. Your AI client is then the only thing asking you "are you sure?".

Odoo's MCP server or Odoo MCP Pro?

Odoo's server exposes the AI tools Odoo built for its own chat. MCP Pro uses Odoo's external API, the same API every integration uses. That is why MCP Pro can do anything the user is allowed to do through the API, including the buttons, and the native server can do what someone has built as a tool.

Architecture: Odoo native MCP only exposes server actions marked Available in MCP; Odoo MCP Pro goes through Odoo's external API and can call any public method the user may run

Server actions versus the external API.

Odoo's MCP serverOdoo MCP Pro
Odoo versions20.0, and saas-19.4 on Odoo Online14 and up
EditionsEnterprise onlyCommunity and Enterprise
PlanCustom plan, per Odoo's pricingAny plan
Default rightsRead onlyWhat your role allows
Buttons and wizardsOnly via your own Python server actionsYes
Several Odoo databasesOne server per databaseSeveral databases in one conversation
AI allowed less than the userNoYes, roles per key
Where it runsInside your OdooHosted in the EU, or on your own server

The native server fits you if you run Odoo 20 Enterprise on the Custom plan, have one database and mainly want answers about your numbers. Then it is included, quick to set up and good enough.

An external server fits you if any of these is true:

  • You want the AI to finish work in Odoo: validate a delivery, register a payment, cancel an order, issue a credit note.
  • You manage several Odoo databases, for example as a partner, and want to switch between them in one conversation.
  • You want the AI to be allowed less than the person holding the key, and want to see what it did.
  • You run Community, the Standard plan, or Odoo 14 through 19 and are not moving to 20 soon.

Odoo 20 speaks the same JSON/2 API as 19. We confirmed a quotation on Odoo 20 through that API in the same test. So anyone moving to 20 can keep using an external server.

What we found in Odoo 20.0

Before Odoo Experience we had three questions. The released code answers them:

  1. Do the write tools open up by default in 20.0? No. A fresh Odoo 20 still exposes the same five read-only tools.
  2. Can a key do less than its user? No. Administrators can now limit tools per user group, but a key still carries the full rights of its user.
  3. Is it limited to Enterprise, with one database per endpoint? Yes. The module is Enterprise-licensed, Community has no AI modules at all, and each database has its own endpoint.

New since July: OAuth support with ChatGPT, Claude, Claude Code and Grok approved by default.

How we know

In July we ran Odoo saas-19.4 locally. On 30 September we installed Odoo 19 and Odoo 20 Enterprise side by side in Docker from Odoo's official source packages, loaded Odoo's demo data and called the MCP server directly. You can reproduce this: create a key with the MCP scope, post a JSON-RPC request to /mcp with the key as a bearer token, and ask for tools/list. On Odoo 20 this comes back, trimmed:

{ "result": { "tools": [
  { "name": "ai_tool_get_fields",                   "annotations": { "readOnlyHint": true } },
  { "name": "ai_tool_get_models",                   "annotations": { "readOnlyHint": true } },
  { "name": "ai_tool_mcp_retrieve_initial_context", "annotations": { "readOnlyHint": true } },
  { "name": "ai_tool_read_group",                   "annotations": { "readOnlyHint": true } },
  { "name": "ai_tool_search",                       "annotations": { "readOnlyHint": true } }
] } }

Then we switched on the write tools as an administrator and tried to confirm a quotation:

{ "isError": true, "content": [{ "type": "text",
  "text": "The field 'state' is readonly and shouldn't be updated directly." }] }

The same confirmation through Odoo's JSON/2 API, the route MCP Pro uses, returned true.

Frequently asked questions

Does Odoo 20 Community have an MCP server?

No. The Odoo 20 Community package contains no AI or MCP module. Use an external MCP server such as Odoo MCP Pro.

Does Odoo 19 have an MCP server?

Not Odoo 19.0. Only Odoo Online on saas-19.4 has it. Enterprise on Odoo.sh or your own server gets it with Odoo 20.

Is Odoo's MCP server read-only?

By default, yes. An administrator can switch on tools that create and edit records, but not tools that confirm, post or delete.

Can I connect Claude or ChatGPT to Odoo 20?

Yes. Both are approved for OAuth out of the box, so you can connect without copying an API key. You can also use an API key with the MCP scope.

Does Odoo's MCP server use AI credits?

Not in our test. The MCP tools read and write Odoo data directly without calling an AI model. Odoo's own AI features inside Odoo do use credits.

Can I use Odoo's MCP server with several databases?

Each database has its own server and its own key. Switching between databases in one conversation needs an external server.

What is the difference between Odoo's MCP server and Odoo MCP Pro?

Odoo's server exposes the AI tools Odoo built for its own chat and works on Odoo 20 Enterprise. MCP Pro works through Odoo's API on Odoo 14 and up, Community and Enterprise, and can also press Odoo's buttons, such as confirming orders and registering payments.

Not keen on waiting for the upgrade, or want your AI to actually get work done in Odoo today? Odoo MCP Pro works on every edition and every version from 14 up, and you start for free.