快速开始:引导路线¶
从这里开始:/odoo-tools:odoo-setup-mcp
自 v1.3.0 起,插件只有一条引导路线。运行 /odoo-tools:odoo-setup-mcp(或其快捷方式 /setup-odoo-tools):它会检测你已有的配置,并一次一个问题地带你完成五个阶段:
1 配置 → 2 验证 → 3 培训 → 4 日常使用 → 5 部署
每个阶段开始时都会显示你所在的位置。如果你更喜欢手动操作,本页概述了这条路线。
v1.6.0 新增
- 在 第 0 步 中,没有
policy块的odoo_version响应会让路线停止:作出响应的是早于 1.5.0 的副本。在 Claude Code 中,路线会运行一次副本检查,并在保存之后运行选项检查。 - 在 第 0b 步 中,路线会把状态
not_started、原因user_config_unsupported识别为 Cowork 和 Claude chat 的情况,为你提供 Code 标签页中的本地会话(云端会话没有你的选项),并告诉你 Claude Code 不需要管理员权限。 - 在 第 3 步 中,路线会先问这个连接的用途;在 Odoo Online 上,它会根据子域名建议数据库。
- 初始检查也会查找
git。在 Windows 上,安装 Claude Code、Git 或 Python 之后,你要打开一个新的 PowerShell 窗口。 - 第 5 阶段 给出每种环境的安装命令:在 Claude Code 中,或在终端中。
v1.5.1 新增
- 在 第 0b 步 中,如果 Odoo 工具没有加载,路线在弄清你在哪里使用 Claude 之前,不运行任何命令,也不检查 Python。在 Cowork 中读到的 Python 版本属于它的虚拟机,而不是你的电脑。
/odoo-tools:odoo-doctor也从同样的检查开始,并以一份可以发给 Transgenia 的支持报告结束。
v1.5.0 新增
- 配置中包含两个新选项:Permission profile(默认
standard)和 Permission policy file(可选)。参见 权限策略。 - 在培训中,写入练习会归档测试联系人,而不是删除它,因为
standard不删除;Studio 风格的练习需要配置档builder。 - 部署阶段建议在生产环境中使用
standard(或readonly),并在 Odoo 用户是管理员时从加固示例文件开始。
请在 Claude Code 中运行这条路线
这条路线会配置并使用 Odoo 工具,而这些工具只在你电脑上的 Claude Code(终端、VS Code、JetBrains 或 Claude Desktop 的 Code 标签页中的本地会话)中运行。在 Cowork 和 Claude chat 中,skill 会加载,但工具不会:路线会在 第 0b 步 中检测到这一点,并为你提供可行的路径。参见 适用环境。
第 1 阶段:配置¶
路线会先问你属于哪种情况:
- 连接我的 Odoo(生产或测试):见下面的第 0-4 步。
- 我没有可练习的 Odoo / 不想触碰生产环境:用
/odoo-tools:deploy-local启动本地 Odoo Community 沙箱(Transgenia 无法提供 Enterprise 或 Online 实例)。参见 本地部署。 - 我无法安装 Python 3.9+:容器中的 MCP 服务器(
/odoo-tools:deploy-local,容器模式)或 CLI 备用方案。
第 0 步:检测你已有的东西¶
它首先查看自己的工具列表,不运行任何东西。如果没有 odoo_version,说明 MCP 服务器没有在这个环境中运行:在运行任何 shell 命令之前,先转到 第 0b 步。如果有,就调用它一次,并在说任何话之前先读它的响应:
- 既没有
policy也没有note: 作出响应的是早于 1.5.0 的 odoo-tools,没有权限策略;它通常是从别处安装的第二个副本。路线就此停止:不进行培训、日常使用或写入,并帮你只保留一个最新副本。 - 有
note: 权限策略被锁定。这条说明会点名要修正的选项或文件;这不是一个可用的连接。 plugin: 作出响应的 odoo-tools 版本及其已安装副本(plugin@marketplace)。它会把这些显示给你。
如果调用成功并带有 policy 块,说明插件选项已经配置好:它会显示版本、版本类型和副本,并让你选择直接跳到培训、日常使用或部署。(它不会读取你机器上的 ODOO_* 变量或凭据文件来判断。)
当 odoo_version 作出响应时,说明这是你电脑上的 Claude Code,路线会运行一次副本检查,即使一切正常也是如此:两个 odoo-tools 副本可能同时处于活动状态,这时选项对话框和工具可能属于不同的副本。它会原样显示输出:点名要保留的副本,并给出移除其他副本(或更新来自 Transgenia marketplace 的旧副本)的确切命令,由你在终端(PowerShell 或 Terminal)中运行,绝不要当作 /plugin 命令运行,然后重启 Claude Code。它绝不会在 Cowork 中运行这些命令:在那里,它的命令到达的是一台虚拟机,而不是你的电脑。参见 两个 odoo-tools 副本。
在可以运行命令的地方,它还会检查 python3(3.9 或更高版本)、git 和 docker 是否可用,以便确定后续阶段适用 Python 路径还是容器路径。
第 0b 步:Odoo 工具是否已加载?¶
仅当 odoo_version 不作为工具存在时适用。它不会从 Python 开始排查。 它会问你在哪里使用 Claude:1) Claude Code、2) Cowork 或 3) Claude chat。如果你描述的是插件 Connectors 标签页中 odoo 一行带有 Runs in each session 字样的空面板,那么你处于 2 或 3。如果应用把插件的服务器显示为状态 not_started、原因 user_config_unsupported,你也处于 2 或 3:这是 Cowork 和 Claude chat 对这种情况的叫法,在 macOS 和 Windows 上都一样,不是插件或应用的故障,插件的任何更新也都不会改变它。
- Claude Code: 如果会话本身运行在 Anthropic 的云端(Code 标签页的云端会话,或网页版 Claude Code),你保存在自己电脑上的选项不在那里,因此服务器无法启动:路线会像 2 或 3 中那样为你提供本地会话,然后停止。否则,说明服务器没有启动;常见原因是必需选项(URL、数据库、登录名)为空,或者插件有第二个副本。如果它可以运行命令,会运行第 0 步的副本检查,在副本检查点名要保留的副本之后,再对该副本运行选项检查(Claude Code 2.1.285 或更高版本;输出从不显示 key)。它会根据检查列出的内容采取行动:缺少的选项在选项对话框中填写,你在 Claude Code 中用
/plugin configure <id>打开它。如果缺少python3,两项检查都无法运行:路线会直接读取claude plugin list --json(在这里启用的odoo-tools@...id 不止一个,或版本早于 1.5.0,就是问题所在;同一个 id 列在两个范围中只算一个副本,项目或本地条目只在它自己的文件夹中才算数,即它的projectPath或其中的某个文件夹),然后转去检查 Python。之后你重启 Claude。 - Cowork 或 Claude chat: 这些应用不运行插件的本地 MCP 服务器,也没有填写其选项的表单。安装没有问题,你的账户、你的 Odoo 和你的 Python 也都没有问题;路线会为你提供:
- 你电脑上的 Claude Code(推荐):终端、VS Code、JetBrains,或 Claude Desktop 的 Code 标签页中的本地会话(不是云端会话,云端会话没有保存在你电脑上的选项)。安装在你 Claude 账户上的插件,会在你用该 claude.ai 账户登录 Claude Code(2.1.273 或更高版本)后的下一次会话开始时,作为同步插件出现在那里;如果没有出现,运行
/reload-plugins或使用 安装 中的命令。Claude Code 不需要管理员权限:它的原生安装程序把它放在你的主文件夹中。在 Team 或 Enterprise 计划中,由你的组织决定你能获得哪些插件,以及 Code 标签页是否提供本地会话。 - 仅限 Cowork:备用 CLI,前提是会话能运行 Node、能访问你的 Odoo,并且你可以编辑它的
.env。请使用专用、最小权限、短期有效的 API key。不适用于 Claude chat,因为它没有安全的地方来输入 key。 - Transgenia 提供协助配置(参见 支持)。
- 你电脑上的 Claude Code(推荐):终端、VS Code、JetBrains,或 Claude Desktop 的 Code 标签页中的本地会话(不是云端会话,云端会话没有保存在你电脑上的选项)。安装在你 Claude 账户上的插件,会在你用该 claude.ai 账户登录 Claude Code(2.1.273 或更高版本)后的下一次会话开始时,作为同步插件出现在那里;如果没有出现,运行
在这些应用中,路线不会带你去检查 Python 或插件选项,因为它们在那里无法起作用。在 Cowork 中,shell 命令运行在一台虚拟机里,而不是你的电脑上:在那里读到的 Python 版本说明不了你电脑的任何情况。在工具运行起来且 Odoo 拒绝连接之前,它也不会给出 Odoo 方面的建议(订阅计划、API key、数据库)。如果 Claude 的上下文中有一行以 odoo-tools session diagnostics: 开头,那是插件的会话开始 hook 在你的电脑上写下的,/odoo-tools:odoo-doctor 会把它整理成一份可以发给 Transgenia 的支持报告。
第 1 步:选择接口¶
- MCP 服务器(推荐):完整工具 + 兼容层。只需要
PATH中有python33.9+(无第三方依赖;启动时不安装、不下载任何东西)。 - 备用 CLI:轻量,仅需 Node。如果你无法运行 MCP,请使用它。
如果缺少 Python,路线会给出适合你系统的解决办法。在 Windows 上,命令必须名为 python3(参见 要求);安装 Claude Code、Git 或 Python 之后,你要打开一个新的 PowerShell 窗口并重启 Claude Code:之前打开的窗口看不到新的 PATH。
第 2 步:Odoo 的版本与版本类型(可选)¶
Community · Enterprise · Online (odoo.com/SaaS) · 不确定。兼容层会自动覆盖 10-19 各版本;此信息仅作为上下文。
第 3 步:连接数据¶
在填写这些数据之前,路线会先问你这个连接的用途:
- 用于学习或练习: 最好使用沙箱(第 1 阶段,选项 2)。如果使用真实实例,它建议开启 Read-only mode 并使用 Permission profile
readonly。 -
用于实际工作: Permission profile
standard,并在最初几天开启 Read-only mode。只有在你确认需要写入时才开启写入。 -
Odoo 的 URL:例如
https://my-company.odoo.com(协议 + 主机,不带结尾路径)。 - 数据库名称:Settings → Database,或在登录 URL 中可见。在 Odoo Online(
*.odoo.com)上,它通常就是子域名(https://my-company.odoo.com对应my-company):路线会建议它,并请你确认。 - 登录邮箱:你用来登录的账户。
- 凭据:一个 API key(Odoo 14+,推荐)或一个密码(Odoo < 14)。获取 API key:Preferences → Account Security → New API Key(只显示一次,请复制下来)。在 Odoo 19+ 中,正是 API key 让你能够使用 JSON-2。
Odoo Online
在 Odoo Online 上,唯一可用的凭据是 API key(用户通过 odoo.com 登录,通常启用了 2FA),并且只有 Custom 计划允许访问 API。自 Odoo 18 起 key 会过期:非管理员用户最多只能获得 1 天,除非其所属的某个组允许更长时间。请记下过期日期;之后 odoo_online_profile 会显示它。
这些值在插件的选项对话框中输入,而不是在聊天中输入。
安全
切勿将密钥粘贴到聊天中,也不要写入受仓库跟踪的文件中。为智能体使用一个最小权限 的 Odoo 用户。参见 安全。
第 4 步:持久化配置¶
对于 MCP 服务器:
- 运行
/plugin,打开 odoo-tools,选择 Configure options(或/plugin configure <id>)。 - 填写 URL、数据库、登录名和 API key(Odoo < 14 则填写密码)。可选:Transport preference(默认
auto:在 Odoo 19+ 上有 API key 时使用 JSON-2;也可选json2、jsonrpc或xmlrpc)、Request timeout(默认 120 秒)、 Read-only mode(建议在最初几天和演示时开启)、Permission profile(默认standard:不删除、不做 Studio 风格的改动、除内部备注外不发送外发邮件、不更改用户或权限,也不读取已保存的密钥;也可选readonly、用于沙箱和预发布环境的builder,或保留 1.4 行为的full)以及 Permission policy file(可选:按模型定义规则的文件的绝对路径,参见 权限策略)。 - 重启 Claude,让 MCP 服务器读取这些选项。
选项对话框不会说明它编辑的是插件的哪个副本。如果第 0 步的副本检查发现了不止一个副本,路线会先解决这个问题;保存之后,它会对该副本运行选项检查,并根据它列出的内容采取行动。
在远程或无界面的电脑上,claude plugin configure <id> --values-stdin 可以不经对话框保存选项(参见 安装)。请从受保护的文件或你的密钥管理器传入 JSON;Claude 绝不会向你索取、读取或复述 key。
API key 和密码是 sensitive 选项:以掩码方式输入,并保存在操作系统的安全凭据存储中,而不是 settings.json 或你的 shell 配置文件中。对于插件,不要 在
~/.bashrc/~/.zshrc 中或通过 setx 导出 ODOO_*。
对于 CLI,运行 /odoo-tools:odoo-setup-cli:它会安装 CLI 并在
~/.claude/tools/odoo-cli 中创建一个仅你的用户可读、带占位符的本地 .env。请由你自己在自己的编辑器中粘贴密钥;Claude 绝不会在聊天中向你索取它。
第 2 阶段:验证(完成的定义)¶
- MCP: 调用
odoo_version。它的响应必须带有plugin和policy:没有policy,说明作出响应的是早于 1.5.0 的副本(回到 第 0 步 并停止);有note,说明策略被锁定(修正它点名的内容并重新连接)。成功 = 返回版本 + 版本类型 + 部署方式 + 传输方式,以及作出响应的副本(plugin.copy)。在 Odoo 19+ 上,传输方式应为json2;transport_notice表示正在使用已弃用的端点(通常是因为没有 API key),并说明如何修正。它的policy块显示当前生效的配置档和被隐藏的工具。然后测试:odoo_search_read { "model": "res.partner", "fields": ["name"], "limit": 1 }。 - Odoo Online(部署方式为
saas,或版本为saas~,例如saas~19.2):还要调用odoo_online_profile,查看版本线、你的 API key 何时过期以及计划的限制。 - CLI:
node ~/.claude/tools/odoo-cli/dist/cli.js contacts '{"limit":1}'。
如果失败,根据错误进行诊断:
odoo_version不作为工具存在 → MCP 服务器没有启动。请先按 第 0b 步 操作:在 Cowork 和 Claude chat 中它从不启动,解决办法也不是 Python。在 Claude Code 中,检查选项,然后运行python3 --version(3.9+)并重启 Claude。在 Windows 上,claude mcp list中的Failed to connect加Connection closed是缺少python3的迹象;参见 故障排查。odoo_version的响应中没有policy块 → 作出响应的是早于 1.5.0 的副本;参见 两个 odoo-tools 副本- 认证错误 → 检查 DB / login / API key
- 传输错误 → 检查 URL(协议 + 主机)
- "database not found" → 检查数据库的准确名称
- 只出现
odoo_version,且它的policy块带有error→ 配置档或策略文件无效,服务器以锁定状态启动;参见 故障排查
第 3 阶段:培训(15-20 分钟,动手)¶
路线提供八个练习。你用自己的话输入请求,Claude 会解释是哪个工具回答的以及原因。练习 1-5 为只读;练习 6 至 8 会写入,只在沙箱或测试数据库中进行,每次写入前都会请求确认。
- 了解你的实例:“我的 Odoo 是哪个版本和版本类型?” →
odoo_version、odoo_module_info。 - 查找记录:“给我看 5 个墨西哥客户” → 带域条件的
odoo_search_read。 - 理解模型:“销售订单有哪些字段?” →
odoo_list_models、odoo_fields_get。 - 汇总:“今年每月开票总额” →
odoo_read_group。 - 导出:“把在售产品导出为 CSV” →
/odoo-export。 - 确认后写入(沙箱/测试):创建一个测试联系人,修改它的电话,然后归档它 →
odoo_create、odoo_write(用{"active": false}归档)。在默认配置档standard下,删除会被拒绝,odoo_unlink也不会被列出:归档是可逆的途径。如果要练习删除,请在沙箱中(绝不要在生产环境中)把 Permission profile 设为full并重新连接(/mcp);之后odoo_unlink就会删除该联系人。 - 低代码(Studio 风格)(沙箱/测试):一个字段或一个自动化 → Studio 风格。需要 Permission profile
builder(仅限沙箱和预发布环境)。 - 先预演再导入(沙箱/测试):“导入这 3 个联系人” →
odoo_import_preview(Odoo 检查每一行,不保存任何内容),在你确认后 →odoo_import(所有行全部保存或全部不保存)。id列存放外部标识符,并会更新已拥有这些标识符的记录。
第 4 阶段:日常使用¶
| 需求 | 使用 |
|---|---|
| 询问你的数据 | 直接提问:odoo 智能体和 MCP 工具会回答 |
| 连接健康检查与支持报告 | /odoo-doctor |
| 导出记录 | /odoo-export |
| 10-19 版本差异 | /odoo-tools:odoo-crossversion |
| 字段与自动化 | /odoo-tools:odoo-studio-style |
| 规划迁移 | odoo-migrator 智能体 |
| 沙箱:状态、停止、启动 | /odoo-tools:deploy-local status |
| 没有 Python 的电脑 | /odoo-tools:odoo-setup-cli(CLI)或 /odoo-tools:deploy-local container |
| Odoo Online:版本线、API key 过期时间、计划限制 | odoo_online_profile |
| 为什么一次调用被拒绝?这个用户能做什么? | odoo_access_check |
| 一条记录的附件或一张发票已保存的 PDF | odoo_record_documents |
| 一次加载大量记录 | odoo_import_preview,确认后再用 odoo_import |
一个方法的参数名称(JSON-2、odoo_execute) |
odoo_api_catalog |
| 当前生效的是哪个权限配置档,它隐藏了哪些工具 | /odoo-doctor 或 odoo_version 的 policy 块 |
| 离线检查策略文件 | --check-policy(参见 权限策略) |
好习惯:除非任务需要写入,否则保持只读模式;每次写入都要确认;批量修改先在沙箱中测试。当 odoo-tools 的权限策略拒绝一次调用时,这个拒绝是最终结果:Claude 会向你解释,并告诉你改变它的选项,而不会寻找其他途径(其他工具、备用 CLI 或 shell)。/odoo-doctor 会显示当前生效的配置档。
第 5 阶段:部署(团队或生产)¶
路线会和你一起逐项检查:
- 每人一个 Odoo 用户,最小权限,各自的 API key。
- 默认只读;只为需要的人开启写入。在生产环境中把 Permission profile 保持为
standard(或readonly),builder只用于沙箱和预发布环境,full只用于你决定保留 Odoo 用户全部权限的地方。如果生产环境使用的是管理员用户,请从${CLAUDE_PLUGIN_ROOT}/docs/policy-examples/production-hardened.json的一个副本开始,把它保存在所有项目之外(例如~/.config/odoo-tools/policy.json,其绝对路径填入 Permission policy file),并先用python3 "${CLAUDE_PLUGIN_ROOT}/server/run_stdio.py" --check-policy <文件>检查该副本。参见 示例。 - HTTPS URL,除非有理由,否则使用
auto传输。 - 先试点:在沙箱或副本上重复关键流程。
- 批量写入或 Studio 风格修改前先备份。
- 每台电脑只安装一次插件,从 Transgenia 的 marketplace 安装:在 Claude Code 中用
/plugin install odoo-tools --marketplace Transgenia/MCP-Odoo-Tools-CE-EE-and-online;或在终端中用claude plugin install odoo-tools --marketplace Transgenia/MCP-Odoo-Tools-CE-EE-and-online --scope user(在 2.1.275 之前的 Claude Code 中,先添加 marketplace)。然后走一遍路线,它会检查是否只有一个副本处于活动状态;没有 Python 的电脑使用容器模式。 - 通过
/plugin更新,更新生产用户前先阅读 CHANGELOG。 - Odoo Online: 规划 API key 的轮换(自 Odoo 18 起会过期;
odoo_online_profile会告诉你何时过期),控制批量工作的节奏(大约每秒 1 次调用,每次导入最多 500 行),并预期每隔几个月就会出现一条新的 saas~X.Y 版本线。
Transgenia 的陪伴服务
在最需要的时刻(配置受阻、培训结束、沙箱与部署),插件会提醒你:Transgenia 提供维护、支持、培训与协助部署,仅通过其官方渠道:dev@transgenia.org · WhatsApp +52 55 8034 0405。参见 支持。