
Odoo
com.odooconsolePublished by odooconsole.comOfficial publisherv1.1.0Updated Oct 24, 2026
Odoo ERP for AI agents: hosted OAuth endpoint, gated writes, one endpoint for every instance.
Overview
Hosted Odoo ERP connector that lets an AI assistant query, create, update and delete Odoo records and inspect models and views.
- What you can do
- Search, count and bulk-export records with domain filters and pagination, and create, update or delete records by ID or run model methods such as confirm or post actions on them. Discover models and inspect their field definitions, defaults, views and window actions, and change field defaults or action settings. Run health diagnostics on the instance and show the current connection details.
- When to use it
- Useful when an assistant should work directly with an Odoo ERP instance: looking up sale orders, contacts or products, exporting data, creating or editing records, or exploring and adjusting model configuration. Read-only mode suits browsing production instances safely.
- Requirements
- A remote OAuth-authenticated endpoint, or the local script run with Python 3.11+ and uv (or fastmcp and httpx). The Odoo instance URL, database name and username, plus either a password or an API key, are supplied as environment variables.
Installation
In SourceWeft
- Open Odoo in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/com.odooconsole%2Fodoo/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"odoo": {
"type": "http",
"url": "https://mcp.odooconsole.com/mcp"
}
}
}README
Odoo MCP Server
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.
Quick Start
No virtualenv or pip install needed — the script has inline metadata that uv resolves automatically.
Configure in Claude Code
Add to your project's .mcp.json:
Or for Odoo 19+ with API key auth:
Configure in Cursor / Windsurf
Add to ~/.cursor/mcp.json or equivalent:
Environment Variables
Read-Only Mode
Set ODOO_READONLY=true to disable create, update, delete, and execute tools. Useful for safe browsing of production instances:
Available Tools
Core CRUD
Discovery
Model Customization
Example Usage
Once configured, ask your AI agent:
- "List all sale orders from this month"
- "Show me the fields on res.partner"
- "Create a new contact named Acme Corp"
- "Run a health check on the Odoo instance"
- "Export all products to a spreadsheet"
- "Confirm sale order 42"
Model Customization Examples
- "What's the default sort order for sale.order?"
- "Change the default invoice policy on products to 'delivery'"
- "Show me the form view for res.partner"
- "What window actions exist for account.move? Change the default sort to date desc"
- "List all custom fields on res.partner"
- "What fields are required on sale.order?"
Model Customization Tools — Detailed Reference
odoo_model_info
Returns everything about a model in one call, eliminating the need for multiple exploratory queries.
Returns:
default_order— the model's_orderattribute (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 fields
odoo_set_default
Manages field defaults via ir.default with proper JSON encoding. The most common source of agent errors when done manually.
The tool:
- Finds the field_id in ir.model.fields (validates the field exists)
- JSON-encodes the value automatically
- Creates or updates the ir.default record
- Returns before/after values for confirmation
odoo_get_view
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 view
odoo_modify_action
Changes 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.
How It Works
The server authenticates once at startup and maintains a persistent connection. All tools use the same authenticated session.
Requirements
- Python 3.11+
- uv (recommended) or
pip install fastmcp httpx
License
MIT
Source: README.md at commit 898089d
Tools
0Version history
1- v1.1.0LatestSep 16, 2026
Score
85% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts