mcpField
O
odoo-lint

odoo-lint

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

关于 odoo-lint

odoo-lint 是面向 Odoo 开发者及使用 OCA 检查的团队的 Rust 原生模块检查器,覆盖多种文件类型,提供自动修复和升级检查,并附带供 AI 编码 Agent 使用的 MCP 服务。

主要功能

  1. 01检查 Python、清单、XML、CSV、PO 和 JavaScript
  2. 02匹配 pylint-odoo 与 OCA 检查结果
  3. 03应用安全和非安全自动修复
  4. 04检查旧版 Odoo 遗留内容
  5. 05配置项目及公司专属规则
  6. 06提供 CI 输出和编辑器语言服务

适用场景

  1. 01合并前检查 Odoo 插件
  2. 02修复翻译和模块文件
  3. 03升级 Odoo 时查找过时写法
  4. 04让编码 Agent 在编辑后获取检查反馈

MCP 相关

内置 MCP 服务,可通过 `odl mcp` 为 AI 编码 Agent 提供功能。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"getfluvo-odoo-lint": {
"command": "uvx",
"args": [
"odoo-linter"
]
}
}
}
启动命令uvx odoo-linter

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiodoo-linter0.1.0a21

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

odoo-lint 标志

odoo-lint

PyPI crates.io 测试 OCA 兼容性 文档 许可证:MIT

基于 Rust 的 Odoo 模块检查工具,速度极快。命令名为 odl。

它会检查 Python 文件、清单、XML 和 CSV 数据文件、翻译(.po)文件以及 JavaScript(OWL 组件和模板),检查项与 OCA 的 pylint-odoo、oca-checks-odoo-module 和 oca-checks-po 相同:名称相同、消息相同,在各自的测试套件中结果也相同。它还会警告不应属于模块的文件,例如意外提交的软件包或数据库转储。

柱状图:使用 odoo-lint 检查 OCA/sale-workflow 耗时 0.10 秒,使用 pylint-odoo 耗时 25.8 秒

按照 OCA 的 pre-commit 钩子运行 pylint-odoo,检查整个 OCA/sale-workflow 18.0。请参阅基准测试。

  • ⚡ 比使用 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 为何记录“malformed po file”,以及翻译为何没有显示
  • 📦 可通过 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 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

评论

支持 Markdown

第一次接触 MCP?

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

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