返回市场
奥多-MCP服务器

奥多-MCP服务器

作者:vzeman14 星标更新:2025-09-10

项目介绍

Odoo MCP Server (混合模式)

一个混合模型上下文协议(MCP)服务器,使AI助手能够与Odoo ERP系统交互。支持HTTP流式传输(用于网络AI代理)和标准I/O(用于本地AI助手)两种模式。

📺 演示

标准I/O模式演示(Claude桌面)

标准I/O模式演示

HTTP模式演示(AI代理及远程访问)

HTTP模式演示

示例输出

输出示例

🚀 快速开始

HTTP模式(AI代理及远程访问)

# 克隆仓库
git clone https://github.com/vzeman/odoo-mcp-server.git
cd odoo-mcp-server

# 复制示例并配置
cp docker-compose.example.yml docker-compose.yml
# 编辑docker-compose.yml文件,填写您的Odoo凭证

# 使用Docker Compose启动服务
docker-compose up -d

# 访问服务器
curl http://localhost:8000/health

标准I/O模式(Claude桌面)

方案1:从PyPI安装(推荐)

# 安装
pip install odoo-mcp-server

方案2:从源码安装

# 克隆仓库
git clone https://github.com/vzeman/odoo-mcp-server.git
cd odoo-mcp-server

# 开发模式安装
pip install -e .

配置Claude桌面

在您的Claude桌面配置文件中添加以下内容:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "odoo": {
      "command": "python",
      "args": ["-m", "mcp_server_odoo"],
      "env": {
        "ODOO_URL": "https://your-instance.odoo.com",
        "ODOO_DB": "your-database",
        "ODOO_USERNAME": "your-email@example.com",
        "ODOO_API_KEY": "your-api-key"
      }
    }
  }
}

本地开发

# 克隆仓库
git clone https://github.com/vzeman/odoo-mcp-server.git
cd odoo-mcp-server

# 安装依赖
pip install -e .

# 设置环境变量
export ODOO_URL="https://your-instance.odoo.com"
export ODOO_DB="your-database"
export ODOO_USERNAME="your-email@example.com"
export ODOO_API_KEY="your-api-key"

# 运行HTTP服务器
python -m mcp_server_odoo.http_server

# 运行标准I/O服务器
python -m mcp_server_odoo

🌐 使用ngrok进行远程访问(AI代理集成)

此实现允许您将自己的本地MCP服务器暴露给像Flowhunt这样的AI代理,从而实现Odoo业务流程的远程自动化。

为什么使用ngrok?

  • 远程AI访问:AI代理可以从任何地方连接到您的MCP服务器
  • 业务自动化:启用Flowhunt和其他AI平台来自动化您的Odoo工作流程
  • 安全隧道:ngrok提供带有身份验证的安全HTTPS隧道
  • 无需基础设施:无需部署到云服务器

设置指南

1. 安装ngrok

下载并安装:

# macOS(使用Homebrew)
brew install ngrok

# 或者直接从 https://ngrok.com/download 下载

注册并获取您的authtoken:

  1. 前往 ngrok.com 并创建一个免费账户
  2. 从仪表板获取您的authtoken
  3. 配置ngrok:
ngrok config add-authtoken YOUR_AUTHTOKEN_HERE

2. 启动您的MCP服务器

# 使用Docker启动MCP服务器
docker-compose up -d

# 验证本地运行情况
curl http://localhost:8000/health

3. 创建ngrok隧道

# 创建到本地MCP服务器的公共隧道
ngrok http http://localhost:8080

# 您会看到类似以下输出:
# Session Status                online
# Account                       your-email@example.com
# Version                       3.x.x
# Region                        United States (us)
# Latency                       -
# Web Interface                 http://127.0.0.1:4040
# Forwarding                    https://abc123.ngrok-free.app -> http://localhost:8000

复制HTTPS URL(例如,https://abc123.ngrok-free.app)——这是您的公共MCP服务器端点。

4. 配置Flowhunt集成

Flowhunt实施过程:

创建一个带有AI代理的自定义流程:

  1. 创建新流程:

    • 转到Flowhunt仪表板
    • 点击“创建新流程”
    • 给您的流程命名(例如,“Odoo业务自动化”)
  2. 添加AI代理组件:

    • 将“AI代理”组件拖放到您的流程中
    • 将AI代理连接到:
      • 输入:数据源或触发器
      • 输出:工作流中的下一步
      • 聊天历史记录:用于上下文和对话记忆
      • MCP服务器:您的Odoo MCP服务器
  3. 配置MCP服务器连接:

    • 在AI代理设置中,转到“MCP服务器配置”
    • 服务器URLhttps://abc123.ngrok-free.app
    • 协议:HTTP/HTTPS
    • 认证:无(或根据需要配置)
    • 保存配置
  4. 测试连接:

    • 在您的Flowhunt流程中,与AI代理开始聊天
    • 请求AI测试Odoo连接,例如:
      “能否列出所有可用的Odoo模型?”
      “显示系统中的前5个客户”
      “有哪些工具可用于Odoo操作?”
      
    • AI应该能够通过MCP服务器访问您的Odoo数据

5. Flowhunt工作流程示例

完整的流程设置过程:

  1. 客户跟进流程:

    触发:每日计划或webhook
    ↓
    AI代理:“查找过去6个月未购买的客户”
    ↓(使用MCP:search_records)
    AI代理:“为每个客户创建跟进任务”
    ↓(使用MCP:create_record)
    输出:电子邮件报告或Slack通知
    
  2. 销售订单自动化:

    触发:新的潜在客户资格webhook
    ↓
    AI代理:“检查潜在客户是否合格并准备好销售订单”
    ↓(使用MCP:search_records, get_record)
    AI代理:“创建具有适当产品的销售订单”
    ↓(使用MCP:create_record)
    输出:销售订单确认电子邮件
    
  3. 库存管理流程:

    触发:每小时计划
    ↓
    AI代理:“检查所有产品是否有低库存水平”
    ↓(使用MCP:search_records)
    AI代理:“为低于补货点的项目创建采购订单”
    ↓(使用MCP:create_record)
    输出:向采购团队发送采购订单通知
    

针对Odoo操作的AI代理提示:

# 客户管理
“查找加利福尼亚州总销售额超过10,000美元的所有客户”

# 销售操作
“为客户ID 42创建一个新的销售订单,包含5个产品ID 123的单位”

# 库存跟踪
“查找所有库存数量低于10的产品,并创建采购订单”

# 财务报告
“生成过去30天内所有未支付发票的报告”

高级ngrok配置

自定义子域(付费计划)

# 使用自定义子域以获得一致的URL
ngrok http 8000 --subdomain=my-odoo-mcp
# 结果为:https://my-odoo-mcp.ngrok.io

认证与安全性

# 添加基本认证
ngrok http 8000 --basic-auth="username:password"

# 添加自定义头
ngrok http 8000 --request-header-add="X-Custom-Header: value"

多个隧道

# 为不同的服务创建多个隧道
ngrok http 8000 --subdomain=odoo-mcp
ngrok http 3000 --subdomain=odoo-web

生产考虑

1. 持久隧道

对于生产用途,请考虑:

  • ngrok Pro/Enterprise:持久URL和自定义域名
  • 自托管ngrok:完全控制
  • 替代方案:Cloudflare Tunnel, localtunnel等

2. 安全最佳实践

# 使用认证
ngrok http 8000 --basic-auth="admin:secure-password"

# 限制特定IP(如果使用ngrok Pro)
ngrok http 8000 --allow-cidr="192.168.1.0/24"

# 使用自定义域名和SSL
ngrok http 8000 --hostname=your-domain.com

3. 监控与日志

# 查看ngrok Web界面
# 在浏览器中打开 http://127.0.0.1:4040

# 监控请求和响应
# 检查MCP服务器日志
docker-compose logs -f mcp-server

故障排除

常见问题

1. ngrok隧道无法工作:

# 检查ngrok是否已认证
ngrok config check

# 验证本地服务器是否正在运行
curl http://localhost:8000/health

# 检查ngrok状态
ngrok status

2. AI代理无法连接:

  • 尝试在聊天中向AI代理提问简单问题:
    “有哪些Odoo模型可用?”
    “能否搜索客户?”
    
  • 检查AI是否返回Odoo数据或错误消息
  • 验证AI代理设置中的MCP服务器URL是否正确
  • 确保ngrok隧道仍然活跃(检查ngrok仪表板)

3. 认证问题:

  • 如果您在ngrok中配置了基本认证,请确保AI代理设置中包含凭据
  • 在AI聊天中测试: “能否访问Odoo系统?”
  • 检查AI代理的MCP服务器配置中的认证设置
  • 验证ngrok隧道是否使用相同的认证凭据配置

集成示例

Flowhunt流程配置

在Flowhunt仪表板中:

  1. 流程结构:

    [输入/触发] → [AI代理] → [输出/动作]
                         ↓
                    [聊天历史记录]
                         ↓
                    [MCP服务器] ← ngrok URL
    
  2. AI代理MCP设置:

    • MCP服务器URLhttps://abc123.ngrok-free.app
    • 连接类型:HTTP/HTTPS
    • 认证:无(或Basic Auth如果已配置)
    • 可用工具:所有12个Odoo MCP工具将自动检测
  3. 流程示例配置:

    流程名称: "Odoo客户管理"
    组件:
      - 输入:Webhook/API触发
      - AI代理:
        - 模型:GPT-4或Claude
        - MCP服务器:https://abc123.ngrok-free.app
        - 聊天历史记录:启用
      - 输出:电子邮件通知或webhook响应
    

自定义AI代理集成

import requests

class RemoteOdooMCPClient:
    def __init__(self, ngrok_url, auth=None):
        self.base_url = ngrok_url.rstrip('/')
        self.auth = auth
    
    def call_tool(self, tool_name, **kwargs):
        response = requests.post(
            f"{self.base_url}/",
            json={
                "jsonrpc": "2.0",
                "id": 1,
                "method": "tools/call",
                "params": {
                    "name": tool_name,
                    "arguments": kwargs
                }
            },
            auth=self.auth
        )
        return response.json()

# 使用
client = RemoteOdooMCPClient("https://abc123.ngrok-free.app")
customers = client.call_tool("search_records", model="res.partner", limit=10)

此设置使您能够通过安全的远程访问实现强大的AI驱动的Odoo业务流程自动化!

自定义MCP服务器开发

我们为客户开发MCP服务器,如果您需要类似于Odoo MCP服务器的自有系统MCP服务器,请联系我们(https://www.flowhunt.io/contact/)。以下是我们的MCP服务器开发描述:https://www.flowhunt.io/services/mcp-server-development/

演示

📺 观看YouTube上的演示

功能

  • 🔍 查询记录:使用复杂的领域过滤器查询任何Odoo模型
  • 创建记录:向任何Odoo模型添加新记录
  • ✏️ 更新记录:修改现有记录
  • 🗑️ 删除记录:从系统中移除记录
  • 📊 读取记录:获取特定记录的详细信息
  • 📋 列出模型:发现您Odoo实例中的可用模型
  • 🔧 模型内省:获取任何模型的字段定义
  • 🌐 HTTP流式传输:完整的MCP可流式传输HTTP传输支持
  • 🐳 Docker就绪:使用Docker Compose的完整容器化
  • 🔄 服务器发送事件:实时流式传输响应
  • 🛡️ 安全性:来源验证、CORS支持和会话管理
  • 📊 监控:健康检查、指标和可观测性

安装

🐳 Docker(推荐)

# 克隆仓库
git clone https://github.com/vzeman/odoo-mcp-server.git
cd odoo-mcp-server

# 复制环境文件并配置
cp .env.example .env
# 编辑.env文件,填写您的Odoo凭证

# 使用Docker Compose启动
docker-compose up -d

📦 通过pip

pip install odoo-mcp-server

🔧 从源码

git clone https://github.com/vzeman/odoo-mcp-server.git
cd odoo-mcp-server
pip install -e .

配置

环境变量

在您的项目目录中创建一个.env文件或设置这些环境变量:

ODOO_URL=https://your-instance.odoo.com
ODOO_DB=your-database-name
ODOO_USERNAME=your-username@example.com
ODOO_API_KEY=your-api-key-here

获取Odoo凭证

  1. API密钥

    • 登录到您的Odoo实例
    • 转到设置 → 用户与公司 → 用户
    • 选择您的用户
    • 在“API密钥”或“安全”标签下,创建一个新的API密钥
    • 立即复制该密钥(它不会再次显示)
  2. 数据库名称

    • 登录后通常可见于URL中
    • 或检查设置 → 激活开发者模式 → 数据库信息
  3. 用户名

    • 您的登录电子邮件地址

🚀 快速开始

Docker部署

  1. 克隆并配置
git clone https://github.com/vzeman/odoo-mcp-server.git
cd odoo-mcp-server
  1. 配置您的Odoo凭证
# 复制示例文件
cp docker-compose.example.yml docker-compose.yml

# 编辑docker-compose.yml文件,填写您的Odoo凭证
nano docker-compose.yml

或者直接编辑环境部分:

environment:
  - ODOO_URL=https://your-instance.odoo.com
  - ODOO_DB=your-database-name
  - ODOO_USERNAME=your-username@example.com
  - ODOO_API_KEY=your-api-key-here
  1. 启动服务
# 基本部署
docker-compose up -d

# 带有监控堆栈
docker-compose --profile monitoring up -d

# 带有nginx代理
docker-compose --profile proxy up -d
  1. 访问服务器
  • MCP端点http://localhost:8000/mcphttp://localhost:8000/(POST)
  • 健康检查http://localhost:8000/health
  • API文档http://localhost:8000/docs
  • 服务器信息http://localhost:8000/(GET)

本地开发

# 安装依赖
pip install -e .

# 设置环境变量
export ODOO_URL="https://your-instance.odoo.com"
export ODOO_DB="your-database"
export ODOO_USERNAME="your-email@example.com"
export ODOO_API_KEY="your-api-key"

# 运行HTTP服务器
python -m mcp_server_odoo

🔌 客户端集成

MCP服务器检查器

服务器完全兼容MCP服务器检查器。使用以下连接设置:

  • URLhttp://localhost:8000
  • 方法POST
  • Content-Typeapplication/json
  • 端点/(根端点)

服务器自动处理根端点上的GET(服务器信息)和POST(MCP协议)请求。

HTTP流式传输客户端

使用