| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/ai |
| GIT | |
| GIT | https://github.com/OCA/ai.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/ai/tree/16.0/ai_oca_mcp |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Dixmit |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Dixmit |
| COMMITTERS | |
| COMMITTERS | Enric Tobella, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/ai |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:12:02 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/ai: - ai_tool odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module exposes Odoo AI tools as an MCP (Model Context Protocol) server, allowing external AI clients such as n8n or custom agents to call Odoo functions via the standardized MCP protocol. Authentication is handled via per-client API keys. Note: Claude Desktop requires OAuth 2.0, which is not supported directly by this module. An extension could be required. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
mcp_server_form_view |
mcp.server | form | New | |
mcp_server_key_add_form_view |
mcp.server.key.add | form | Inherits mcp_server_key_form_view | |
mcp_server_key_form_view |
mcp.server.key | form | New | |
mcp_server_key_tree_view |
mcp.server.key | tree | New | |
mcp_server_log_form_view |
mcp.server.log | form | New | |
mcp_server_log_search_view |
mcp.server.log | search | New | |
mcp_server_log_tree_view |
mcp.server.log | tree | New | |
mcp_server_search_view |
mcp.server | search | New | |
mcp_server_tree_view |
mcp.server | tree | New |
active
Boolean
default=True
description
Text
key
Char
copy=False
default=<expr>
groups='base.group_system'
required=True
key_ids
One2many → mcp.server.key
string='Access Keys'
args: 'mcp.server.key', 'server_id'
name
Char
tool_ids
Many2many → ai.tool
domain=[('kind', '=', 'generic')]
string='Tools'
args: 'ai.tool'
url
Char
compute='_compute_url'
groups='base.group_system'
No public methods.
expiration_date
Datetime
expired_on
Datetime
readonly=True
hashed_key
Char
copy=False
name
Char
required=True
server_id
Many2one → mcp.server
ondelete='cascade'
required=True
args: 'mcp.server'
state
Selection
default='active'
args: [('active', 'Active'), ('expired', 'Expired')]
user_id
Many2one → res.users
default=<expr>
args: 'res.users'
expire_key(self)
key
Char
readonly=True
string='Key to use'
key_id
Many2one → mcp.server.key
ondelete='cascade'
required=True
args: 'mcp.server.key'
server_id
Many2one → mcp.server
ondelete='cascade'
required=True
args: 'mcp.server'
expire_key(self)
generate_key(self)
date
Datetime
default=fields.Datetime.now
index=True
error
Text
request
Text
response
Text
server_id
Many2one → mcp.server
ondelete='cascade'
required=True
args: 'mcp.server'
server_key_id
Many2one → mcp.server.key
ondelete='cascade'
required=True
args: 'mcp.server.key'
No public methods.
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/ai |
| PULL REQUEST | |
| PULL REQUEST | [18.0] [MIG] ai_oca_mcp (#76) |
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/ai |
| PULL REQUEST | |
| PULL REQUEST | [MIG] ai_oca_mcp: migration to 17.0 (#85) |