Skip to main content
Glama
Alberto-Cabale

odoo-mcp-bridge

Pont MCP Odoo ↔ Claude — 部署指南

这个小项目在您的 Odoo 实例(via-italia.odoo.com)和 Claude 之间建立连接,让我能够直接读写 Odoo(库存、发票、客户、催款),而您无需在界面中点击操作。

它持续运行在云托管服务上(Render,初期免费)。Claude 通过正规的身份验证(OAuth)连接:第一次会有一个登录页面要求您输入秘密令牌;之后 Claude 保持自动连接,秘密令牌永远不会出现在 URL 中。

无需任何 Git 命令行操作:一切都在浏览器中完成。


第 0 步 — 开始前需要准备的内容

  • 在 via-italia.odoo.com 中生成的 Odoo API 密钥(我的偏好 → 账户安全 → 新建 API 密钥)。请妥善保管,您将在第 3 步粘贴它。

  • 一个用于保护访问的秘密令牌。现在就生成一个(只与 Render 分享,绝不要分享到其他地方):

    • 在 Mac 上:打开终端,输入 openssl rand -hex 24,复制结果。

    • 其他方式:任何能生成约 40 个随机字符的密码生成器都可以。

Related MCP server: odoo-mcp-server

第 1 步 — 将这些文件放到 GitHub 上(无需 Git)

  1. 前往 github.com 并创建一个免费账户(如果还没有的话)。

  2. 点击 New repository。名称:odoo-mcp-bridge(或您想要的任何名称)。保持 Public(这是无需关联账户即可部署到 Render 所必需的)。不要勾选其他任何选项。点击 Create repository。

  3. 在新的空仓库页面上,点击 uploading an existing file。

  4. 将本文件夹中的 6 个文件(Dockerfile、proxy.py、oauth_provider.py、requirements.txt、start.sh、README.md)拖放到上传区域。

  5. 点击 Commit changes。

记下仓库的 URL,格式为 https://github.com/您的账户名/odoo-mcp-bridge。

第 2 步 — 在 Render 上创建服务

  1. 前往 render.com 并创建一个免费账户。

  2. 点击 New + → Web Service。

  3. 选择 Public Git Repository 并粘贴第 1 步中 GitHub 仓库的 URL。点击 Connect。

  4. 服务名称:via-italia-odoo-mcp(或其他名称)。

  5. Render 会自动检测 Dockerfile — 保持 Docker 模式。

  6. 实例类型:先选择 Free(足以用于测试)。

第 3 步 — 环境变量

仍然在此创建页面上,展开 Advanced → Add Environment Variable,并添加:

键名

值

BRIDGE_SECRET

第 0 步生成的令牌

ODOO_URL

https://via-italia.odoo.com

ODOO_API_KEY

第 0 步生成的 Odoo API 密钥

ODOO_YOLO

先设为 read(只读,无风险)

(ODOO_DB 不是必需的,Odoo 会自动检测。)

点击 Create Web Service。首次部署需要 2-3 分钟 — 您会看到构建日志滚动显示。

第 4 步 — 验证服务是否正常运行

部署状态变为 "Live" 后,您的服务会有一个类似 https://via-italia-odoo-mcp.onrender.com 的地址。

先在浏览器中测试 https://via-italia-odoo-mcp.onrender.com/healthz:您应该看到 ok。

您的连接器地址(即提供给 Claude 的地址)就是:

https://via-italia-odoo-mcp.onrender.com/mcp

这个 URL 中不包含令牌——可以安全共享,保护机制在下一步进行。

第 5 步 — 连接 Claude

在 Claude 中:Customize → Connectors → "+" → Add custom connector,粘贴第 4 步的 URL,点击 Add,然后点击 Connecter。

会打开一个登录页面,要求您输入 BRIDGE_SECRET(第 0 步生成的令牌)— 输入并确认。之后 Claude 保持连接状态;除非您重新部署服务(这会清除内存中的会话),否则无需再次操作。

然后回到与 Claude 的对话中,让它验证连接(例如:"列出我最近的 Odoo 报价")。

第 6 步 — 切换到读写模式

当只读功能正常且您感到满意后,回到 Render → 您的服务 → Environment,将 ODOO_YOLO 从 read 改为 true,然后重新部署(Render 会在变量更改后自动执行)。Claude 将能够创建发票、更新库存等 — 仅在您准备好让它实际写入 Odoo 时再启用。

需要了解的局限性

  • Render 的 Free 计划会在 15 分钟无流量后将服务置于休眠状态:暂停后的第一个请求需要 30-60 秒等待服务唤醒。对于更流畅的日常使用,付费计划(约 7 美元/月)可以消除这种休眠。

  • 会话(签发的 OAuth 令牌)保存在服务的内存中,而非磁盘上:重新部署或重启会清除它们,需要在 Claude 端重新执行"连接"操作(只需重新输入 BRIDGE_SECRET,仅此而已)。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Odoo ERP systems through 17+ business tools covering sales, purchasing, inventory, and accounting operations. Supports both Claude Desktop integration and web deployment with dual transport modes.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables Claude to interact with Odoo through 12 MCP tools covering discovery, CRUD operations, and bulk import/export via XML-RPC.
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Connects MCP clients like Claude to your Odoo ERP, enabling natural language queries, reports, and optional data modifications.
    9
    42 npm
    MIT