NATIVE MCP GUIDE · SOURCE REVIEW · ODOO 20
Odoo 20 MCP Server: How Native AI Connections Work
Learn the documented Odoo 20 native MCP connection: API-key authentication, client transport, selected Server Actions, read-only hints and troubleshooting. Includes a Claude Desktop example and evidence limits.
Published: October 1, 2026 · Last updated: October 1, 2026 · Review by: October 31, 2026
Answer first
The documented Odoo 20 MCP server lets an external AI client call selected tools on an Odoo database. Its connection uses the database's /mcp endpoint and an API key with MCP scope. The operator chooses which Server Actions are available to the client. Authentication, tool exposure and the client's decision to call a tool are separate parts of the setup.
This is a documentation-based walkthrough, not an authenticated native deployment test. Follow the official Odoo 20 MCP instructions for your installed UI and client. For the release context, read Odoo 20 AI and MCP.
How the native connection works
The client retrieves a tool catalogue, uses a user's request to select an action, sends arguments to the server and interprets the returned result. A successful connection only proves that the client can reach the configured service and authenticate; it does not prove that every requested business operation is exposed or correct.
| Part | What to establish |
|---|---|
| Odoo deployment | Exact version, installed AI feature and a reachable native endpoint |
| Credential | Identity, MCP scope, expiry and intended permissions |
| Tool catalogue | Which selected actions the client can actually invoke |
| Execution | What the action does and which business conditions it checks |
| Client response | Whether its explanation matches the returned result |
The operator's first useful outcome is a verified read from a known dataset. A status indicator saying connected is a prerequisite, rather than the acceptance result for a sales or accounting workflow.
Configure an Odoo 20 native MCP connection
The following sequence summarizes the publisher's configuration model and adds a concrete validation workflow. It does not assume that every edition, hosting plan or database already has the feature enabled.
- Check the actual deployment. Confirm that the relevant native AI/MCP feature is present on the database you intend to use. Check the installed version and hosting requirements with the operator. Seeing an API-key scope selector alone is not an end-to-end endpoint test.
- Prepare the Odoo identity. Use a user whose permissions match the intended task. In the user's preferences/security settings, create an API key, select MCP scope and set its validity period. Keep the generated credential in the client's protected configuration.
- Configure the endpoint. Use the database's HTTPS URL with
/mcp. The documented connection authenticates with a Bearer header. Do not reuse ERPipe's workspace endpoint for this native path. - Use the client's supported connection recipe. Odoo documents examples for several clients. Some stdio recipes use
mcp-remotethroughnpx, requiring Node.js. A native server and a local transport adapter can coexist; the adapter is not a separate hosted gateway. - Inspect the exposed tools. In developer mode, review the relevant Server Actions and their MCP availability. Grant only the actions needed for the first workflow.
- Verify a bounded read. Ask for a small known record set or a grouped total in a staging database. Compare it with Odoo using the same user, company and filters.
- Reconnect when necessary. The documented client caches its discovered tools for the session. If exposure changes, ensure the client has refreshed its catalogue before interpreting a missing tool as a server failure.
Connection ingredients, shown structurally:
Endpoint: https://YOUR_DATABASE_HOST/mcp
Authentication: Authorization: Bearer <MCP_SCOPED_API_KEY>
Client transport: the recipe supported by that client
Exposed actions: the selected native MCP tools on that databaseThese are placeholders, not a complete configuration file for every client. Use the current client-specific instructions linked by Odoo. Never place a real credential in an agent prompt, screenshot or support example.
Odoo 20 with Claude Desktop: one complete example
The following JSON follows Odoo's documented stdio recipe. Add this server entry to the client's MCP configuration; merge it with existing entries rather than replacing other servers. Substitute the database host and the MCP-scoped key locally. The example has not been authenticated against a native Odoo 20 database for this article.
{
"mcpServers": {
"odoo_native": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://YOUR_DATABASE_HOST/mcp",
"--header",
"Authorization: Bearer <MCP_SCOPED_API_KEY>"
]
}
}
}Node.js supplies npx for this recipe. After the client loads the configuration, verify the connection and discovered tools, then run the bounded read above. Keep the actual key in protected local configuration; the placeholder shown here grants no access. If the client presents different configuration options, follow the current recipe in Odoo's native MCP documentation.
Which tools are exposed?
The native documentation describes a small default set for model/field discovery, initial context, record search and grouping. Other actions need explicit exposure. The available MCP tools reference covers additional querying, navigation, record changes, website operations and media capabilities; installed applications and configuration determine what is usable.
A tool being listed in documentation does not mean it is exposed to your client. Nor does a requested operation necessarily map to the tool name an operator expects. Start with the actual catalogue returned by the target database, then inspect the selected action and arguments.
For example, a weekly order summary needs the correct model, a company filter, a precise date interval and the intended aggregation. An empty search is not automatically a permissions failure. It can also be a valid answer for the selected state or period. Ask the client to show the filters used, then compare them with the live Odoo view.
Available in MCP and Readonly Tool have different meanings
The documented Available in MCP setting controls exposure. Readonly Tool supplies an advisory signal to the client about invoking an action without explicit approval. Treat the latter as a description of the tool; it is not an enforced prohibition on write behavior. Official MCP configuration.
Odoo's AI server-action documentation separates the AI decision from the executing tool and places business conditions in execution logic. This is especially relevant for custom actions. A natural-language instruction to avoid a change is not a substitute for a condition in the action that prevents it.
A practical review asks whether the action can touch a record, send a message or update website content, and which validation runs before that side effect. Test the client's actual approval behavior alongside the server action's permissions and logic. The protocol connection alone cannot settle those questions.
Diagnose connection and tool problems separately
| Observation | First checks | What it does not establish |
|---|---|---|
| Endpoint is unavailable | Correct host/path, installed feature, reverse proxy and deployment version | That changing the model prompt will repair the route |
| Authentication is rejected | Key scope, validity and configured header | That the user's business permissions should be broadened |
| A requested action is missing | Exposure setting, installed apps and refreshed catalogue | That all native MCP tools are unavailable |
| A tool returns no records | User/company scope, domain and data state | That the client was denied access |
| A change produces an unexpected result | Arguments, action code, business conditions and verification read | That the agent's explanation proves the change was correct |
Keep the diagnosis specific to the failed layer. Repeatedly changing credentials cannot fix an unexposed action. Repeatedly changing prompts cannot make a forbidden record available to an Odoo user.
A known acceptance case helps here: use the same small staging dataset each time you change the client, credential or exposure settings. Save the expected result and the observed tool outcome. This provides a clear comparison without broadening access just to make the demo pass.
Native MCP and ERPipe are separate connection paths
Native MCP connects a client to Odoo's endpoint. ERPipe exposes its own workspace MCP endpoint and routes named tools through its existing Odoo API transports. Its current matrix covers Odoo 16–19 and marks Odoo 20 as planned; this article does not present an ERPipe wrapper around native Odoo 20 MCP. Compatibility, gateway architecture.
Choose the native path when it is available and meets the workflow. Evaluate ERPipe for requirements it currently supports on a covered version. The native MCP vs ERPipe comparison explains instance routing, configurable approval, audit and operational trade-offs.
FAQ
- What is the Odoo 20 native MCP endpoint? The documented endpoint is the database's HTTPS URL with /mcp. Confirm that the native feature is available on the actual deployment before configuring a client.
- How does native Odoo MCP authenticate? The documented path uses a static API key with MCP scope and a Bearer header. The key identifies the Odoo user and has a configured validity period.
- Does a native MCP server require a hosted gateway? A supported native deployment can connect to an external client without a separate hosted gateway. Some documented stdio client recipes still use a local mcp-remote adapter and Node.js.
- Why can a connected client miss an Odoo action? Connection and tool exposure are separate. Check the selected Server Actions, installed features and the client's cached catalogue before diagnosing the endpoint.
- Does Readonly Tool prevent an action from writing? It is an advisory client hint, not an enforced write denial. Review the actual action's logic and permissions, and test approval behavior in the chosen client.
- Has ERPipe tested this native Odoo 20 walkthrough? No authenticated native Odoo 20 execution was performed for this article. It is a dated review of official documentation; ERPipe's own Odoo 20 compatibility remains planned.
Evidence and limits
Reviewed October 1, 2026 against official 20.0 documentation and its public source. UI labels and client recipes can change. We have not verified a native Odoo 20 database, every edition/hosting combination, or every client's approval and transport behavior. No comparative performance claim is made.
Disclosure: Written by ERPipe's founder with AI assistance. Configuration concepts are attributed to Odoo; the validation scenarios and architecture assessment are our own commentary.
Sources
- Odoo 20 native MCP server documentation
- Available native MCP tools
- AI server-action execution model
- Official 20.0 MCP documentation source
- Official 20.0 tool reference source