跳转至

备用 CLI

CLI 是一个轻量的 XML-RPC 客户端(仅需 Node.js,无需 Python)。当 MCP 服务器无法在你的环境中运行时,或用于脚本的批量访问时,请使用它。MCP 服务器仍然是主要且最完整的接口。

何时使用

  • 你没有可用的 python3 3.9+(在有 Docker 的 Claude Code 中,你也可以使用容器中的 MCP 服务器:参见 本地部署)。
  • 你需要从终端或流水线进行可脚本化/批量的访问。
  • 一个只有 Node 的受限环境。
  • Cowork,其中 MCP 服务器的工具不会加载(参见 适用环境):当会话能运行 Node、能访问你的 Odoo,并且你可以编辑 CLI 的 .env 时,CLI 可以工作。请使用专用、最小权限、短期有效的 API key。不适用于 Claude chat,因为它没有安全的地方来输入 key。

安装

在 Claude Code 中:

/odoo-tools:odoo-setup-cli

需要 Node.js 18+:

node --version   # 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 时将其删除。参见 安全。

用法

node ~/.claude/tools/odoo-cli/dist/cli.js <command> '<input-json>'

示例:

node ~/.claude/tools/odoo-cli/dist/cli.js contacts '{"limit": 1}'

可用命令

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。