mcpField
O
odoo-lint

odoo-lint

ローカル
odoo-lint.readthedocs.io開発ツール01 日前に更新

odoo-lint について

odoo-lint は、Odoo モジュール向けの Rust 製チェッカーで、開発者や保守担当者を対象としています。複数のファイル形式と OCA のチェックに対応し、自動修正と MCP サーバーも備えています。

主な機能

  1. 01Python、マニフェスト、XML、CSV、PO、JavaScript の検査
  2. 02pylint-odoo と OCA チェックとの互換性
  3. 03修正の適用と差分プレビュー
  4. 04旧バージョン Odoo の残存記述の検出
  5. 05ランゲージサーバーとエディターでのクイック修正
  6. 06CI 出力と MCP 対応

活用シーン

  1. 01提出前の Odoo モジュール検査
  2. 02コードや翻訳ファイルの一括修正
  3. 03アップグレード後に残る古い記述の確認
  4. 04編集後にコーディングエージェントで検査

MCP 対応

`odl mcp` で利用できる MCP サーバーが含まれ、MCP クライアントやコーディングエージェントから検査機能を呼び出せます。README には個別の MCP ツールは記載されていません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"bosd-odoo-lint": {
"command": "uvx",
"args": [
"odoo-linter"
]
}
}
}
起動コマンドuvx odoo-linter

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiodoo-linter0.1.0a19

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

odoo-lint のロゴ

odoo-lint

PyPI crates.io テスト OCA との互換性 ドキュメント ライセンス:MIT

Odoo モジュール向けの超高速な Rust ネイティブリンターです。コマンド名は odl です。

Python ファイル、マニフェスト、XML および CSV データファイル、翻訳(.po)ファイル、JavaScript(OWL コンポーネントとテンプレート)をチェックします。OCA の pylint-odoo、oca-checks-odoo-module、oca-checks-po のチェックに対応しており、それぞれのテストスイートで、チェック名、メッセージ、結果が一致します。また、誤ってコミットされたパッケージやデータベースダンプなど、モジュールに属さないファイルについても警告します。

棒グラフ:OCA/sale-workflow の lint に odoo-lint は 0.10 秒、pylint-odoo は 25.8 秒かかります

OCA の pre-commit フックが pylint-odoo を実行する方法で、OCA/sale-workflow 18.0 全体を lint した結果です。ベンチマークをご覧ください。

  • ⚡ 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 のローダーの動作を予測する翻訳チェック:「malformed po file」と Odoo がログに出す理由や、翻訳が表示されない理由を確認できます
  • 📦 pip、uv、pipx でインストール可能:Python 依存関係なしで、Linux、macOS、Windows 向けのビルド済みホイールにバイナリを同梱しています
  • 🛠️ pyproject.toml で設定可能。会社固有の作成者ルールにも対応します
  • 📋 CI 向けの出力:GitHub アノテーション、GitLab Code Quality、SARIF、JSON
  • ✍️ エディターで利用可能:クイックフィックス対応の言語サーバー(odl server)と、VS Code および Zed 向けの拡張機能
  • 🤖 AI コーディングエージェント向け:MCP サーバーと Claude Code、DeepSeek Harness、OpenCode 向けのプラグインを提供し、エージェントが編集するすべてのファイルを lint します
  • 🪝 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 bosd/odoo-lint)、 DeepSeek Harness、OpenCode 用のプラグインとしてパッケージ化されています。

odoo-lint を初めてお使いですか?Getting started から始めてください。 OCA の pre-commit フックから移行する場合は、 Migrating from OCA's tooling をご覧ください。 すべてのコマンド、設定オプション、ルールについては、 ドキュメントをご覧ください。

開発

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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。