Odoo ERP for AI agents: hosted OAuth endpoint, gated writes, one endpoint for every instance.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Odoo.
odoo_search_readQuery records with domain filters, field selection, pagination
odoo_search_countCount matching records without fetching data
odoo_exportBulk export up to 2000 records per call for spreadsheets
odoo_createCreate new records
odoo_updateUpdate existing records by ID
odoo_deleteDelete records by ID
An MCP (Model Context Protocol) server that connects AI agents to Odoo ERP instances. Works with Claude Code, Cursor, Windsurf, and any MCP-compatible client.
Supports Odoo 17-18 (JSON-RPC) and Odoo 19+ (JSON-2 API) β auto-detects the best protocol.

No virtualenv or pip install needed β the script has inline metadata that uv resolves automatically.
Add to your project's .mcp.json:
Or for Odoo 19+ with API key auth:
Add to ~/.cursor/mcp.json or equivalent:
| Variable | Required | Description |
|---|---|---|
ODOO_URL | Yes | Odoo instance URL |
ODOO_DB | Yes | Database name |
ODOO_USER | Yes | Login username |
ODOO_PASSWORD | One of these | Password (Odoo 17-18) |
ODOO_API_KEY | required | API key (Odoo 19+, preferred) |
ODOO_READONLY | No | Set to true to disable all write operations |
Set ODOO_READONLY=true to disable create, update, delete, and execute tools. Useful for safe browsing of production instances:
| Tool | Description |
|---|---|
odoo_search_read | Query records with domain filters, field selection, pagination |
odoo_search_count | Count matching records without fetching data |
odoo_export | Bulk export up to 2000 records per call for spreadsheets |
odoo_create | Create new records |
odoo_update | Update existing records by ID |
odoo_delete | Delete records by ID |
odoo_execute | Run any model method (action_confirm, action_post, etc.) |
| Tool | Description |
|---|---|
odoo_list_models | Discover available models with keyword filter |
odoo_get_fields | Inspect field definitions for any model |
odoo_doctor | Health diagnostics (version, modules, users, crons, errors) |
odoo_connection_info | Show current connection details |
| Tool | Description |
|---|---|
odoo_model_info | Get comprehensive model metadata in one call β fields, views, actions, defaults, sort order |
odoo_set_default | Set, update, or clear a field's default value (handles ir.default + JSON encoding) |
odoo_get_view | Get the fully rendered (merged) form/tree/search view XML |
odoo_modify_action | Change a window action's domain, context, sort order, limit, or view modes |
Once configured, ask your AI agent:
Returns everything about a model in one call, eliminating the need for multiple exploratory queries.
Returns:
default_order β the model's _order attribute (e.g. "date_order desc, id desc")rec_name β the field used for display name in dropdownsfield_count β total number of fieldsfields_by_type β field count grouped by type (many2one: 12, char: 8, ...)custom_fields β user-created fields (x_ prefix or state=manual)relational_fields β all Many2one, One2many, Many2many with their targetsrequired_fields β fields that must be filledviews β base views (form, tree, search) with IDs and prioritiesactions β window actions with their domain, context, and view modesdefaults β current ir.default values set for this model's fieldsManages field defaults via ir.default with proper JSON encoding. The most common source of agent errors when done manually.
The tool:
Returns the fully rendered view XML after all inheritance is applied β what the user actually sees, not the raw fragments stored in ir.ui.view.
Returns:
arch β the complete merged XMLview_id β the base view IDfields_in_view β list of field names present in the viewChanges how a model appears in the UI by modifying its window action (ir.actions.act_window).
The tool returns before/after values so you can verify what changed.
The server authenticates once at startup and maintains a persistent connection. All tools use the same authenticated session.
pip install fastmcp httpxMIT
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/odoo)<a href="https://allmcps.com/mcp/odoo"><img src="https://allmcps.com/api/badge/odoo?style=directory" alt="Odoo on AllMCPs" /></a>