| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 994 |
| Technical Name |
mcp_base |
| License | LGPL-3 |
| Website | https://github.com/chrisking94/odoo_addons/tree/main/mcp_base |
| Versions | 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 |
Odoo MCP Framework
Connect Odoo to AI Agents with One Decorator. Transform your Odoo into a Model Context Protocol (MCP) Server for seamless integration with Claude, ChatGPT, Cursor and other AI agents.
Simple. Elegant. Powerful.
@mcp_tool, AI Integration, MCP Server, Automation
The Simplest Way
@mcp_tool def search_customers(self, name: str): """Search customers by name.""" # That's it! No config, no schema - just decorate and go
Type hints → JSON Schema Docstring → Descriptions Zero configuration
Why @mcp_tool?
The simplest decorator to expose Odoo methods to AI agents. Just add it and go - no complex setup required.
One-Line Setup
Just @mcp_tool. Your methods are instantly AI-ready.
Zero Config
Automatic JSON schema from type hints. No manual work.
Smart Docs
Extracts parameter descriptions from docstrings automatically.
Production Ready
Streamable HTTP, JSON-RPC 2.0, enterprise-grade reliability.
Flexible Usage Styles
No Parentheses
Recommended for most cases@mcp_tool
Custom Description
Override docstring@mcp_tool("Description")
Keyword Argument
Explicit style@mcp_tool(description="...")
from odoo.addons.mcp_base import mcp_tool
from odoo import models
class ResPartner(models.Model):
_inherit = 'res.partner'
@mcp_tool
def search_customers(self, name: str, limit: int = 10):
"""Search customers by name.
:param name: Customer name to search for
:param limit: Maximum number of results
"""
partners = self.search([('name', 'ilike', name)], limit=limit)
return [
{'id': p.id, 'name': p.name, 'email': p.email}
for p in partners
]
What Happens Automatically:
Type hints → JSON Schema types
Docstring → Tool + param descriptions
Default values → Schema defaults
Key Features
-
Expose any Odoo model method to AI agents with
@mcp_tool - Automatic JSON schema from Python type annotations - zero manual work
- Smart docstring parsing extracts parameter descriptions automatically
- Built-in Streamable HTTP transport (MCP 2025-03-26)
- Works seamlessly with Claude, ChatGPT, Cursor, and other LLMs
- No external dependencies beyond Odoo core
Ideal for: AI-powered customer service bots, intelligent sales assistants, automated inventory management, smart reporting dashboards, natural language ERP queries, and any use case where you want AI to interact with your Odoo data.
Client Configuration
Connect your favorite AI clients to Odoo MCP Server in minutes.
ChatWise
Add MCP Server Streamable HTTP Enter URL
Cursor
Settings MCP Add Server Streamable HTTP
Claude Desktop
Edit config.json Add MCP server
Tip: Your MCP endpoint will be: http://your-odoo-server:8069/mcp
Security & Authentication
Protect your Odoo data with proper authentication. We strongly recommend using API key authentication for production environments.
Important: If the auth_api_key module is not installed, the MCP server runs with administrator privileges. This is convenient for development but NOT recommended for production.
Production Setup (Strongly Recommended)
Install auth_api_key
Get it from Odoo App Store
Create API Key
Settings Technical API Keys
Configure Client
Add Api-Key header to requests
Api-Key: your-api-key-here
With auth_api_key Installed
API key required User-level permissions Production-ready Secure
Without auth_api_key
No authentication Admin privileges Development only Security risk
Secure Your MCP Server Today
Install auth_api_key and protect your Odoo data with enterprise-grade authentication.
Ready to Make Your Odoo AI-Ready?
Install Odoo MCP Framework and expose your first method with @mcp_tool in under 2 minutes.
Please log in to comment on this module