mcp-odoo-server
v0.1.0
Published
MCP server for Odoo ERP — standard XML-RPC, no addons required
Downloads
100
Maintainers
Readme
odoo-mcp
MCP (Model Context Protocol) server for Odoo ERP. Connect any AI assistant to your Odoo instance using standard XML-RPC — no addons, no YOLO mode, no hassle.
✨ Highlights
- No addon required — uses Odoo's built-in XML-RPC API
- No YOLO mode — proper API Key or user/password authentication
- TypeScript — fully typed, reliable
- Zero config — run with
npx odoo-mcp, configure via environment variables - Odoo 14+ — works with any Odoo version that supports XML-RPC
Quick Start
1. Get your Odoo API Key
Go to Settings → Users → Your User → Preferences → Account Security → API Keys and generate one.
2. Configure your MCP client
Add to your MCP config (Claude Desktop, Cursor, etc.):
{
"mcpServers": {
"odoo": {
"command": "npx",
"args": ["-y", "odoo-mcp"],
"env": {
"ODOO_URL": "https://your-odoo.com",
"ODOO_DB": "your-db",
"ODOO_API_KEY": "your-api-key"
}
}
}
}3. Start asking questions
"Show me all open sales orders" "Create a new contact named John Doe with email [email protected]" "How many invoices were created this month?"
Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| ODOO_URL | ✅ | Odoo instance URL (e.g., https://your-odoo.com) |
| ODOO_DB | ✅ | Database name |
| ODOO_API_KEY | ✅* | API Key for authentication |
| ODOO_USER | ✅* | User email (when using user/password auth) |
| ODOO_PASSWORD | ✅* | Password (when using user/password auth) |
* Either ODOO_API_KEY or both ODOO_USER + ODOO_PASSWORD are required.
Tools
| Tool | Description |
|------|-------------|
| search_records | Search records with domain filters, field selection, pagination, and sorting |
| read_record | Read specific records by ID |
| create_record | Create a new record |
| update_record | Update existing records |
| delete_record | Delete records |
| count_records | Count records matching a domain filter |
| list_models | List all available Odoo models |
| get_fields | Get field definitions for a model |
Examples
Search records:
model: "res.partner"
domain: '[["is_company","=",true]]'
fields: "name,email,phone"
limit: 10Create a record:
model: "res.partner"
values: '{"name":"John Doe","email":"[email protected]","is_company":false}'Get field info:
model: "sale.order"
attributes: "string,type,required"Authentication
API Key (Recommended)
- Log in to your Odoo instance
- Go to Settings → Users & Companies → Users
- Select your user → Preferences tab
- Under Account Security, click New API Key
- Copy the key and set it as
ODOO_API_KEY
User/Password
Set ODOO_USER (email) and ODOO_PASSWORD instead of ODOO_API_KEY. This is less secure and not recommended for production.
Development
git clone https://github.com/intellieffect/odoo-mcp.git
cd odoo-mcp
npm install
npm run buildTest locally:
ODOO_URL=https://your-odoo.com ODOO_DB=your-db ODOO_API_KEY=your-key node dist/index.jsLicense
MIT
