How to use Claude with Odoo
Short answer
Claude can work with Odoo through an MCP server that wraps the Odoo external API, through scripts that call the Anthropic API directly, or through cloud platforms such as AWS Bedrock and Google Vertex AI. For data that must stay on your servers, the same tool design can run with an open-weight model instead.
Odoo teams who look at Claude are usually after reasoning over messy, multi-record questions: why is this order late, what changed on this BOM, which vendors keep missing dates. Claude is a general model with strong tool use, so the question becomes how to give it safe access to Odoo.
The cleanest route today is the Model Context Protocol. An MCP server exposes a few Odoo operations as tools, and any MCP-capable Claude client can call them. The server is where you set the permissions.
The other half is data handling. Where the model runs, what the provider retains and who may see which records are decisions for your security owner, not the integration developer.
What teams use it for
Order investigation
Ask why a sale.order is late and let Claude call tools for the linked manufacturing orders, pickings and purchase lines, then explain the chain in plain language.
Engineering change review
Provide two BOM versions from mrp.bom and have Claude summarise differences and which open orders are affected.
Supplier performance summary
Pull receipt dates versus promised dates for a vendor and ask for a short review pack ahead of a supplier meeting.
Long document comparison
Attach customer specifications or contract text (stored on the record as ir.attachment) and ask Claude to compare requirements with what the quote promises.
Writing help inside the team
Draft work instructions, NCR descriptions and customer replies using record context that you supply.
Odoo integration surface
- External API over XML-RPC at /xmlrpc/2/object (execute_kw) or JSON-RPC at /jsonrpc, authenticated with a user API key; newer releases may also provide a JSON-based REST style endpoint.
- Models typically involved: sale.order, mrp.production, mrp.bom, stock.picking, stock.quant, purchase.order, res.partner and ir.attachment for documents.
- Odoo's access control (ir.model.access plus record rules) is the permission boundary for whatever user the connector authenticates as.
- Odoo.sh and Odoo Online are reached over the public internet. A self-hosted instance can be reached over a private network only, which affects where an MCP server may run.
- Chatter (mail.message) is a convenient place to record what Claude concluded, so the explanation stays attached to the record.
How it works
- 1
Define the questions first
List the ten questions users really ask: late orders, shortages, price history. Design tools for these, not for the whole data model.
- 2
Build or adopt an MCP server for Odoo
Expose read-only tools such as find_orders, get_order_chain, get_bom, get_stock. Keep arguments typed and limit result size.
- 3
Choose where Claude runs
Anthropic's own apps and API, or Claude through AWS Bedrock or Google Vertex AI if your organisation standardises on those clouds for data residency and billing.
- 4
Connect the MCP client
Point the Claude client at the server, over stdio for a single-user desktop or HTTP for a shared server with authentication.
- 5
Scope access per user
Prefer per-user credentials so Odoo record rules apply. A shared key should only back a very narrow tool set.
- 6
Review and iterate on real questions
Collect failed or slow conversations, adjust tool descriptions and add missing tools, not more prompt text.
Example flows
Why is this order late
Trigger: A customer service user asks Claude about order S00877.
- Claude calls get_order_chain for the order.
- The tool returns linked manufacturing orders, component status and PO dates.
- Claude identifies a late component from one vendor.
- It drafts a customer update and a note for the buyer, both as text for the user to send.
Result: The user gets a sourced explanation and two drafts in one conversation.
Vendor review pack
Trigger: A purchasing manager prepares for a quarterly vendor meeting.
- Claude calls a receipts-versus-promise tool for the vendor over a date range.
- It groups late lines by product family.
- It compares price changes in recent purchase.order lines.
- It writes a one-page summary with the supporting record numbers.
Result: A review pack that used to take an afternoon of exports.
Keeping data on-prem
Claude is offered through Anthropic and through cloud platforms, so using it with a self-hosted Odoo means data in tool results travels to a hosted model. Some organisations accept this with a private cloud arrangement such as Bedrock or Vertex in a chosen region. If that is not acceptable, build the same MCP tools and run an open-weight model with tool calling on your own GPUs using vLLM or Ollama, behind a private chat interface. The Odoo-facing server is identical, only the model endpoint changes, so you can start with one and move to the other.
Security checklist
- Run the MCP server with a least-privilege Odoo user and read-only tools first.
- Prefer per-user authentication so Odoo's record rules still apply.
- Confirm provider retention, training and regional processing terms for the Claude route you choose.
- Cap result sizes and strip fields such as cost prices if the audience should not see them.
- Keep an audit log of tool calls outside Odoo.
Ways to get it done
Existing Odoo MCP server or community connector
Effort: Hours to try; review the code and permissions before production use.
Quick evaluation with a test database.
Custom MCP server built in-house
Effort: A few weeks for a vetted read-only tool set.
Teams with a developer who knows both Odoo and MCP and want tight control.
Netray with partner delivery
Effort: A scoped pilot, then extend tools and users.
You want Claude via your preferred cloud or an on-prem model, with Odoo process knowledge from an implementation partner.
Pitfalls
- !Exposing a generic search_any_model tool that returns everything the key can see.
- !Returning huge result sets and burning context on irrelevant fields.
- !Forgetting multi-company and multi-warehouse filters so answers mix entities.
- !Treating the model's explanation as authoritative without showing the records it relied on.
- !Using a personal Claude account for production data instead of a business plan with agreed terms.
Frequently asked questions
Is there an official Odoo connector for Claude?
I am not aware of an official one that you should rely on; check Odoo's current app store and release notes. The practical route is an MCP server over Odoo's external API, either built by you or reviewed from an open-source project.
Should I use the Anthropic API, Bedrock or Vertex?
Pick the one that matches your existing cloud contracts, regions and security reviews. Capabilities are broadly similar but model availability and features can differ by platform, so check before committing.
Can Claude change data in Odoo?
It can if you expose write tools. Start with read-only, then add narrow writes such as posting a chatter note or creating a draft record, with human approval for anything affecting stock or accounting.
Does this work with Odoo Community?
Yes for the API side. The external API is available in Community, so an MCP server can read the standard models. Enterprise-only apps and fields will simply not be there.
What if our data cannot go to a cloud?
Keep the MCP tools and swap the model for an open-weight one served locally. Expect to test carefully, because smaller models can need simpler tools and more explicit descriptions.
Want Claude working on your Odoo?
A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.
Get a free assessment