Odoo is the most popular open-source ERP in the world — CRM, sales, inventory, accounting, all in one system. Hermes Agent is an open-source AI agent framework. Put them together and your agent can query customer records, check inventory levels, create leads, generate invoices, and pull sales reports — all through natural language.
There are three proven ways to connect the two. Each has different trade-offs in setup speed, flexibility, and ongoing maintenance. This guide walks through all three so you can pick the right one.
Already know which approach you want? The detailed speed runs are here: Direct API, MCP server, and Direct vs MCP comparison.
| Approach | Setup Time | Best For | Components |
|---|---|---|---|
| 1. Direct API | ~3 minutes | Single-ERP setups, production | Hermes + Odoo only |
| 2. MCP Server | ~5 minutes | Multi-tool agents, standardization | Hermes + mcp-server-odoo + Odoo |
| 3. Custom Skill | ~15 minutes | Complex workflows, custom logic | Hermes + custom SKILL.md + Odoo |
The simplest approach. You create a dedicated Odoo user with restricted permissions, paste the connection details into Hermes, and your agent calls the Odoo XML-RPC API directly.
How it works: Hermes Agent has built-in Odoo tool support. When you configure the connection once, the agent can search, read, create, write, and unlink records on any Odoo model — CRM leads, partners, products, sales orders, invoices, and more.
config.yaml# Hermes config.yaml snippet
odoo:
url: "https://your-instance.odoo4projects.com"
db: "your-database"
user: "agent@company.com"
api_key: "your-api-key"
readonly: true
Deep dive: Speed Run: Create an Odoo Community Agent from Zero
The MCP approach inserts a translation layer between Hermes and Odoo. The mcp-server-odoo project (315+ GitHub stars, actively maintained) exposes Odoo models as MCP tools that Hermes can discover and call.
How it works: You run the MCP server locally on the same machine as Hermes. It listens on an HTTP port and translates MCP tool calls into Odoo XML-RPC requests. Hermes discovers the available tools automatically when you register the server.
git clone https://github.com/ivnvxd/mcp-server-odoo.gituvx mcp-server-odoo (port 8000, streamable-http transport)hermes mcp add odoo --url http://localhost:8000/mcp#!/usr/bin/env bash
export ODOO_URL="https://your-instance.odoo4projects.com"
export ODOO_DB="your-database"
export ODOO_USER="agent@company.com"
export ODOO_API_KEY="your-api-key"
export ODOO_READONLY=1
export ODOO_MCP_TRANSPORT=streamable-http
export ODOO_MCP_PORT=8000
export ODOO_YOLO=read
uvx mcp-server-odoo
The most flexible approach. You write a custom Hermes skill — a SKILL.md file — that defines exactly how the agent communicates with Odoo. This gives you full control over the tools, prompts, and error handling.
How it works: Hermes skills are markdown files with YAML frontmatter and a structured body. Your Odoo skill defines tools like search_leads, create_invoice, or check_inventory. Each tool uses terminal() to make curl calls to the Odoo XML-RPC endpoint, and the agent calls these tools by name during the conversation.
SKILL.md — in ~/.hermes/skills/odoo/SKILL.md# Odoo Hermes Skill
## Tools
### search_leads
Search CRM leads with filters.
Parameters: domain (list), limit (int, optional)
Command: `curl -s "$ODOO_URL" -d '{"params": {"model": "crm.lead", "method": "search_read", "args": [{{domain}}], "kwargs": {"limit": {{limit|5}}}}}'`
### create_lead
Create a new CRM lead.
Parameters: name (string), email (string, optional), phone (string, optional)
Command: `curl -s "$ODOO_URL" -d '{"params": {"model": "crm.lead", "method": "create", "args": [{"name": "{{name}}", "email_from": "{{email}}", "phone": "{{phone}}"}]}}'`
Pro Tip: The skill approach gives you the most control but also the most responsibility. You handle authentication, error handling, rate limiting, and API versioning yourself. For simpler setups, start with Method 1 or 2.
Not sure which to pick? Here's a quick flowchart:
Whichever approach you choose, these rules apply:
crm.lead, res.partner)| Feature | Direct API | MCP Server | Custom Skill |
|---|---|---|---|
| Setup time | ~3 min | ~5 min | ~15 min |
| Extra processes | None | MCP server daemon | None |
| Tool discovery | Built-in | Automatic (MCP list) | Defined in SKILL.md |
| Custom workflows | Limited | Limited | Full control |
| Multi-tool agent | Requires per-tool setup | One protocol for all | Per-skill setup |
| Security model | Odoo user permissions | MCP transport + Odoo perms | Odoo user + skill code |
| Best for | Production single-ERP | Multi-tool MCP stacks | Custom agent products |
Yes. Hermes Agent supports mixed setups — you can use the direct API for Odoo while connecting GitHub and Slack through MCP, and load a custom skill for Odoo-specific workflows on top of that. The methods are not mutually exclusive. Choose the right connection for each backend.
Deploy a Hermes Agent with any of these Odoo integrations. Use coupon code blog950 for your first month free.
Get Your Agent →derez.ai — Deploy your AI agent in 5 minutes. · Direct Odoo Speed Run · MCP Speed Run · Direct vs MCP