Odoo MCP Server
Connect an MCP client to your Odoo ERP to search, read, count, introspect, and report on business data, with writes off by default.
Search and read records from any Odoo model with domains, fields, sorting, limits, and pagination.
Read records by ID and count records matching a domain.
Introspect model fields and list available models, with optional name filtering.
Get ready-made reports: overdue customer invoices, sales/revenue summaries, low-stock products, and top customers by invoiced revenue.
Optionally enable writes to create, update, delete records, or call arbitrary model methods, per the README; these write tools are not exposed in the provided schema.
Provides tools for interacting with Odoo ERP, including searching, reading, counting, and introspecting models, as well as business tools like overdue invoices, sales summary, low-stock products, and top customers. Optionally supports creating, updating, and deleting records when writes are enabled.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Odoo MCP Server Show me the overdue invoices"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Odoo MCP Server
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.
Features
Generic access to any model: search, read, count, introspect fields, list models
Ready made business tools: overdue invoices, sales summary, low stock products, top customers
Read only by default: create, update and delete only when you opt in (
ODOO_ENABLE_WRITES=true)Your data, your machine: configured entirely through environment variables
Related MCP server: Odoo MCP Server
Install
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": "you@example.com",
"ODOO_API_KEY": "your-odoo-api-key"
}
}
}
}Getting an 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.)
Enabling writes
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.
Tools
Always available (read only)
Tool | Purpose |
| Search + read records from any model |
| Read records by ID |
| Count records matching a domain |
| Introspect a model's fields (name, type, label) |
| List available models |
| Unpaid customer invoices past their due date |
| Revenue + order count over a date range |
| Products at/below a quantity threshold |
| Top customers by invoiced revenue |
Only when ODOO_ENABLE_WRITES=true
Tool | Purpose |
| Create a record |
| Update records by ID |
| Delete records by ID (irreversible) |
| Call an arbitrary model method |
Configuration reference
Variable | Required | Default | Description |
| yes | Your Odoo base URL | |
| yes | Database name | |
| yes | Login (email) | |
| yes | API key (or password) | |
| no |
| Set |
| no |
| Per-request timeout (ms) |
Development
npm install
npm test # vitest, fully mocked, no live Odoo needed
npm run buildLicense
MIT, Falak Sarhan Saade
Available Tools
9 toolsodoo_countC
Count records matching a domain.
Inputs: model (required), domain.
odoo_fieldsA
Introspect a model's fields — names, types, labels, relations. Useful before querying an unfamiliar model.
Inputs: model (required), attributes.
odoo_list_modelsB
List available Odoo models, optionally filtered by a substring of the technical name.
Inputs: filter.
odoo_low_stockB
List storable products at or below a quantity threshold — restock alerts.
Inputs: limit, threshold.
odoo_overdue_invoicesB
List unpaid customer invoices past their due date — an instant accounts-receivable / cash-flow view.
Inputs: as_of, limit, partner_id.
odoo_readC
Read specific records by their IDs.
Inputs: ids (required), model (required), fields.
odoo_sales_summaryA
Total revenue and order count over a date range, from sales orders (default) or POS orders.
Inputs: date_to (required), date_from (required), source.
odoo_search_readB
Search and read records from any Odoo model in one call. Returns matching records with the requested fields.
Inputs: model (required), limit, order, domain, +2 more.
odoo_top_customersA
Top customers ranked by invoiced revenue over a date range.
Inputs: date_to (required), date_from (required), limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Each tool has a distinct purpose: generic data access (search_read, read, count, fields, list_models) and specific business reports (overdue_invoices, sales_summary, low_stock, top_customers). No overlap between tools.
All tools follow the 'odoo_<action>' pattern in snake_case. Verbs are clear and consistent (search_read, read, count, list_models) and report names are descriptive nouns. No deviation.
With 9 tools, the set covers basic CRUD operations and several key business reports, which is reasonable for an Odoo MCP server. It is slightly on the lower side but not inadequate.
Significant gaps exist: no create, update, or delete operations for records. The server is largely read-only, which limits agents from performing many real-world tasks like updating invoices or creating sales orders.
Maintenance
Related MCP Connectors
Odoo MCP connector for ChatGPT and Claude: ask sales, invoices and stock in plain words. Read-only.
Connect your Odoo to Claude and ChatGPT: ask about sales, stock, customers and invoices.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Odoo virtual employee via MCP: query, create, modify records, workflows, PDFs, and activities.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceAn MCP server that enables AI assistants like Claude to interact with Odoo ERP systems through natural language, allowing users to search, create, update, and manage business data in their Odoo instance.39,303 PyPI413Mozilla Public 2.0
- FlicenseNot gradedqualityDmaintenanceEnables LLMs to interact with Odoo ERP systems through MCP protocol. Supports multi-server architecture with secure authentication, allowing natural language access to Odoo data, resources, and business operations.-
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with Odoo data using natural language to search, read, create, and update records. It acts as a secure bridge between MCP clients and Odoo instances version 17.0 through 19.0.11Apache 2.0
- FlicenseNot gradedqualityDmaintenanceMCP server to connect Claude with Odoo 18, enabling CRUD operations on Odoo models via natural language.2-