odoo-mcp-readonly
Provides read-only MCP tools for Odoo, allowing AI clients to list and describe models, search and read records, and count records in an Odoo database, subject to the connected user's access rights and allowed-model restrictions.
MCP Connector Read-only for Odoo
A small Odoo module that adds a read-only Model Context Protocol (MCP) server to your own Odoo. Claude, ChatGPT-compatible clients, Cursor or any other MCP client can then list models, read their fields, search, read and count records in your database.
There is no create, write or delete tool. The AI signs in with an Odoo API key and works as that user, so normal Odoo access rights and record rules apply.
Works on Odoo 15.0, 16.0, 17.0, 18.0, 19.0 and 20.0 (one branch per version, module folder at the root). Licence: LGPL-3.

What the AI can do: 5 tools
Tool | What it does |
| Lists the models the connected user can read |
| Fields of a model, with types and labels |
| Search with a domain, choose fields, order and limit |
| Read records by id |
| Count records matching a domain |
Example questions: "How many open quotations do we have?", "Show me the last 10 invoices for Gemini Furniture".
Related MCP server: Odoo Claude MCP
Install
Pick the branch that matches your Odoo version (for example
19.0).Copy the
bs_mcp_readonlyfolder into your addons path (or add this repo toaddons_path).Restart Odoo, turn on developer mode, then Apps > Update Apps List.
Search for "MCP Connector Read-only" and click Install.
git clone --branch 19.0 --single-branch https://github.com/DuncanBentley/odoo-mcp-readonly.gitConnect your AI client
First create an API key: in Odoo open your user preferences, Account Security tab, New API Key. Use a dedicated user for the AI if you can, and give that user only the access it should have.
The server URL is https://your-odoo.example.com/mcp/readonly.
Claude Code
claude mcp add --transport http odoo https://your-odoo.example.com/mcp/readonly \
--header "Authorization: Bearer <odoo api key>"Claude Desktop (claude_desktop_config.json, using the mcp-remote bridge)
{
"mcpServers": {
"odoo": {
"command": "npx",
"args": [
"mcp-remote",
"https://your-odoo.example.com/mcp/readonly",
"--header",
"Authorization: Bearer ${ODOO_API_KEY}"
],
"env": { "ODOO_API_KEY": "<odoo api key>" }
}
}
}Cursor (~/.cursor/mcp.json or .cursor/mcp.json)
{
"mcpServers": {
"odoo": {
"url": "https://your-odoo.example.com/mcp/readonly",
"headers": { "Authorization": "Bearer <odoo api key>" }
}
}
}Any other client that speaks MCP over HTTP: POST JSON-RPC to the URL above with the header Authorization: Bearer <odoo api key>.
Security notes
Read-only. No tool creates, changes or deletes data.
API key. The key belongs to one Odoo user. Revoke it in the user's preferences at any time. Use HTTPS so the key is not sent in clear text.
Access rights apply. The AI sees what that user could open in Odoo: groups, record rules and multi-company rules all count.
Allowed models. Under Settings > MCP Connector Read-only (administrators only) you can list the only models the AI may read. Fields that point to models outside the list come back as ids only, and searches that reach into a model that is not allowed are refused. Leave the list empty to allow every model the user can read.
Record limit. Max records per call is 200 by default (1 to 5000).
Whatever the AI reads is sent to the AI provider you chose. Decide which models and users are fine for that.
Tests
The module ships automated tests (tests/test_mcp.py) that run on all six Odoo versions: odoo-bin -d test --test-tags /bs_mcp_readonly -i bs_mcp_readonly --stop-after-init.
Need approved writes, masking and an audit log?
This connector only reads. If you want AI to also create or change records, but only after a person approves each change, with field masking, rate limits and a full audit log, see our paid MCP Server for Claude on the Odoo Apps store: https://apps.odoo.com/apps/modules/19.0/mcp_gatekeeper
About
Built by Bentley Studios. Issues and pull requests are welcome.
This server cannot be deployed
Maintenance
Related MCP Connectors
Odoo MCP connector for ChatGPT and Claude: ask sales, invoices and stock in plain words. Read-only.
Odoo virtual employee via MCP: query, create, modify records, workflows, PDFs, and activities.
Connect your Odoo to Claude and ChatGPT: ask about sales, stock, customers and invoices.
Read, write and run Odoo actions from any AI app, as each user, with approval rules per colleague.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with Odoo data using natural language to search, read, create, and update records. It acts as a secure bridge between MCP clients and Odoo instances version 17.0 through 19.0.11Apache 2.0
- AlicenseCqualityAmaintenanceOdoo MCP server for Claude Code and Claude.ai — turn any self-hosted Odoo instance (15 → 19) into an AI assistant via the Model Context Protocol. 197+ tools, multi-tenant, Bulgaria localization (НАП, ДДС, ЕИК) included.13851AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceProvides read-only access to Odoo databases via OdooRPC, allowing AI assistants to query and analyze Odoo data through the MCP protocol.1MIT
- AlicenseNot gradedqualityDmaintenanceA read-only MCP server that enables AI assistants to query Odoo instances via XML-RPC, supporting search, read, count, and field inspection without requiring custom modules.42 PyPI1Mozilla Public 2.0