odoo-mcp
v2.0.0
Published
MCP server for Odoo ERP integration
Readme
Odoo MCP Server
Talk to your Odoo ERP in plain English.
An MCP server that connects Claude to your Odoo instance. Query data, create records, and build reusable workflows—all through natural conversation.
"Draft invoices for all outstanding timesheets for Acme Inc"No API syntax. No field lookups. No hunting through models. Just describe what you need.
Why This Matters
Before: Writing Python scripts, memorizing execute_kw syntax, hunting through Odoo's 500+ models for the right field names.
After: Describe what you need. Claude figures out the rest.
But the real power is natural language SOPs. When you complete a complex task—reconciling invoices, importing products, generating reports—save it as a procedure. Next time, anyone on your team just says "run the monthly-sales-report SOP" and it happens. Same steps, every time. Knowledge that doesn't walk out the door.
Quick Start
Add to your project's .mcp.json:
{
"mcpServers": {
"odoo": {
"command": "npx",
"args": ["odoo-mcp"],
"env": {
"ODOO_URL": "https://your-instance.odoo.com",
"ODOO_DB": "your_database",
"ODOO_USERNAME": "your_username",
"ODOO_PASSWORD": "your_api_key"
}
}
}
}Start Claude Code. You're connected.
Hosting it
The setup above needs no hosting — your MCP client starts the server itself over stdio. To share one instance across a team or an automated agent, run it over Streamable HTTP:
odoo-mcp --http # http://127.0.0.1:3000/mcp
odoo-mcp --http --port 8080 # custom port
odoo-mcp --http --allowed-hosts mcp.example.comThe HTTP transport has no authentication. It binds to
127.0.0.1by default and validates theHostandOriginheaders to block DNS-rebinding attacks from the browser. Those protections assume a local bind — anyone who can reach the port can read and write your Odoo data as the configured user. Put an authenticating reverse proxy in front of it before exposing it.
Deployment Guide covers Docker, Docker Compose,
Kubernetes, systemd and Cloudflare Workers, with the security model, health
probes, scaling and worked authentication examples. Ready-made manifests live in
examples/deploy/.
Protocol support
Implements MCP revision 2026-07-28. Clients still speaking the 2025-era
initialize handshake are served transparently on both transports, so no client
config needs to change. Because that revision is stateless, HTTP replicas scale
horizontally with no sticky routing.
Documentation
User Guide — Complete guide including:
- The power of natural language SOPs
- Configuration options
- Building your SOP library
- Troubleshooting
Deployment Guide — Hosting it: transports, Docker, Kubernetes, systemd, Cloudflare Workers, authentication and scaling.
Architecture — How it is put together, and why.
Example SOPs — Ready-to-use templates to get you started.
What You Can Do
- Query anything — Partners, invoices, products, stock levels, any of Odoo's 500+ models
- Create and update records — Invoices, orders, contacts, journal entries
- Bulk operations — Import data with batching and error handling
- Save procedures — Capture complex workflows as reusable SOPs
- Share knowledge — Commit
.odoo-mcp/to git, team learns instantly
Requirements
- Odoo 14+ with XML-RPC enabled (default)
- API key (Custom plans only—not available on One App Free or Standard)
- Node.js 22.13+
Tested Versions
| Odoo Version | Status | Notes | |--------------|--------|-------| | 19 | ✅ Tested | Latest version (2025), full support | | 18 | ✅ Tested | Full support | | 17 | ✅ Tested | Full support | | 16 | ✅ Tested | Full support | | 15 | ✅ Tested | Full support | | 14 | ✅ Tested | Full support |
All 99 integration tests run against each version in CI.
Links
License
MIT
