Odoo Model Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Odoo Model Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
MCP server that exposes Odoo's model registry (fields, inheritance, methods) without needing a database connection.
Point it at any Odoo project directory and get instant, structured answers about models, fields, method override chains, and inheritance graphs — powered by Odoo's own MetaModel registry loaded in-memory.
Status: Pre-alpha (0.1.0a1). Works with Odoo 16–19.
venv, loading the full model registry once (~4 seconds).
Each project gets its own isolated worker process, so you can work with multiple Odoo versions simultaneously without conflicts.
# With uv (recommended)
uv tool install odoo-model-mcp
# With pip
pip install odoo-model-mcpAdd to your ~/.claude.json (global) or project .claude/settings.local.json:
{
"mcpServers": {
"odoo-model-registry": {
"type": "stdio",
"command": "odoo-model-mcp",
"args": []
}
}
}If installed with uv and not on PATH:
{
"mcpServers": {
"odoo-model-registry": {
"type": "stdio",
"command": "uv",
"args": ["run", "--project", "/path/to/odoo-model-mcp", "odoo-model-mcp"]
}
}
}All tools accept a project_path pointing to the root of an Odoo project. Addons paths and the Odoo source location are auto-detected from the project structure (or can be overridden with addons_paths). Modules can be excluded by name with exclude_modules (useful when a module has unresolvable Python dependencies).
detect_project_infoDetect an Odoo project's structure without loading the registry. Returns odoo_path, addons_paths, python_bin, and odoo_version.
search_modelsSearch models by name or description substring.
search_models(project_path="/path/to/project", query="sale.order")model_infoFull metadata for a model: all fields (with types, compute methods, related fields, module overrides), inheritance chain, extending modules (from MRO), and decorated methods.
model_info(project_path="/path/to/project", model_name="sale.order")field_infoDetailed info for a single field: type, compute method, depends, store, index, related, groups, and which modules defined or overrode it.
field_info(project_path="/path/to/project", model_name="sale.order", field_name="amount_total")method_overridesOverride chain for a method across the MRO, with source file locations (file path and line number) for each override.
method_overrides(project_path="/path/to/project", model_name="sale.order", method_name="_compute_amounts")model_graphInheritance graph around a model: which modules extend it (same _name), mixin parents (different _name), delegation parents (_inherits), and child models that inherit from it.
model_graph(project_path="/path/to/project", model_name="sale.order")list_modelsLightweight listing of every model in the registry (name, description, module, field count, abstract/transient flags). Use when you need a catalog but not per-field detail.
list_models(project_path="/path/to/project")dump_registryBulk-export the entire registry as JSONL to a file on disk. One call replaces thousands of per-model round trips; intended for downstream pipelines (indexers, embedders, static analysis). Writes records of two types:
{"type": "model", "data": {...model_info...}} — one per model{"type": "method_overrides", "model": "...", "method": "...", "overrides": [...]} —one per decorated method, with file/line for each override in the MRO chain
dump_registry(project_path="/path/to/project", output_path="/tmp/registry.jsonl")The server detects project structure automatically:
odoo-bin or the odoo/ Python packageodoo.conf / .odoorc, or scans for directoriescontaining modules (subdirs with __manifest__.py)
.venv/, venv/, env/.env (ODOO_VERSION=) or odoo/release.pyClaude Code
|
| stdio (MCP protocol)
v
odoo-model-mcp server (lightweight Python process)
|
| Unix domain socket (JSON lines)
v
Worker process (project's own venv)
- Loads Odoo registry via MetaModel._build_model()
- Resolves full inheritance (MRO, __bases__, _build_model_attributes)
- Serves queries from in-memory registrygit clone https://github.com/bemade/odoo-model-mcp.git
cd odoo-model-mcp
uv sync
uv run pytestLGPL-3.0-only
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.