开源 · 基础架构 · Odoo

Transgenia发布MCP-Odoo-Tools:MIT开源插件,支持Odoo 10至19版本与AI智能体集成

多少企业已经听说"AI可以与ERP对话",却没人解释:Odoo在第12版到第19版之间重命名了数十个模型,如果MCP服务器不能在运行时处理这一问题,智能体就会悄然出错。本文介绍我们构建的解决方案:它是什么、为何选择MIT开源、以及哪些功能是有意保留在私有层的。

简要回答。 MCP-Odoo-Tools是一个MIT开源MCP服务器,可将Claude、Gemini、Mistral或任何支持模型上下文协议(MCP)的智能体连接到Odoo社区版、企业版及在线版(SaaS),涵盖第10版至第19版。它在1.4.0版本中向智能体提供28个工具,查询发票、销售订单、库存、联系人、数据导入等,并配备兼容层,能够自动转换各版本间变化的模型和字段名称(例如v13中 account.invoice → account.move)。该插件以Claude Code插件形式分发,使用 python3 运行且无外部依赖,源代码在GitHub上以MIT许可公开发布。
图1。文章地图:模型重命名问题、MCP服务器是什么、28个工具、安装、公开层之外的内容、为何选择MIT以及如何开始。
查看 Mermaid 图
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#1a2035', 'primaryTextColor': '#FFFFFF', 'primaryBorderColor': '#FBA225', 'lineColor': '#FBA225', 'background': '#0B0D17', 'mainBkg': '#0E1220', 'fontFamily': 'Inter, Arial, sans-serif', 'fontSize': '14px'}}}%%
mindmap
  root(("MCP-Odoo-Tools,用AI智能体连接Odoo 10至19"))
    问题
      模型在版本间被重命名
      智能体静默失败
    它是什么
      Python MCP服务器
      兼容层
      三种传输协议
      可选缓存与可观测性
    28个工具
      读取与导出
      写入与执行
      元数据与导入
    安装
      Claude Code插件
      python3 无外部依赖
    公开层之外
      CFDI与SAT
      VoBo
      S3备份与视觉
    为何选择MIT
      无供应商锁定
      生态系统
    如何开始
      诊断
      只读试点
      写入前建立治理
图1。文章地图。每个分支对应一个章节;通读约需八分钟。

真正的问题:Odoo模型名称在各版本间不断变化

Odoo是拉丁美洲中小企业中应用最广泛的ERP,但它有一个顾问在签合同前几乎不会提及的特点:每个主要版本都会重组或重命名模型和字段。最广为人知的例子是 account.invoice,在Odoo 13中更名为 account.move。第10版至第19版之间还有数十处类似变更。

对于了解历史的人类来说,这是一条学习曲线。对于AI智能体而言,这是一个静默失败点:智能体满怀信心地调用旧模型名称,ERP返回一个看似权限问题或网络问题的错误,智能体无法区分这究竟是凭证问题还是命名问题。

我们本可以构建一个假定Odoo 19的MCP服务器一了百了。但这会将数千家运行着功能完好的14、16或17版本的企业排除在外,它们没有任何理由仅仅因为AI的到来就去迁移。

图2。时间线展示三个Odoo模型重命名:第12版 product.uom 改为 uom.uom,第13版 account.invoice 改为 account.move,第17版 mail.channel 改为 discuss.channel。
查看 Mermaid 图
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#1a2035', 'primaryTextColor': '#FFFFFF', 'primaryBorderColor': '#FBA225', 'lineColor': '#FBA225', 'background': '#0B0D17', 'mainBkg': '#0E1220', 'fontFamily': 'Inter, Arial, sans-serif', 'fontSize': '14px', 'titleColor': '#FBA225', 'cScale0': '#1a2640', 'cScale1': '#24304d', 'cScale2': '#2e3c5e', 'cScaleLabel0': '#FFFFFF', 'cScaleLabel1': '#FFFFFF', 'cScaleLabel2': '#FFFFFF'}}}%%
timeline
    title 智能体必须了解的Odoo模型重命名
    Odoo 12 : product.uom 改为 uom.uom
    Odoo 13 : account.invoice 改为 account.move
            : account.invoice.line 改为 account.move.line
    Odoo 17 : mail.channel 改为 discuss.channel
图2。Odoo版本说明中记录的三个重命名。它们只是示例,并非完整列表:插件的声明式映射表覆盖第10版至第19版之间数十处模型和字段变更。
图3。时序图比较两种路径:无兼容层的MCP服务器在Odoo 16上请求 account.invoice 时返回通用错误;MCP-Odoo-Tools先检测版本,再查询 account.move。
查看 Mermaid 图
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#1a2035', 'primaryTextColor': '#FFFFFF', 'primaryBorderColor': '#FBA225', 'lineColor': '#FBA225', 'background': '#0B0D17', 'mainBkg': '#0E1220', 'fontFamily': 'Inter, Arial, sans-serif', 'fontSize': '14px', 'actorTextColor': '#FFFFFF', 'actorBkg': '#1a2640', 'actorBorder': '#FBA225', 'signalColor': '#FBA225', 'signalTextColor': '#FFFFFF', 'labelBoxBkgColor': '#101828', 'labelBoxBorderColor': '#FBA225', 'labelTextColor': '#FBA225', 'noteBkgColor': '#101828', 'noteTextColor': '#FBA225', 'noteBorderColor': '#FBA225'}}}%%
sequenceDiagram
    participant A as AI智能体
    participant S as 无兼容层的MCP服务器
    participant C as MCP-Odoo-Tools
    participant O as Odoo 16
    A->>S: 在 account.invoice 中查找发票
    S->>O: search_read account.invoice
    O-->>S: 错误,模型不存在
    S-->>A: 通用错误
    Note over A: 是凭证、网络还是命名问题?
智能体无法区分 A->>C: 查找发票 C->>O: odoo_version O-->>C: 16.0,社区版 C->>O: search_read account.move O-->>C: 记录 C-->>A: 正确的发票
图3。同一请求的两条路径。没有兼容层时,Odoo的错误原样到达智能体而缺乏上下文;有兼容层时,版本检测在查询前就解析出正确名称。

MCP-Odoo-Tools是什么

MCP-Odoo-Tools是一个Python服务器,在Odoo之上实现了模型上下文协议(MCP,由Anthropic作为开放标准发布)。源代码以MIT许可在GitHub上公开发布,是全新的干净实现,不派生自任何AGPL分支,并以Claude Code插件形式打包分发。

使它区别于基础Odoo集成的特点:

跨版本兼容层。 一个声明式映射表涵盖了Odoo 10至19版本间模型和字段名称的差异。当智能体请求发票数据时,兼容层在运行时确定已连接的实例使用 account.invoice 还是 account.move,智能体和运营人员都无需提前了解版本信息。

版本和版次自动检测。 服务器在连接时识别Odoo的精确版本(社区版/企业版/在线版)、版次和部署模式,该信息反馈给兼容层和传输协议选择器。

三种传输协议,自动选择。 服务器根据检测到的版本和凭证选择传输协议:设置了API Key时,在saas~18.4及19.0以上版本使用JSON-2(Odoo的新API);其他版本使用JSON-RPC,并以XML-RPC作为回退。JSON-RPC和XML-RPC接受密码或API Key(API Key自Odoo 14起提供);JSON-2仅接受API Key。可通过 ODOO_TRANSPORT_PREF 固定偏好。

可选模式缓存。 对 odoo_fields_get 的重复调用从内存中获取(可配置TTL缓存),降低密集工作会话中的延迟。

内置可观测性(可选)。 每次RPC调用生成带有 odoo.model、odoo.method 和 odoo.alias 属性的OpenTelemetry span。若未配置OTLP端点,服务器正常启动而不发送追踪数据,优雅降级,零错误。

图4。架构:AI智能体与MCP客户端对话,客户端通过stdio到达MCP-Odoo-Tools;内部的版本检测为兼容层和传输协议选择器提供信息,再连接到Odoo。
查看 Mermaid 图
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#1a2035', 'primaryTextColor': '#FFFFFF', 'primaryBorderColor': '#FBA225', 'lineColor': '#FBA225', 'background': '#0B0D17', 'mainBkg': '#0E1220', 'fontFamily': 'Inter, Arial, sans-serif', 'fontSize': '14px', 'edgeLabelBackground': '#0E1220', 'clusterBkg': '#101828', 'clusterBorder': '#FBA225'}}}%%
flowchart LR
    A["AI智能体
Claude、Gemini、Mistral或其他MCP客户端"] --> M["MCP客户端
Claude Code或其他MCP客户端"] M -->|stdio| S["MCP-Odoo-Tools
Python服务器,MIT许可"] S --> D["版本、版次与
部署方式检测"] D --> K["兼容层
Odoo 10至19"] K --> T["传输协议选择器
JSON-2、JSON-RPC、XML-RPC"] T --> O["Odoo
社区版、企业版或在线版"]
图4。服务器架构。一切都在运营人员的机器上运行;唯一的对外连接是与Odoo实例的RPC通信。
图5。兼容层流程:根据检测到的版本,发票请求在Odoo 10至12映射为 account.invoice,在13至19映射为 account.move,结果返回给智能体而它无需知道版本。
查看 Mermaid 图
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#1a2035', 'primaryTextColor': '#FFFFFF', 'primaryBorderColor': '#FBA225', 'lineColor': '#FBA225', 'background': '#0B0D17', 'mainBkg': '#0E1220', 'fontFamily': 'Inter, Arial, sans-serif', 'fontSize': '14px', 'edgeLabelBackground': '#0E1220', 'clusterBkg': '#101828', 'clusterBorder': '#FBA225'}}}%%
flowchart TD
    Q["智能体请求发票"] --> V{"odoo_version
检测到的版本"} V -->|"10、11或12"| I["account.invoice"] V -->|"13至19"| M["account.move"] I --> R["使用正确名称执行 search_read"] M --> R R --> A["返回给智能体,
它始终无需知道版本"]
图5。运行时解析。映射表是声明式的:新增一个重命名只需编辑表格,而不是修改服务器代码。
图6。传输协议决策树:在saas~18.4或19.0及以上使用API Key时选择JSON-2;其他情况使用JSON-RPC并以XML-RPC回退;密码仅适用于JSON-RPC和XML-RPC;ODOO_TRANSPORT_PREF可固定偏好。
查看 Mermaid 图
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#1a2035', 'primaryTextColor': '#FFFFFF', 'primaryBorderColor': '#FBA225', 'lineColor': '#FBA225', 'background': '#0B0D17', 'mainBkg': '#0E1220', 'fontFamily': 'Inter, Arial, sans-serif', 'fontSize': '14px', 'edgeLabelBackground': '#0E1220', 'clusterBkg': '#101828', 'clusterBorder': '#FBA225'}}}%%
flowchart TD
    S["连接Odoo"] --> C{"凭证类型?"}
    C -->|"API Key
自Odoo 14起提供"| V{"saas~18.4或19.0及以上?"} C -->|"密码"| J["JSON-RPC"] V -->|"是"| J2["JSON-2
Odoo的新API"] V -->|"否"| J J -->|"失败时"| X["XML-RPC
回退"] P["ODOO_TRANSPORT_PREF
固定偏好"] -.-> C
图6。传输协议自动选择。JSON-2仅接受API Key;JSON-RPC和XML-RPC接受密码或API Key。
图7。odoo_fields_get 时序:首次调用查询Odoo并存入TTL缓存,重复调用从内存返回,每次RPC调用在配置了OTLP端点时发出OpenTelemetry span。
查看 Mermaid 图
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#1a2035', 'primaryTextColor': '#FFFFFF', 'primaryBorderColor': '#FBA225', 'lineColor': '#FBA225', 'background': '#0B0D17', 'mainBkg': '#0E1220', 'fontFamily': 'Inter, Arial, sans-serif', 'fontSize': '14px', 'actorTextColor': '#FFFFFF', 'actorBkg': '#1a2640', 'actorBorder': '#FBA225', 'signalColor': '#FBA225', 'signalTextColor': '#FFFFFF', 'labelBoxBkgColor': '#101828', 'labelBoxBorderColor': '#FBA225', 'labelTextColor': '#FBA225', 'noteBkgColor': '#101828', 'noteTextColor': '#FBA225', 'noteBorderColor': '#FBA225'}}}%%
sequenceDiagram
    participant A as 智能体
    participant S as MCP-Odoo-Tools
    participant C as TTL缓存
    participant O as Odoo
    participant T as 可选OTLP端点
    A->>S: odoo_fields_get res.partner
    S->>C: 已缓存?
    alt 首次调用
        C-->>S: 否
        S->>O: fields_get
        O-->>S: 字段
        S->>C: 带过期时间存储
    else 重复调用
        C-->>S: 从内存返回字段
    end
    S-->>A: 模型字段
    S--)T: 带 odoo.model、odoo.method、odoo.alias 的span
    Note over T: 未配置端点时
不发送追踪,也不报错
图7。模式缓存与可观测性,两者均为可选。缓存降低密集会话的延迟;没有接收端时,追踪功能优雅降级。

可用工具

服务器按操作领域提供28个工具(1.4.0版本):

类别工具功能
读取odoo_search_read使用ORM过滤器搜索并返回记录
读取odoo_fields_get描述模型字段(支持可选缓存)
读取odoo_search_count统计记录数量而不获取数据
导出odoo_export_records_json通过ORM导出记录,遵守权限设置
导出odoo_export_records_csv以CSV格式导出
写入odoo_create / odoo_write创建或更新记录
写入odoo_unlink删除记录
写入odoo_execute调用任意模型方法
读取odoo_read_group按字段分组并聚合记录
元数据odoo_version返回实例的版本和版次
元数据odoo_list_models列出已安装的模型
Odoo Onlineodoo_online_profile一次读取即可获得版本线、部署方式、传输协议、密钥和套餐限制
导入odoo_import_preview / odoo_import使用Odoo自带导入器进行预演和原子化导入

预演不会保存导入的记录,但可能消耗序列号并触发自动化操作的webhook。请先在隔离副本中测试,再考虑用于生产环境。

1.4.0版本的28个工具涵盖连接、读取、导出、写入、Studio风格的结构变更和数据导入。启用只读模式后,服务器会在任何请求到达Odoo之前拒绝所有写入工具。表格列出最常用的工具,完整目录请见仓库README。

图8。按类别划分的工具地图:读取、导出、写入、元数据、Odoo Online、导入以及Studio风格的结构变更。
查看 Mermaid 图
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#1a2035', 'primaryTextColor': '#FFFFFF', 'primaryBorderColor': '#FBA225', 'lineColor': '#FBA225', 'background': '#0B0D17', 'mainBkg': '#0E1220', 'fontFamily': 'Inter, Arial, sans-serif', 'fontSize': '14px'}}}%%
mindmap
  root(("1.4.0版本的28个工具"))
    读取
      odoo_search_read
      odoo_fields_get
      odoo_search_count
      odoo_read_group
    导出
      odoo_export_records_json
      odoo_export_records_csv
    写入
      odoo_create 与 odoo_write
      odoo_unlink
      odoo_execute
    元数据
      odoo_version
      odoo_list_models
    Odoo Online
      odoo_online_profile
    导入
      odoo_import_preview
      odoo_import
    Studio风格结构变更
      无需Python的字段与视图
图8。按领域分组的最常用工具。全部28个工具的完整目录见仓库README。
图9。导入流程:文件先经过 odoo_import_preview;有错误则修正并重试;无错误则由 odoo_import 执行原子化导入。预演可能消耗序列号并触发webhook,因此要在隔离副本中测试。
查看 Mermaid 图
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#1a2035', 'primaryTextColor': '#FFFFFF', 'primaryBorderColor': '#FBA225', 'lineColor': '#FBA225', 'background': '#0B0D17', 'mainBkg': '#0E1220', 'fontFamily': 'Inter, Arial, sans-serif', 'fontSize': '14px', 'edgeLabelBackground': '#0E1220', 'clusterBkg': '#101828', 'clusterBorder': '#FBA225'}}}%%
flowchart LR
    F["CSV文件或数据行"] --> P["odoo_import_preview
使用Odoo自带导入器预演"] P --> R{"有错误?"} R -->|"是"| C["修正文件"] --> P R -->|"否"| I["odoo_import
原子化导入"] I --> O["Odoo中的记录"] P -.->|"可能的副作用"| W["消耗序列号
触发自动化操作的webhook"] W -.-> S["先在隔离副本中测试"]
图9。先预演再导入。预演不保存记录,但并非无害:它可能消耗序列号并触发自动化操作的webhook。
图10。只读模式关卡:启用 odoo_readonly 后,所有写入工具在到达Odoo之前被拒绝;读取工具照常运行。
查看 Mermaid 图
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#1a2035', 'primaryTextColor': '#FFFFFF', 'primaryBorderColor': '#FBA225', 'lineColor': '#FBA225', 'background': '#0B0D17', 'mainBkg': '#0E1220', 'fontFamily': 'Inter, Arial, sans-serif', 'fontSize': '14px', 'edgeLabelBackground': '#0E1220', 'clusterBkg': '#101828', 'clusterBorder': '#FBA225'}}}%%
flowchart TD
    T["工具调用"] --> K{"odoo_readonly 已启用?"}
    K -->|"否"| E["在Odoo上执行"]
    K -->|"是"| W{"是写入工具?
create、write、unlink、
execute、import"} W -->|"否"| E W -->|"是"| R["在触及Odoo之前
被拒绝"]
图10。只读模式是推荐试点的基础:拒绝发生在MCP服务器内部,先于任何RPC调用。

作为Claude Code插件安装

该插件从仓库的应用市场安装(/plugin marketplace add Transgenia/MCP-Odoo-Tools-CE-EE-and-online 和 /plugin install odoo-tools)。服务器使用 python3(3.9或更高版本)直接运行随附的源代码,不下载也不安装任何依赖。odoo-setup-mcp 技能将引导初始配置:实例URL、凭证和自动版本检测。Odoo工具以本地stdio MCP服务器的形式运行于Claude Code中,Claude Code会提示填写配置值(也可以用 /plugin configure 设置)。它们不在Cowork或Claude聊天中运行:Cowork会忽略此服务器,因为其必填选项没有默认值,而Cowork不会提示填写这些值,无论会话在云端还是在您的电脑上运行;Claude聊天会忽略插件的本地MCP服务器。两者都会加载插件的技能和命令,但不加载此本地MCP服务器。对Cowork和Claude聊天而言,可行路径是远程连接器:指向您的Odoo中MCP服务器的https网址,通过Odoo登录。已于2026年10月21日对照Anthropic官方矩阵核实。

插件还包括:

关于应用市场的说明:1.4.0版本已列入Claude插件目录,也可以从Transgenia的仓库安装;列入该目录并不意味着Anthropic对其进行认证或审计。

图11。五步安装:从仓库应用市场到自动版本检测,以及运行位置:Claude Code通过stdio运行MCP服务器;Cowork(云端或您的电脑上)和Claude聊天加载技能和命令,但不加载此本地MCP服务器;对Odoo工具而言,它们的可行路径是指向您的Odoo中MCP服务器的远程连接器,通过Odoo登录。
查看 Mermaid 图
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#1a2035', 'primaryTextColor': '#FFFFFF', 'primaryBorderColor': '#FBA225', 'lineColor': '#FBA225', 'background': '#0B0D17', 'mainBkg': '#0E1220', 'fontFamily': 'Inter, Arial, sans-serif', 'fontSize': '14px', 'edgeLabelBackground': '#0E1220', 'clusterBkg': '#101828', 'clusterBorder': '#FBA225'}}}%%
flowchart TD
    A["/plugin marketplace add
Transgenia/MCP-Odoo-Tools-CE-EE-and-online"] --> B["/plugin install odoo-tools"] B --> C["python3 3.9或更高
不下载任何依赖"] C --> D["odoo-setup-mcp 技能
实例URL与凭证"] D --> E["自动检测
版本与版次"] E --> F{"客户端在哪里运行?"} F -->|"Claude Code"| G["本地MCP服务器
通过stdio"] F -->|"Claude聊天和Cowork
(云端或您的电脑上)"| H["加载技能和命令,
不加载此本地MCP服务器"] H -.->|"Odoo工具的
可行路径"| R["远程连接器:https网址,
指向您Odoo中的MCP服务器,
通过Odoo登录"]
图11。安装与执行范围。服务器按设计在本地运行;Cowork和Claude聊天不加载此本地MCP服务器,因此对它们而言,可行路径是远程连接器。

公开层有意排除的内容

公开版本包含通用核心。以下内容是有意保留在私有层的:

这些层只有在有监督的实施环境中才有意义。公开核心本身已完全可用,这些不是为了推动升级而削减的功能,而是需要团队入职流程的功能模块。

如需了解插件之前的基础API Key层,通过API Key将Odoo连接到Claude并无需Python创建自定义视图介绍了基础选项及其实际局限性。

图12。两个模块:MIT许可的公开核心包含28个工具、兼容层、传输协议、技能、智能体与CLI;有监督的实施层包含CFDI与SAT财税层、VoBo中间件、S3备份与发票视觉。
查看 Mermaid 图
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#1a2035', 'primaryTextColor': '#FFFFFF', 'primaryBorderColor': '#FBA225', 'lineColor': '#FBA225', 'background': '#0B0D17', 'mainBkg': '#0E1220', 'fontFamily': 'Inter, Arial, sans-serif', 'fontSize': '14px', 'edgeLabelBackground': '#0E1220', 'clusterBkg': '#101828', 'clusterBorder': '#FBA225'}}}%%
flowchart LR
    subgraph P["公开核心,MIT许可"]
        P1["28个工具"]
        P2["兼容层 10至19"]
        P3["三种传输协议"]
        P4["技能、智能体与CLI备用方案"]
    end
    subgraph S["有监督的实施"]
        S1["墨西哥财税层,CFDI与SAT"]
        S2["VoBo中间件"]
        S3["S3备份"]
        S4["视觉与发票解析"]
    end
    P -->|"需要与团队完成入职流程"| S
图12。公开与监督。核心本身已可用;右侧各层依赖入职流程,而非商业锁定。

为何选择开源,为何选择MIT

有一个务实的理由:封闭的MCP服务器会造成供应商依赖。如果定价改变、商业模式转变或公司消失,AI智能体就会停止工作。有了开源(MIT),企业拥有代码,可以自行托管,可以聘请任何服务商维护。即使Transgenia明天不复存在,该插件仍然可以正常运行。

还有生态系统方面的考量:越多企业为Odoo MCP服务器做出贡献,它对所有人就越健壮。兼容层今天覆盖Odoo 10-19;社区可以在不依赖任何特定供应商的情况下将其扩展到未来版本。

我们选择MIT而非AGPL,是为了让企业无需担心著佐权限制就能将插件集成到其专有技术栈中。著佐权有其适用场景;这里我们优先考虑推广采用。

图13。对比:封闭的MCP服务器在定价改变、商业模式转变或供应商消失时停止工作;在MIT许可下企业拥有代码、可自行托管、任何服务商都能维护,且无著佐权限制即可集成。
查看 Mermaid 图
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#1a2035', 'primaryTextColor': '#FFFFFF', 'primaryBorderColor': '#FBA225', 'lineColor': '#FBA225', 'background': '#0B0D17', 'mainBkg': '#0E1220', 'fontFamily': 'Inter, Arial, sans-serif', 'fontSize': '14px', 'edgeLabelBackground': '#0E1220', 'clusterBkg': '#101828', 'clusterBorder': '#FBA225'}}}%%
flowchart TD
    C["封闭的MCP服务器"] --> C1["定价改变"] --> X["智能体停止工作"]
    C --> C2["商业模式转变"] --> X
    C --> C3["供应商消失"] --> X
    M["MCP-Odoo-Tools,MIT许可"] --> M1["企业拥有代码"]
    M --> M2["可自行托管"]
    M --> M3["任何服务商都能维护"]
    M --> M4["无著佐权限制
可集成到专有技术栈"] M1 & M2 & M3 & M4 --> Y["即使Transgenia明天不复存在
依然正常运行"]
图13。许可证的务实理由。选择MIT而非AGPL:这里优先考虑推广采用而非著佐权。

已验证的技术质量

插件附带完整的CI体系:

图14。五阶段CI流水线:27个单元测试、Python 3.11与3.12上的ruff、TypeScript CLI编译、列出28个工具的真实MCP握手,以及Odoo社区版10.0至19.0十个版本全部通过的矩阵。
查看 Mermaid 图
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#1a2035', 'primaryTextColor': '#FFFFFF', 'primaryBorderColor': '#FBA225', 'lineColor': '#FBA225', 'background': '#0B0D17', 'mainBkg': '#0E1220', 'fontFamily': 'Inter, Arial, sans-serif', 'fontSize': '14px', 'edgeLabelBackground': '#0E1220', 'clusterBkg': '#101828', 'clusterBorder': '#FBA225'}}}%%
flowchart LR
    A["27个单元测试
兼容性、传输、缓存"] --> B["ruff
Python 3.11与3.12"] B --> C["TypeScript CLI
编译无错误"] C --> D["通过stdio的真实MCP握手
列出全部28个工具"] D --> E["Odoo社区版矩阵 10.0至19.0
十个版本全部通过,2026年10月5日"] E --> F(["发布1.4.0版本"])
图14。每次发布前运行的检查。真实版本矩阵是支撑10至19兼容承诺的关键阶段。

如何开始

如果您有Odoo实例并希望探索AI智能体集成,推荐的路径分三步:

  1. 实例诊断:版本、版次、已安装模块以及适合AI自动化的业务流程。
  2. 只读试点:启用插件的只读模式(odoo_readonly 选项),服务器将拒绝所有写入操作,在此模式下验证响应的正确性,然后再操作生产数据。
  3. 写操作前先建立治理:对每次写入进行人工审核(VoBo)不属于公开核心,而是陪伴式实施的一个层级,需与Transgenia团队共同配置后,才在生产环境启用写入。

如果您希望在决策前先看到实际运行效果,我们的分行业演示展示了智能体使用相同MCP协议处理诊所和批发分销商数据的场景。

→ 查看演示 →

图15。三步采用路径:实例诊断、启用 odoo_readonly 的只读试点、启用生产写入前的VoBo治理;若试点响应不正确则回到诊断。
查看 Mermaid 图
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#1a2035', 'primaryTextColor': '#FFFFFF', 'primaryBorderColor': '#FBA225', 'lineColor': '#FBA225', 'background': '#0B0D17', 'mainBkg': '#0E1220', 'fontFamily': 'Inter, Arial, sans-serif', 'fontSize': '14px', 'edgeLabelBackground': '#0E1220', 'clusterBkg': '#101828', 'clusterBorder': '#FBA225'}}}%%
flowchart LR
    A["1. 诊断
版本、版次、模块与流程"] --> B["2. 只读试点
启用 odoo_readonly"] B --> C["3. VoBo治理
每次写入均有人工审核"] C --> D["生产环境写入"] B -.->|"若响应不正确"| A
图15。推荐路径。VoBo不属于公开核心:在首次生产写入之前,与Transgenia团队共同配置。

常见问题

MCP-Odoo-Tools是免费的吗?

是的。公开层采用MIT许可,不收取费用。您可以从GitHub仓库自行安装和配置。墨西哥财税层(CFDI/SAT)、写操作治理中间件(VoBo)及其他高级组件可在Transgenia的有监督实施方案中获取。

支持哪些Odoo版本?

支持Odoo社区版、企业版及在线版(SaaS),版本从10到19。兼容层自动解析各版本间模型和字段名称的差异,包括v13中的 account.invoice → account.move 等重命名,以及后续版本中的其他变更。

仅支持Claude,还是支持其他AI智能体?

支持任何实现了模型上下文协议(MCP)的智能体。MCP是Anthropic作为开放规范发布的标准。Claude Code是该插件针对的参考环境,但服务器提供兼容其他MCP客户端的标准接口。

插件会将我公司的数据发送到Transgenia的服务器吗?

不会。MCP服务器运行在您的计算机或您选择的基础设施中,直接与您的Odoo实例通信。Transgenia不接收、不中转、也不保留插件的任何数据(凭证、记录或提示词)。Odoo返回的结果会传送到您的MCP客户端,再发送给您所使用的模型提供商(例如Claude对应的Anthropic);这一环节受您的Odoo和AI提供商条款约束,与Transgenia无关。

它是Anthropic认可的官方插件吗?

目前还不是。该插件是开源的,从Transgenia自有仓库分发。1.4.0版本已列入Claude插件目录;列入该目录并不意味着Anthropic对其进行认证或审计。Transgenia是Anthropic Claude合作伙伴网络的注册合作伙伴,这意味着Anthropic认可我们作为合作伙伴,而不是说该插件经过他们的认证或审计。这个区别很重要:代码是开放的,任何人都可以审查。

图16。数据流:在您的基础设施内,MCP客户端通过stdio与MCP-Odoo-Tools通信,服务器通过RPC与您的Odoo通信;客户端与模型提供商交换提示词和结果;Transgenia在数据流之外。
查看 Mermaid 图
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#1a2035', 'primaryTextColor': '#FFFFFF', 'primaryBorderColor': '#FBA225', 'lineColor': '#FBA225', 'background': '#0B0D17', 'mainBkg': '#0E1220', 'fontFamily': 'Inter, Arial, sans-serif', 'fontSize': '14px', 'edgeLabelBackground': '#0E1220', 'clusterBkg': '#101828', 'clusterBorder': '#FBA225'}}}%%
flowchart LR
    subgraph T["您的基础设施"]
        M["MCP客户端"] <-->|stdio| S["MCP-Odoo-Tools"]
        S <-->|"JSON-2、JSON-RPC或XML-RPC"| O["您的Odoo实例"]
    end
    M <-->|"提示词与结果"| P["模型提供商
例如Anthropic的Claude"] X["Transgenia
在数据流之外:
不接收凭证、记录或提示词"]
图16。对隐私问题的可视化回答。与任何工具一样,通往模型提供商的链路存在,并受其条款约束,而非Transgenia。

关于作者和Transgenia

Efraín Carreón Ortiz是墨西哥科技精品公司 Centrum Transgenia 的首席执行官。他持有Anthropic颁发的官方 Claude Code 徽章(Claude合作伙伴徽章),可在 Credly 上验证。

Transgenia是 OpenAI合作伙伴网络 中的 OpenAI精选合作伙伴,同时也是Anthropic Claude合作伙伴网络的 注册合作伙伴。我们在自有生产环境中运营十二个受治理的AI智能体,并在医疗和B2B领域提供可验证的实施陪伴服务。

联系我们:LinkedIn、15分钟预约 或 联系页面。

继续阅读

← 返回博客
Transgenia, Verified IT agency on Vai.me