odoo-lint について
odoo-lintは、Odoo開発者やOCAチェックを使うチーム向けのRust製モジュールリンターです。複数のファイル形式を検査し、自動修正やアップグレードチェックを備え、コーディングエージェント用のMCPサーバーも含みます。
主な機能
- 01Python、マニフェスト、XML、CSV、PO、JavaScriptの検査
- 02pylint-odooとOCAチェック結果との一致
- 03安全・非安全な自動修正
- 04旧バージョンのOdooの残存箇所を検出
- 05プロジェクト別・企業別ルールの設定
- 06CI出力とエディター用言語サーバー
活用シーン
- 01変更のマージ前にOdooアドオンを検査
- 02翻訳ファイルやモジュールファイルの修正
- 03Odooのアップグレード時に旧式の記述を検出
- 04編集後にコーディングエージェントへ検査結果を提供
MCP 対応
`odl mcp`から利用できるMCPサーバーを内蔵し、AIコーディングエージェントに機能を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
odoo-lint
Odoo モジュール向けの、Rust ネイティブで非常に高速なリンターです。コマンド名は odl です。
Python ファイル、マニフェスト、XML および CSV データファイル、翻訳(.po)ファイル、JavaScript(OWL コンポーネントとテンプレート)をチェックします。OCA の pylint-odoo、oca-checks-odoo-module、oca-checks-po のチェックを備えており、それぞれのテストスイートで同じ名前、同じメッセージ、同じ結果になります。また、誤ってコミットされたパッケージやデータベースダンプなど、モジュールに含めるべきでないファイルについても警告します。
OCA の pre-commit フックで pylint-odoo を実行した場合と同じ方法で、OCA/sale-workflow 18.0 全体をリンティングしています。ベンチマークをご覧ください。
- ⚡ pylint-odoo を使った pylint より 250 倍高速で、単一コアでも 30 倍高速です
- ⚖️ pylint-odoo と OCA の pre-commit チェックをそのまま置き換え可能:コード、名前、メッセージは同じで、各チェックはそれぞれのテストスイートで一致します
(互換性)。
# pylint: disable=コメントも引き続き機能します - 🔧 Python、マニフェスト、XML、
.poファイル向けの 自動修正。Ruff と同様に安全な修正と安全でない修正に対応します(odl check --fix、プレビューには--diff) - ⬆️ アップグレードチェック:Odoo 15.0 以降では機能しない Bootstrap 4 クラスなど、古い Odoo バージョンの残骸を修正できます
- 🌍 Odoo のローダー動作を予測する翻訳チェック:Odoo が「malformed po file」とログに出す理由や、翻訳が表示されない理由を特定します
- 📦 pip、uv、pipx でインストール可能:Linux、macOS、Windows 向けのビルド済みホイールに含まれる単一バイナリで、Python 依存関係はありません
- 🛠️ 会社固有の作成者ルールを含め、
pyproject.tomlで設定できます - 📋 CI 向け出力:GitHub アノテーション、GitLab Code Quality、SARIF、JSON
- ✍️ エディターで使用可能:クイックフィックス対応の言語サーバー(
odl server)と、VS Code および Zed 用の拡張機能 - 🤖 AI コーディングエージェント向け:MCP サーバーと、エージェントが編集するすべてのファイルをリンティングする Claude Code、DeepSeek Harness、OpenCode 用のプラグイン
- 🪝 Git フック:pre-commit と hk
インストール
uv tool install odoo-linter # or: pipx install odoo-linter
cargo install odoo-lint # from crates.io
PyPI パッケージ名は odoo-linter です。odoo-lint は既存の PyPI プロジェクト名と似すぎているためです。crates.io では 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)
pylint-odoo から移植されたルールでは、コード、名前、メッセージが引き継がれており、
# pylint: disable= コメントも引き続き機能します。会社固有のルールは
pyproject.toml で設定できます。
[tool.odoo-lint]
target-version = "17.0"
[tool.odoo-lint.rules.manifest-required-author.mapping]
"acme_*" = "Acme Corp"
AI コーディングエージェント向けに、MCP サーバー(odl mcp)と編集後フックを用意しています。
Claude Code(/plugin marketplace add GetFluvo/odoo-lint)、DeepSeek Harness、OpenCode 向けのプラグインとしてパッケージ化されています。
odoo-lint を初めてお使いですか?はじめにをご覧ください。 OCA の pre-commit フックから移行する場合は、 OCA ツールからの移行をお読みください。 すべてのコマンド、設定オプション、ルールについては、 ドキュメントをご覧ください。
開発
uv sync --all-groups # builds odl into .venv via maturin
uv run nox # pre-commit, fmt, clippy, cargo tests, CLI tests, docs
CONTRIBUTING.mdと開発ガイドをご覧ください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。