| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 6491 |
| Technical Name |
odoo_remote_mcp |
| License | OPL-1 |
| Website | https://codemarchant.com |
| Versions | 16.0 17.0 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 6491 |
| Technical Name |
odoo_remote_mcp |
| License | OPL-1 |
| Website | https://codemarchant.com |
| Versions | 16.0 17.0 18.0 19.0 |
Remote MCP Server for Odoo
Connect AI Agents Like Claude, Gemini, and ChatGPT to Your Odoo Instance
Overview
Transform your Odoo instance into an AI-powered powerhouse with the Model Context Protocol (MCP) Server. This module enables AI agents like Claude, Gemini, and ChatGPT to securely connect and interact with your Odoo data and operations.
Implements a Remote MCP Server — no local installations, no additional dependencies. Simply install the module, enter your Odoo URL in a remote MCP supported client and authenticate. Authentication is tied to the Odoo user, fully respecting existing permissions and access rights.
Built with enterprise-grade security featuring OAuth 2.1 with PKCE, comprehensive audit logging, granular access controls, and 12 powerful tools for data access, code execution, and source code exploration. Create AI-generated interactive dashboards with Apache ECharts — describe what you want to visualize and let AI build it for you. Whether you're automating workflows, building AI-assisted reports, or enabling conversational ERP interactions, this module provides the foundation you need.
modelcontextprotocol.io/docs/develop/connect-remote-servers
How It Works
Install Module
Install from Odoo Apps
Add MCP Users
From user access rights, assign MCP Admin to yourself, MCP User to others
Configure Access
Navigate to MCP Server menu, set tool allowlists and model restrictions
Connect AI Client
Add your Odoo /mcp URL in your AI client
See It in Action
Watch how AI agents interact with Odoo through the MCP Server
Quick Start: Connect Your AI Agent
Works with any remote OAuth MCP-compatible AI agent. Replace the example URL with your Odoo instance URL + /mcp
Claude Code CLI
Add MCP server:
claude mcp add odoo --transport http https://your-odoo.com/mcp
Within Claude CLI, use /mcp command and authenticate
Claude Desktop / Claude.ai
Settings → Connectors → Add Custom Connector
https://your-odoo.com/mcp
Browser opens for OAuth → Authorize → Ready
Gemini CLI
Edit ~/.gemini/settings.json:
{
"mcpServers": {
"odoo": {
"url": "https://your-odoo.com/mcp"
}
}
}
Within Gemini CLI, use /mcp command and authenticate
ChatGPT (Developer Mode)*
Settings → Apps → Advanced → Enable Developer Mode → Create App
https://your-odoo.com/mcp
platform.openai.com/docs/guides/developer-mode
Optional: Install ripgrep for faster code search
# Ubuntu/Debian
sudo apt install ripgrep
# macOS
brew install ripgrep
Testing without HTTPS (ngrok)
# Expose local Odoo (port 8069) via HTTPS tunnel
ngrok http 8069
Set ngrok URL as web.base.url in System Parameters
Seamless AI Integration
Once connected, AI agents can naturally interact with your Odoo data through conversation. Ask questions, create records, run reports, and automate workflows — all through natural language.
"Find all open sales orders for customer X"
"Create 10 new dummy test contacts with this theme for a demo"
"Show me how sale order discounts are calculated in our pricing module using code search tool"
"Calculate monthly revenue by product category for the past 6 months"
"What products are low on stock?"
"Analyze sales trends from the past 12 months and build me an interactive dashboard"
"Confirm SO/00042, send a message to the customer, and reassign to salesperson Jane"
"Identify our top 10 customers by revenue and their most purchased products"
Claude using MCP tools to batch create contacts in Odoo
Claude using MCP tools to generate an interactive sales dashboard
Key Features
OAuth 2.1 Security
Enterprise-grade authentication with PKCE, Dynamic Client Registration (RFC 7591), token rotation, and RFC 8707 resource indicators for audience binding.
12 Built-in Tools
Comprehensive toolset including data discovery, CRUD operations, method execution, ORM code execution, and source code search capabilities.
Granular Access Control
Per-tool user allowlists, model and field-level restrictions, and role-based permissions ensure AI agents only access what they should.
Comprehensive Audit Logging
Every tool execution is logged with user, client, parameters, results, execution time, and IP address for complete traceability.
Prompt Templates
Create reusable prompt templates with argument substitution that appear as commands in MCP clients. Share across users or keep private.
Source Code Access
AI agents can search and read addon source code with ripgrep integration for lightning-fast searches across your entire codebase.
Enterprise-Grade Security
OAuth 2.1 + PKCE
Latest OAuth standard with Proof Key for Code Exchange prevents authorization code interception attacks.
Token Rotation
Refresh tokens are rotated on each use, limiting the window of opportunity for stolen tokens.
Audience Binding
RFC 8707 resource indicators bind tokens to your specific MCP server URL.
Scope-Based Access
OAuth scopes (read, write, execute) plus offline_access for refresh tokens.
Model-Level Restrictions
Block AI access to sensitive models like accounting, HR, or custom data.
Field-Level Restrictions
Hide sensitive fields like passwords, API keys, or personal data from AI agents.
Use Cases
Conversational ERP
Let users query Odoo data through natural language. "Show me last month's sales by region" becomes a simple conversation.
Workflow Automation
Build AI-powered automations that can read context, make decisions, and execute actions across your Odoo instance.
Development Assistant
AI agents can search and understand your addon code, helping with debugging, documentation, and code generation.
Data Analysis
Ask complex analytical questions and get insights from your Odoo data without writing reports or exports.
Training & Onboarding
Help new users learn Odoo by letting them ask questions and get contextual answers based on your actual data.
Custom Integrations
Build AI-powered integrations that can understand and manipulate Odoo data based on external triggers.
Intuitive Configuration Dashboard
The main configuration page serves as your command center for the MCP server. Access all settings, monitor connections, and manage security from a dedicated app menu that keeps MCP administration separate from other Odoo settings.
- Global enable/disable switch for the MCP server
- Smart buttons for quick navigation to clients, tokens, and execution logs
- Real-time connection status and endpoint URL display
- Configurable token expiry and session timeouts
- Execution logging with adjustable retention periods
- Automatic cleanup via scheduled actions
Main configuration page: Server settings, smart navigation buttons, and OAuth configuration
Tool Settings
Configure code execution limits, search result caps, and toggle detailed execution logging for debugging and compliance.
Tool Settings: Execution limits and logging options
Connection Settings
Module is self documenting, provides connection details/access token management
Connection Settings: Token expiry and session configuration
Per-Tool Access Control
Not every user needs the same level of access. The tool allowlist system lets you precisely control which users can execute each tool, from safe read-only operations to powerful code execution capabilities.
Read Tools
Auto-enabled for all MCP users. Safe data retrieval operations.
Write Tools
Require explicit allowlist membership. Create, update, delete records.
Execute Tools
Restricted to trusted power users. ORM code execution access.
Tool allowlists: Read tools (auto-enabled) and Write tools with user selection
Model & Field Restrictions
Beyond tool-level access, you can create fine-grained restrictions at the model and field level. Protect sensitive business data by blocking AI access to specific models like accounting entries, HR records, or any custom models containing confidential information.
Model Restrictions
- Create restriction groups for different user types
- Block specific CRUD operations per model
- Apply globally or to specific users
- Mass-add models via wizard
Field Restrictions
- Hide sensitive fields from AI responses
- Protect passwords, API keys, personal data
- Per-field CRUD control
- Works alongside Odoo's native ACLs
Model Access tab: Create and manage model restriction groups with user assignments
Model Group form: Configure restricted models with blocked CRUD operations, applies to specified toolsets.
Model Group form: Configure restricted fields, applies to specified toolsets.
Secure OAuth Authentication
When AI clients connect, users see a professional consent screen that clearly displays the requesting application and permission scopes. Only users with the MCP User group can authorize connections, and all sessions are tied directly to their Odoo account with full respect for existing access rights.
Read
Data access
Write
Modify records
Execute
Run code
OAuth consent screen: Clear permission display with easy authorize/deny actions
Complete Audit Trail
Every tool invocation is captured in detailed execution logs for compliance auditing, debugging, and security monitoring. Track exactly what AI agents are doing, with full parameter and result logging, timing metrics, and user attribution.
User & Client
Parameters
Results
Timing
Execution log detail: Full audit trail with tool name, parameters, results, timing, and IP address
Reusable Prompt Templates
Create powerful, standardized prompts that appear as selectable commands in AI clients.
Define argument placeholders with {{variable}} syntax, set required vs optional parameters,
and control visibility across your organization. Perfect for common queries, report generation,
or complex multi-step workflows.
Template Features
- Argument placeholders with defaults
- Required and optional parameters
- Rich text prompt content
Sharing Options
- Private: Only you can see it
- Shared: Specific users
- Public: All MCP users
Prompt template form: Define prompts with arguments, descriptions, and visibility settings
Templates in Claude: Prompts appear as selectable commands with argument inputs
Interactive ECharts Dashboards
Describe what you want to visualize — AI builds it for you
Vibe Coding for Dashboards
Creating data dashboards has never been easier. Simply describe what you want to see in natural language, and AI will generate the complete dashboard — data queries, chart configurations, and styling included. No coding required, no complex report builders to learn.
Powered by Apache ECharts, one of the most powerful and flexible charting libraries available. Build everything from simple bar charts to complex multi-axis dashboards with drill-down capabilities.
A Blank Canvas for AI
Unlike rigid dashboard builders with fixed widgets and predefined layouts, ECharts provides a blank canvas where AI has complete creative freedom. Any chart type, any layout, any data combination — if you can describe it, AI can build it.
No Configuration Lock-in
Your dashboards are stored as pure Python data code and JSON chart options — no proprietary formats, no black-box configurations. Easily inspect, modify, or migrate your dashboards. Full transparency and complete control over your visualizations.
Perfect For
Sales Performance
Track revenue, trends, and quotas
KPI Monitoring
Real-time business metrics
Non-Technical Users
No coding skills needed
Ad-Hoc Reporting
Quick insights on demand
How It Works
Describe Your Dashboard
"Show me monthly sales by product category for the past 6 months with a bar chart and trend line"
AI Generates Everything
Data queries, chart options, styling — all created automatically using the create_echart tool
Share Instantly
Get a shareable link immediately, or share with specific users and groups within Odoo
Browse and manage all your dashboards from the kanban view
Dashboard Configuration
Full control over data queries and chart options
Data Code tab: Python code for data retrieval using safe_eval (same environment as execute_orm)
Sharing tab: Generate public links or share with specific users and groups
The resulting interactive dashboard with multiple chart types
Best Practices
- Build on staging first: Create and test dashboards on development or staging environments
- Validate before production: Verify data accuracy and performance before sharing widely
- Use descriptive names: Help others understand what each dashboard shows
- Review data code: Data code uses safe_eval with full ORM access — same security as execute_orm
Full Data Isolation Support
With the "Expose EChart Data in Tool Response" toggle disabled in configuration, AI agents only generate the dashboard code — all code execution happens on your Odoo server. The AI agent never sees the actual data used in your charts, providing complete data isolation while still enabling AI-powered dashboard creation.
Advanced: Extensions & Custom JavaScript
Unlock 3D globes, word clouds, liquid gauges, and interactive event handlers
ECharts Extensions
Default extensions loaded automatically:
- echarts-gl — 3D charts, globes, WebGL
- echarts-wordcloud — Word cloud visualizations
- echarts-liquidfill — Liquid fill gauges
- echarts-stat — Statistical transforms
Pre-Init JavaScript
Code that runs before chart renders:
echarts.registerMap()— Geographic mapsecharts.registerTheme()— Custom themesecharts.registerTransform()— Data transforms
Post-Init JavaScript
Code that runs after chart renders:
chart.on('click', ...)— Event handlers- Drill-down navigation logic
- Export/download buttons
- External integrations
Featured: 3D Globe Command Center
Turn your Odoo data into a stunning global visualization
Try This Prompt
Use the built-in "3D Globe Command Center" prompt template, or paste this into your AI client:
Create a cyberpunk-style 3D globe command center visualization using echarts-gl.
FOR GLOBE TEXTURES - use these CORS-friendly URLs (jsdelivr CDN):
- Earth texture: https://cdn.jsdelivr.net/gh/mrdoob/three.js/examples/textures/planets/earth_atmos_2048.jpg
- Starfield background: https://cdn.jsdelivr.net/gh/mrdoob/three.js/examples/textures/planets/starfield.png
DO NOT use echarts.apache.org URLs - they block CORS.
Pull REAL data from Odoo:
- Get all partners/customers grouped by country
- Get recent sale orders from the last 30 days grouped by partner country
- Get total revenue per country
Show glowing scatter points at each country with customers, rising 3D bar columns from top 5 revenue countries, and animated golden arcs flowing back to company HQ.
Add slow auto-rotation, atmosphere glow, and click handler showing country stats.
3D Globe: Real-time sales data visualized with glowing points, 3D bars, and animated arcs
echarts.apache.org/en/option.html
echarts.apache.org/examples/en/index.html
12 Powerful Tools
Everything AI agents need to interact with Odoo
Read Tools (Auto-enabled)
- list_models — Discover models with regex filtering
- get_model_schema — Get field definitions with filters
- search_read — Search records with domain filters
- read_record — Read single record by ID
Binary fields automatically returned as embedded resources
Write Tools (Allowlist Required)
- create_record — Create one or more records
- update_record — Bulk update with same or different values
- delete_record — Delete records by ID
- execute_method — Call model methods (action_confirm, etc.)
Protected by user allowlists and model restrictions
Code Tools (Allowlist Required)
- code_search — Search addon source with ripgrep
- code_read — Read source files with pagination
Ripgrep integration for blazing fast searches (Python fallback included)
Advanced Tools (Restricted)
- execute_orm — Execute Python code with safe_eval
- create_echart — Create persistent ECharts dashboards
Full ORM access with env context — only for trusted users
Technical Details
MCP Protocol
Implements MCP 2025-11-25 specification with Streamable HTTP transport
OAuth Discovery
RFC 8414 authorization server and RFC 9728 protected resource metadata
Resource Templates
MCP resource templates for attachments and binary fields
Ripgrep Integration
Optional ripgrep for 10x faster code searches (Python fallback included)
Multi-Database Support
For environments with multiple databases on a single Odoo URL, use path-based routing to connect AI agents to specific databases.
Configuration Required
Add to odoo.conf:
server_wide_modules = web,base,odoo_remote_mcp
Connection URL Format
Include database name in path:
https://your-odoo.com/<database>/mcp
Example: Connect to multiple databases from same server
# Claude Code CLI - add multiple databases
claude mcp add prod --transport http https://odoo.company.com/production/mcp
claude mcp add staging --transport http https://odoo.company.com/staging/mcp
Support & Documentation
We're here to help you succeed with MCP integration.
Documentation
Built-in docs at /mcp/docs
Email Support
support@codemarchant.com
Website
codemarchant.com
Ready to Connect AI to Your Odoo?
Install the MCP Server module and unlock the power of AI-assisted ERP management.
MCP Server for Odoo
Enable AI agents like Claude, Gemini, and ChatGPT to interact with your Odoo instance via the Model Context Protocol (MCP).
Setup
- Install the module
- Add users to the MCP User group
- Configure tool allowlists in MCP Server → Configuration
- Connect your AI client (see Quick Connect below)
Quick Connect
Replace https://your-odoo.com with your Odoo instance URL.
Claude Code CLI:
claude mcp add odoo --transport http https://your-odoo.com/mcp within claude cli use /mcp command and authenticate.
Claude Desktop / Claude.ai
Settings → Connectors → Add Custom Connector → Enter URL:
https://your-odoo.com/mcp
Browser opens for OAuth → Authorize → Ready
Guide: https://modelcontextprotocol.io/docs/develop/connect-remote-servers#connecting-to-a-remote-mcp-server
Gemini CLI
Edit ~/.gemini/settings.json:
{
"mcpServers": {
"odoo": {
"url": "https://your-odoo.com/mcp"
}
}
}
within gemini cli, use /mcp command and authenticate
ChatGPT (Developer Mode)
In chatgpt settings → Apps menu → Advanced settings → Enable Developer Mode → Create app and add MCP server URL:
https://your-odoo.com/mcp
Browser opens for OAuth → Authorize → Ready
Guide: https://platform.openai.com/docs/guides/developer-mode
Requirements
- HTTPS required for production
- ripgrep (optional) - Faster code search
Install ripgrep
# Ubuntu/Debian sudo apt install ripgrep # macOS brew install ripgrep # Windows choco install ripgrep
Testing without HTTPS (ngrok)
For local development without HTTPS:
# Expose local Odoo via HTTPS tunnel ngrok http 8069 # Use generated URL, set as web base url in system parameters: https://xxx.ngrok-free.app/mcp
Endpoints
- /mcp - MCP protocol endpoint
- /mcp/docs - Built-in documentation
- /.well-known/oauth-protected-resource - OAuth resource metadata
- /.well-known/oauth-authorization-server - OAuth server metadata
Multi-Database Support
For environments with multiple databases served from a single Odoo URL, the module supports path-based database routing.
Requirements
Add the module to server_wide_modules in your odoo.conf:
server_wide_modules = web,base,odoo_remote_mcp
Connection URLs
Use the database name in the URL path when connecting:
https://your-odoo.com/<database>/mcp
Examples
Claude Code CLI:
claude mcp add production --transport http https://your-odoo.com/production_db/mcp claude mcp add staging --transport http https://your-odoo.com/staging_db/mcp
Gemini CLI (~/.gemini/settings.json):
{
"mcpServers": {
"odoo_production": {
"url": "https://your-odoo.com/production_db/mcp"
},
"odoo_staging": {
"url": "https://your-odoo.com/staging_db/mcp"
}
}
}
Path-based Endpoints
All endpoints support the database path prefix:
- /<database>/mcp - MCP protocol endpoint
- /<database>/mcp/docs - Built-in documentation
- /<database>/oauth/authorize - OAuth authorization
- /<database>/oauth/token - Token endpoint
- /.well-known/oauth-protected-resource/<database>/mcp - Resource metadata
Changelog
- 16.0.2.1.0 (Advanced ECharts)
Extensions & Custom JavaScript Support
- ECharts extensions: 4 popular extensions loaded by default (echarts-gl, wordcloud, liquidfill, stat)
- Pre-init JavaScript: code that runs before chart renders (registerMap, registerTheme, registerTransform)
- Post-init JavaScript: code that runs after chart renders (event handlers, drill-down, exports)
- New prompt templates: "3D Globe Command Center" and "Word Cloud Dashboard"
- Advanced tab in EChart form view for extension and JavaScript configuration
- CORS-friendly texture URLs documented for 3D globe visualizations
- 16.0.2.0.0 (Major Release)
ECharts Interactive Dashboards
- New create_echart tool for AI-generated dashboards using Apache ECharts
- Vibe coding for dashboards: describe what you want to visualize, AI builds it
- Blank canvas for AI: no rigid widgets, complete creative freedom
- No configuration lock-in: pure Python data code and JSON chart options
- Full data isolation support: toggle "Expose EChart Data in Tool Response" to keep data on server
- Flexible sharing: public links via secure tokens or internal user/group sharing
- Tool count increased from 11 to 12
- 16.0.1.1.2
- Improved transaction handling: tool execution now uses savepoints to rollback partial changes on failure
- Added full traceback logging to execution logs for easier debugging
- Defensive user_id capture before tool execution
- 16.0.1.1.1
- Fixed "Invalid access mode" error affecting Calendar and other views
- 16.0.1.1.0
- Added support for multi-database environments
- Minor fixes
- 16.0.1.0.0
- Initial release
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module