Lint and fix Odoo addons: pylint-odoo and OCA checks, translation files and upgrades.
Runs on your machine from its package; the steps are below.
At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
uvx odoo-linter
MCP client config
{
"mcpServers": {
"odoo-lint": {
"command": "uvx",
"args": [
"odoo-linter"
]
}
}
}
Blazing fast Rust-native linter for Odoo modules. The command is called odl.
It checks Python files, manifests, XML and CSV data files and translation
(.po) files, with the checks of OCA's pylint-odoo, oca-checks-odoo-module
and oca-checks-po: same names, same messages, same results on their own
test suites. It also warns about files that do not belong in a module, such
as packages or database dumps committed by accident.
Linting all of OCA/sale-workflow 18.0, as OCA's pre-commit hook runs pylint-odoo. See benchmarks.
.po), and # pylint: disable= comments keep working.po files (odl check --fix, --diff to preview)pyproject.toml, including company-specific author
rulesodl server) with quick fixes,
and extensions for VS Code and Zeduv tool install odoo-linter # or: pipx install odoo-linter
cargo install odoo-lint # from crates.io
The PyPI package is called odoo-linter, because odoo-lint is too similar
to an existing PyPI project. On crates.io it is odoo-lint.
odl check path/to/addons # lint a directory
odl rule # list all rules
odl rule C8101 # explain a rule
odl check --fix # apply the safe fixes (--diff to preview)
Rules ported from pylint-odoo keep its codes, names and messages, and
# pylint: disable= comments keep working. Company-specific rules are
configured in your pyproject.toml:
[tool.odoo-lint]
target-version = "17.0"
[tool.odoo-lint.rules.manifest-required-author.mapping]
"acme_*" = "Acme Corp"
For AI coding agents there is an MCP server (odl mcp) and a post-edit hook,
packaged as plugins for Claude Code (/plugin marketplace add bosd/odoo-lint),
DeepSeek Harness and OpenCode.
See the documentation for all commands, configuration options and rules.
uv sync --all-groups # builds odl into .venv via maturin
uv run nox # pre-commit, fmt, clippy, cargo tests, CLI tests, docs
See the development guide.
MIT