Daily updates from Odoo
Friday, June 26, 2026
1 change
New functionality added to Odoo
This update adds an MCP server so Odoo can connect to AI clients like Gemini CLI, Claude Code, and n8n. It lets approved users read data, generate summaries, and create or update records through their normal Odoo permissions, enabling more advanced automated workflows.
Original PR description
[ADD] ai_mcp: add Odoo MCP server Purpose: To give users the ability to connect odoo to any MCP client (Gemini CLI, Claude Code, n8n, etc) and to make them able to define complex automations using…
[ADD] ai_mcp: add Odoo MCP server
Purpose:
To give users the ability to connect odoo to any MCP client (Gemini CLI, Claude Code, n8n, etc) and to make them able to define complex automations using LLMs.
Capabilities:
- Read: The MCP server provides search and read_group tools to allow MCP clients to read data and generate summaries/analytics.
- Write: The MCP server provides the write tool to allow MCP clients to create and update records in the database.
How to use
- The user has to generate an API key which is used to authenticate the user so that the MCP server can execute tools based on user permissions.
- Login into Odoo with your username and password.
- Click on the user image on the top right.
- Go to My preferences and then select the Security tab.
- Click on Add Api Key to generate the API key. Choose the scope as MCP.
- To connect to the MCP server, you will add the following to the MCP client config. Replace the database_url with the url of your Odoo database and api_key with the API key generated in step 1. The structure can change a bit based on the MCP client but you will always need the URL and headers.
```json
{
"mcpServers": {
"Odoo": {
"type": "http",
"url": "<database_url>/mcp",
"headers": {
"Authorization": "Bearer <api_key>"
}
}
}
}
```
This commit introduces a dedicated bearer_mcp auth method on the MCP HTTP route that validates API keys strictly against scope='mcp', preventing RPC-scoped tokens from accessing the MCP server and vice versa.
This commit also adds an access check to _ai_tool_get_fields to make sure that the current user has access to the model before retrieving the fields.
Community PR: https://github.com/odoo/odoo/pull/268589
Upgrade PR: https://github.com/odoo/upgrade/pull/10432
task-6139938