Odoo集成服务器

一个与Odoo ERP系统集成的MCP服务器实现,使AI助手能够通过模型上下文协议与Odoo数据和功能进行交互。

  • by bymbcom
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 bymbcom/mcp-odoo

使用说明

OdoMPServer

与Odoo ERP系统集成的MCP服务器实现,使AI助手能够通过模型上下文协议与Odoo数据和功能进行交互。

特性

  • 全面的Odoo集成:完全访问Odoo模型、记录和方法
  • XML-RPC通信:通过XML-RPC安全连接到Odoo实例
  • 灵活的配置:支持配置文件和环境变量
  • 资源模式系统:基于URI的Odoo数据结构访问
  • 错误处理:清除常见Odoo API问题的错误消息
  • 无状态操作:清洁的请求/响应周期,实现可靠的集成

工具

  • execute_方法

    • 在Odoo模型上执行自定义方法
    • 输入:
      • model (string):模型名称(例如“res.partner”)
      • method (string):要执行的方法名称
      • args (可选数组):位置参数
      • kwargs (可选对象):关键字参数
    • 返回:包含方法result和成功指示符的字典
  • 搜索_员工

    • 按姓名搜索员工
    • 输入:
      • name (string):要搜索的名称(或名称的一部分)
      • limit (可选数字):要返回的最大结果数(默认值为20)
    • 返回:包含成功指示符、匹配的员工姓名和ID列表以及任何错误消息的对象
  • 搜索_假期

    • 搜索指定日期范围内的假期
    • 输入:
      • start_date (字符串):YYYY-MM-DD格式的开始日期
      • end_date (字符串):YYYY-MM-DD格式的结束日期
      • employee_id (可选编号):可选员工ID,用于过滤假期
    • 返回:包含成功指示符、找到的假日列表和任何错误消息的对象

资源

  • odoo://models

    • 列出Odoo系统中的所有可用型号
    • 返回:模型信息的JSON数组
  • odoo://model/Timomdel_namer

    • 获取有关特定模型的信息,包括字段
    • 例子: odoo://model/res.partner
    • 返回:带有模型元数据和字段定义的JSON对象
  • odoo://record/{型号名称}/{记录id}

    • 按ID获取特定记录
    • 例子: odoo://record/res.partner/1
    • 返回:包含记录数据的JSON对象
  • odoo://search/{模型名}/{域}

    • 搜索与域匹配的记录
    • 例子: odoo://search/res.partner/[["is_company","=",true]]
    • 返回:匹配记录的JSON数组(默认限制为10)

配置

OdoConcetionSetup

  1. 创建名为的配置文件 odoo_config.json:
{
  "url": "https://your-odoo-instance.com",
  "db": "your-database-name",
  "username": "your-username",
  "password": "your-password-or-api-key"
}
  1. 或者,使用环境变量:
    • ODOO_URL有记者问:到“orOdosermere”
    • ODOO_DB:数据库名称
    • ODOO_USERNAME:登录用户名
    • ODOO_PASSWORD:密码或API密钥
    • ODOO_TIMEOUT:连接超时(秒)(默认值:30)
    • ODOO_VERIFY_SSL:是否验证SSL证书(默认值:true)
    • HTTP_PROXY:强制ODOO连接使用HTTP代理

使用Claude Desktop

将此添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "odoo": {
      "command": "python",
      "args": [
        "-m",
        "odoo_mcp"
      ],
      "env": {
        "ODOO_URL": "https://your-odoo-instance.com",
        "ODOO_DB": "your-database-name",
        "ODOO_USERNAME": "your-username",
        "ODOO_PASSWORD": "your-password-or-api-key"
      }
    }
  }
}

码头工人

{
  "mcpServers": {
    "odoo": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "ODOO_URL",
        "-e",
        "ODOO_DB",
        "-e",
        "ODOO_USERNAME",
        "-e",
        "ODOO_PASSWORD",
        "mcp/odoo"
      ],
      "env": {
        "ODOO_URL": "https://your-odoo-instance.com",
        "ODOO_DB": "your-database-name",
        "ODOO_USERNAME": "your-username",
        "ODOO_PASSWORD": "your-password-or-api-key"
      }
    }
  }
}

安装

Python包

pip install odoo-mcp

运行服务器

# Using the installed package
odoo-mcp

# Using the MCP development tools
mcp dev odoo_mcp/server.py

# With additional dependencies
mcp dev odoo_mcp/server.py --with pandas --with numpy

# Mount local code for development
mcp dev odoo_mcp/server.py --with-editable .

构建

Docker构建:

docker build -t mcp/odoo:latest -f Dockerfile .

参数格式指南

使用Odoo的MCP工具时,请注意以下参数格式指南:

  1. 域参数:

    • 支持以下域格式:
      • 列表格式: [["field", "operator", value], ...]
      • 对象格式: {"conditions": [{"field": "...", "operator": "...", "value": "..."}]}
      • 任意格式的JSON字符串
    • 示例:
      • 列表格式: [["is_company", "=", true]]
      • 对象格式: {"conditions": [{"field": "date_order", "operator": ">=", "value": "2025-03-01"}]}
      • 多种条件: [["date_order", ">=", "2025-03-01"], ["date_order", "<=", "2025-03-31"]]
  2. 字段参数:

    • 应为字段名数组: ["name", "email", "phone"]
    • 服务器将尝试将字符串输入解析为JSON

许可证

此MCP服务器根据MIT许可证获得许可。