Odoo Mcp Connector — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Odoo Mcp Connector (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol server for Odoo. Connect Claude (or any MCP client) to your own Odoo ERP and query, report on, and optionally modify your data in natural language.
Works with any Odoo model. Safe by default: read only unless you explicitly enable writes. Your credentials stay on your machine. Nothing is stored or sent anywhere except your own Odoo instance.
ODOO_ENABLE_WRITES=true)Add this to your MCP client config (e.g. Claude Desktop or Claude Code):
{
"mcpServers": {
"odoo": {
"command": "npx",
"args": ["-y", "odoo-mcp-connector"],
"env": {
"ODOO_URL": "https://your-company.odoo.com",
"ODOO_DB": "your-database",
"ODOO_USERNAME": "[email protected]",
"ODOO_API_KEY": "your-odoo-api-key"
}
}
}
}In Odoo: Settings, Users, your user, Account Security, New API Key. Paste the generated key into ODOO_API_KEY. (A password also works, but an API key is safer and revocable.)
Read only is the default. To let the model create, update, or delete records, add:
"ODOO_ENABLE_WRITES": "true"Odoo holds real business data. Enable writes only when you accept that the model can create, modify or delete records, always within your Odoo user's own permissions.
| Tool | Purpose |
|---|---|
odoo_search_read | Search + read records from any model |
odoo_read | Read records by ID |
odoo_count | Count records matching a domain |
odoo_fields | Introspect a model's fields (name, type, label) |
odoo_list_models | List available models |
odoo_overdue_invoices | Unpaid customer invoices past their due date |
odoo_sales_summary | Revenue + order count over a date range |
odoo_low_stock | Products at/below a quantity threshold |
odoo_top_customers | Top customers by invoiced revenue |
ODOO_ENABLE_WRITES=true| Tool | Purpose |
|---|---|
odoo_create | Create a record |
odoo_write | Update records by ID |
odoo_unlink | Delete records by ID (irreversible) |
odoo_call | Call an arbitrary model method |
| Variable | Required | Default | Description |
|---|---|---|---|
ODOO_URL | yes | Your Odoo base URL | |
ODOO_DB | yes | Database name | |
ODOO_USERNAME | yes | Login (email) | |
ODOO_API_KEY | yes | API key (or password) | |
ODOO_ENABLE_WRITES | no | false | Set "true" to allow writes |
ODOO_TIMEOUT_MS | no | 30000 | Per-request timeout (ms) |
npm install
npm test # vitest, fully mocked, no live Odoo needed
npm run buildMIT, Falak Sarhan Saade
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.