备用 CLI¶
CLI 是一个轻量的 XML-RPC 客户端(仅需 Node.js,无需 Python)。当 MCP 服务器无法在你的环境中运行时,或用于脚本的批量访问时,请使用它。MCP 服务器仍然是主要且最完整的接口。
何时使用¶
- 你没有可用的
python33.9+(在有 Docker 的 Claude Code 中,你也可以使用容器中的 MCP 服务器:参见 本地部署)。 - 你需要从终端或流水线进行可脚本化/批量的访问。
- 一个只有 Node 的受限环境。
- Cowork,其中 MCP 服务器的工具不会加载(参见
适用环境):当会话能运行 Node、能访问你的 Odoo,并且你可以编辑 CLI 的
.env时,CLI 可以工作。请使用专用、最小权限、短期有效的 API key。不适用于 Claude chat,因为它没有安全的地方来输入 key。
安装¶
在 Claude Code 中:
需要 Node.js 18+:
若缺失:nodejs.org(LTS)、brew install node 或
apt install nodejs npm。该命令会将 CLI 安装到 ~/.claude/tools/odoo-cli,并在其中创建一个仅你的用户可读、带占位符的本地 .env。
这个 .env 会把你的凭据保存到磁盘
与 MCP 服务器(它不会持久化密钥)不同,CLI 确实 会将你的凭据留在
~/.claude/tools/odoo-cli/.env 中。设置过程会和你一起填写 URL、数据库和登录名,并为 API key(或密码)留下一个占位符:请在你自己的编辑器中打开该文件,由你亲自粘贴密钥。Claude 绝不会在聊天中向你索取它。请保持该文件创建时的权限(仅你的用户可读,chmod 600),不要将它提交到版本控制,并在停止使用 CLI 时将其删除。参见 安全。
用法¶
示例:
可用命令¶
CLI 包含 13 个命令,面向最常见的 Odoo 流程:
| 命令 | 作用 |
|---|---|
contacts |
查询联系人(res.partner) |
invoices |
查询发票 |
products |
查询产品 |
stock |
查询库存 |
subscriptions |
查询订阅 |
payments |
查询付款 |
account-lines |
会计明细行 |
bank-journals |
银行日记账 |
bank-statements |
银行对账单 |
chart-of-accounts |
会计科目表 |
search |
按模型/域进行通用搜索 |
fields |
一个模型的字段内省 |
write |
通用写入(创建/更新) |
写入
write 命令会 修改数据。与 MCP 服务器中一样,请使用最小权限的 Odoo
用户,并审查该操作。CLI 没有与 Read-only mode 对应的功能,也没有 MCP 服务器的 权限策略(v1.5.0):write 总会尝试执行调用,只受 Odoo 用户自身权限的限制。
与 MCP 服务器的对等性¶
CLI 通过 XML-RPC 覆盖了常见流程,但 不 包含 MCP 服务器完整的版本间兼容层,也没有其对模型/字段的自动解析。对于版本间的工作或 Enterprise 实例,请优先使用 MCP 服务器。
Odoo 19 及更高版本上的 XML-RPC
CLI 使用 XML-RPC。Odoo 19 将 /xmlrpc 标记为弃用,Odoo 22 和 Odoo Online saas~21.1 会移除它。在这些版本上请使用 MCP 服务器,它在有 API key 时会切换到 JSON-2(参见 兼容性)。
Skill 参考:/odoo-tools:odoo-setup-cli。