mcpField
O
odoo-lint

odoo-lint

本地服务
odoo-lint.readthedocs.io开发工具01 天前更新

关于 odoo-lint

odoo-lint 是用 Rust 编写的 Odoo 模块检查工具,供 Odoo 开发者和维护团队使用。它涵盖多种模块文件、OCA 检查和升级问题,并提供自动修复及 MCP 服务。

主要功能

  1. 01检查 Python、清单、XML、CSV、PO 与 JavaScript
  2. 02兼容 pylint-odoo 与 OCA 检查规则
  3. 03自动修复并预览差异
  4. 04检测旧版 Odoo 遗留问题
  5. 05提供语言服务器与编辑器快速修复
  6. 06输出 CI 格式并支持 MCP

适用场景

  1. 01在提交前检查 Odoo 模块
  2. 02批量修复代码与翻译文件问题
  3. 03排查升级后遗留的旧版写法
  4. 04让编码 Agent 在编辑后运行检查

MCP 相关

odoo-lint 提供 `odl mcp` MCP 服务,供 MCP 客户端或编码 Agent 调用其检查能力。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 时,odoo-lint 耗时 0.10 秒,pylint-odoo 耗时 25.8 秒

检查整个 OCA/sale-workflow 18.0,与 OCA 的 pre-commit 钩子运行 pylint-odoo 的方式相同。参见 基准测试。

  • ⚡ 比搭配 pylint-odoo 的 pylint 快 250 倍,单核运行时仍快 30 倍
  • ⚖️ 可直接替代 pylint-odoo 和 OCA 的 pre-commit 检查:代码、名称和消息相同,各项检查在各自的测试套件中结果一致 (兼容性),并且 # pylint: disable= 注释仍可正常使用
  • 🔧 自动修复,支持安全和不安全的修复,与 Ruff 一样,可处理 Python、清单、XML 和 .po 文件(odl check --fix,使用 --diff 预览)
  • ⬆️ 升级检查:检查旧版 Odoo 遗留内容,例如 Odoo 15.0 起已不起作用的 Bootstrap 4 类,并提供修复
  • 🌍 可预测 Odoo 加载器行为的翻译检查:指出 Odoo 为何记录“格式错误的 po 文件”,以及翻译为何未显示
  • 📦 可通过 pip、uv 或 pipx 安装:Linux、macOS 和 Windows 均提供预构建 wheel,内含单个二进制文件,无需 Python 依赖
  • 🛠️ 在 pyproject.toml 中配置,包括公司专属的作者规则
  • 📋 支持 CI 输出:GitHub 注释、GitLab Code Quality、SARIF 和 JSON
  • ✍️ 在编辑器中使用:提供带快速修复功能的语言服务器(odl server),以及适用于 VS Code 和 Zed 的扩展
  • 🤖 适用于 AI 编码 Agent:提供 MCP 服务,以及 Claude Code、DeepSeek Harness 和 OpenCode 插件,可检查 Agent 编辑的每个文件
  • 🪝 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 编码 Agent,提供了一个 MCP 服务(odl mcp)和一个编辑后钩子,并作为插件打包,支持 Claude Code(/plugin marketplace add bosd/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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。