Odoo MCP server: what it reads, what it can change, how to connect Claude and ChatGPT
Odoo's AI app turns your database into a hosted MCP server at /mcp: 5 read tools on by default, write tools opt-in. OAuth or API key. Verified 21 Oct 2026.
- Official MCP server · read by default, write opt-in (hosted in your database)
- Hosting
- Remote HTTP served by your own Odoo database at <database_url>/mcp; nothing to install for OAuth. The API-key route runs mcp-remote locally via npx (needs Node.js).
- Auth
- OAuth (recommended, internal users only) or a static API key with the MCP scope and an expiry. Each connection acts as one Odoo user.
- Read / write
- Read & write. 27 tools documented; 5 read tools exposed by default. Create Records, Update Records and website tools must be exposed one by one.
- Works with
- Claude Code, Claude Desktop, ChatGPT (custom MCP server), Codex, Google Antigravity, Grok, any MCP client
- Plan requirement
- Needs the Odoo AI app; Odoo says installing it on the Standard plan triggers an upsell to the Custom plan. Odoo AI requests use IAP credits; Odoo doesn't say if MCP calls do. Docs: 20.0 and master.
- Last changed
- 2026-10-19: OAuth sign-in and ChatGPT setup added to the docs
- Verification
- Verified 21 Oct 2026 by theFinanceStack · confidence: high
What can an agent do with Odoo through MCP?
Out of the box an agent can only read: list models and fields, search records and run grouped totals across any data the Odoo user can see, including accounting.
Odoo's tool reference lists 27 tools. Only 5 are exposed by default: Get Models, Get Fields, Search, Read group and MCP Retrieve initial context.
Turning on more tools
- The rest stay hidden until someone ticks Available in MCP under Settings › Technical › Server Actions (developer mode).
- That flag, like Readonly Tool, sits on the server action itself. So it appears to apply to the whole database, with no per-user or per-key setting.
- Exposing Update Records for one workflow likely exposes it to every MCP connection to that database (our inference; Odoo doesn't spell this out).
- Expose write tools only while needed and connect as a user with limited rights.
Tools that write
Five tools are marked not read-only: Create Records, Update Records, Write Custom CSS, Apply HTML to Page and Generate an Image. Per Odoo's tool reference:
| Tool | What happens |
|---|---|
| Create Records | Makes new records. Odoo describes no draft or undo step. |
| Update Records | Sets values on every record matching a filter. Odoo describes no draft or undo step. |
Accounting
- On accounting models, these tools could reach invoices, journal entries or payments within the user's rights.
- Odoo doesn't say how these tools behave on accounting models, such as whether a new invoice lands in draft.
- No tool is dedicated to payments or posting.
Can
- Read any model the Odoo user can access, including invoices and journal items (default)
- Search records and compute grouped totals, e.g. invoiced revenue by quarter (default)
- Create records and bulk-update records matching a filter, once those tools are exposed
- Open list, pivot and graph views in Odoo, once the view tools are exposed
- Edit website pages and CSS, and generate images, once those tools are exposed
Cannot
- Call any tool beyond the 5 defaults until it is marked Available in MCP (per Odoo)
- Go beyond the access rights of the user who connected; the key carries that user's permissions (per Odoo)
- Use OAuth as a portal user; portal users must use an API key (per Odoo)
- Hide a tool with the Readonly Tool flag; it only tells the client the tool needs no approval (per Odoo)
What access does it get?
The agent gets the same access rights as the Odoo user behind the connection, limited to the tools exposed to MCP; there are no finer data scopes.
| Where | Scopes and permissions (as documented) | Admin requirement |
|---|---|---|
| Odoo MCP server, OAuth | No named data scopes documented. The user signs in, picks how long access lasts and clicks Allow; the connection acts as that internal user. | Only approved clients connect: metadata URLs under Settings › Integrations › MCP OAuth, or any client if Dynamic Client Registration is on. Odoo doesn't say which role sets this. |
| Odoo MCP server, API key | Scope: MCP, with an expiry (e.g. 1 Month). Carries the user's identity and permissions; shown once. | Users create their own key under My Preferences › Security, where every OAuth or key connection can also be revoked. Exposing extra tools needs developer mode. |
How do I connect it?
Point your client at your database URL plus /mcp and sign in with OAuth, or pass an API key through the mcp-remote bridge (needs Node.js).
- In Odoo, allow the client under Settings › Integrations › MCP OAuth. Approval means adding the client's metadata (CIMD) URL, and Odoo doesn't list one for Claude.
- Otherwise tick Allow Dynamic Client Registration (DCR). Odoo warns this lets any app register; block unwanted clients under Settings › Technical › OAuth Clients (developer mode).
- In Claude, open Customize › Connectors › Add custom connector and enter <database_url>/mcp (Claude's standard flow; Odoo doesn't document Claude.ai).
- Sign in to Odoo, choose how long access lasts, and click Allow.
- API key, Odoo's documented route, works in Claude Desktop only (the claude.ai web app can't use it): Settings › Developer › Edit Config, then add the block below.
{
"mcpServers": {
"odoo": {
"command": "npx",
"args": ["-y", "mcp-remote", "<database_url>/mcp",
"--header", "Authorization: Bearer <API_KEY>"]
}
}
}No Odoo listing in the Claude directory. Team/Enterprise: an Owner adds custom connectors. The Desktop block runs mcp-remote as a local process via npx, so managed machines may need Node.js/npx allowed, and the API key sits in plain text in the config.
What should a finance team watch for?
By default it only reads, so the risks come from which tools you expose, which user connects and how long access lasts.
- Per Odoo's tool reference, Create Records makes new records and Update Records changes every record matching a filter, with no draft or undo step described. Expose them only if needed and never mark them Readonly Tool.
- Readonly Tool only lets the client skip approval; Odoo says it does not hide the tool.
- The agent sees everything its Odoo user sees. Connect with a user whose rights fit the task, and keep administrator accounts out of it. Tool exposure is set once per database and applies to every connection.
- Odoo warns that Dynamic Client Registration lets any app register; prefer an approved-client list and short expiries on keys and grants.
- API keys sit in plain text: claude_desktop_config.json, ~/.claude.json (Claude Code local or user scope), a project .mcp.json if added with --scope project, and ~/.codex/config.toml or a per-project .codex/config.toml. The Claude Code and Codex commands also leave the key in shell history. Keep these files out of version control and synced folders, and prefer OAuth where the client supports it so no key is stored.
- Partner names and descriptions are free text. An injected instruction could push an agent to create or update records, so keep approval on for write tools.
- Web Search (hands questions to a web search agent) and Search Images (queries Unsplash) send queries outside Odoo once exposed, and Odoo marks both Readonly, so a client may call them without approval. Leave them unexposed unless needed.
- Odoo states no MCP rate limits, and its MCP page says nothing on retention or training. Read Odoo's and your AI provider's terms.
- Odoo says AI requests in its AI app consume IAP credits; it doesn't say whether MCP tool calls do. Check Odoo's pricing page or your account manager.
How could finance teams and accounting firms use it?
The default read tools suit questions and reporting; exposed write tools create or change live records, so a person should approve each call and check the result in Odoo.
Inside a company
- Ask how much was invoiced last quarter against this quarter, or which customers owe the most.
- Pull totals from journal items by account before a budget review.
- With the view tools exposed: open a pre-filtered pivot view in Odoo for a person to check.
- With Create Records exposed: create contacts from a pasted list (Odoo's own example), approving the call first, then check them in Odoo.
At an accounting firm
- Summarise a client's revenue and expense trends. Each connection is one Odoo user in one database, so the firm needs its own internal user and key or OAuth grant in every client database; Odoo documents no multi-database mode.
- Run month-end checks with Search on contacts, such as partners missing a Tax ID (Odoo's own example), and get back a list of what needs attention.
- Keep the connection read-only by exposing no write tools, with short-lived keys per client.
- With Update Records exposed: propose field fixes and approve each one before it is applied.
Whatever the use, keep a person approving anything that changes records in Odoo, and treat AI-drafted figures as drafts until they tie to the Odoo report.
Want Odoo connected to Claude for your team?
We configure scoped connections and a review step before anything changes your books. Fixed fee.
Book a 30-minute setup callChange log
| Date | Change | Source |
|---|---|---|
| 2026-10-19 | OAuth sign-in and ChatGPT setup added to the docs | github.com/odoo/documentation/commits/master/content/applica |
| 2026-09-21 | API key generation instructions updated | github.com/odoo/documentation/commits/master/content/applica |
| 2026-09-09 | Separate Available MCP tools reference published | www.odoo.com/documentation/master/applications/productivity/ |
| 2026-08-28 | MCP server documentation first added | github.com/odoo/documentation/commits/master/content/applica |
FAQ
Is this official?
Yes. The server is part of Odoo's own AI app and documented in Odoo's user docs. Third-party Odoo MCP modules also exist; this page covers only Odoo's.
Is it free?
Odoo lists no separate MCP price. It needs the AI app, which Odoo says moves Standard-plan databases to the Custom plan. Odoo AI requests use IAP credits; Odoo doesn't say whether MCP calls do. Check Odoo's pricing page.
Does it change data in Odoo?
Not by default: the 5 default tools only read. If someone exposes the write tools, the agent can change any record its Odoo user can edit.
Is my data used to train models?
Odoo's MCP page doesn't address training or retention. Check Odoo's terms and your AI provider's terms.
Can my accountant use it on my behalf?
Odoo doesn't document this. Each connection acts as one Odoo user, so an accountant would connect with their own internal user and access rights in your database. Odoo doesn't say whether that extra user changes your subscription.
Sources
- Odoo docs: AI MCP server (master)
- Odoo docs: Available MCP tools
- Odoo docs: AI MCP server (20.0)
- Odoo docs: AI app overview (pricing-plan note)
- Odoo documentation repo: MCP page history
Verified by theFinanceStack, 21 Oct 2026. Vendor list on the CFO Software Market Map courtesy of Jason Staats; AI connectivity data by theFinanceStack. Not tax, compliance or financial advice.