Odoo模型协议服务器

为AI助手提供Odoo功能集成的模型上下文协议服务器,支持XML-RPC通信、模型发现和数据查询。

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

使用说明

Odoo MCP - Odoo的模型上下文协议服务器

这个软件包提供了一个模型上下文协议(MCP)服务器,用于向像Claude这样的AI助手暴露Odoo的功能。

特点/特性

  • 与Odoo进行XML-RPC通信
  • 模型发现与检查
  • 数据查询
  • 用于AI集成的MCP服务器

安装

使用Claude代码(推荐)

使用Claude Code与这个MCP服务器的最简单方法是通过 uvx:

# Install with environment variables
claude mcp add --transport stdio odoo \
  --env ODOO_URL=https://your-odoo-server.com \
  --env ODOO_DB=your_database_name \
  --env ODOO_USERNAME=your_username \
  --env ODOO_PASSWORD=your_password \
  --env MODEL_EXCLUSION_PREFIXES=ir.,mail.,bus.,base. \
  -- uvx --from git+https://github.com/jmceleney/odoo-mcp odoo-mcp

与Cursor IDE一起使用

要使用Cursor IDE连接到此MCP服务器,您需要在MCP设置文件中进行配置。

先决条件:

  • Cursor 版本 0.47.x 或更高版本
  • Node.js 18.x.x 或更高版本

配置步骤:

  1. 在指定位置创建或编辑MCP配置文件 ~/.cursor/mcp.json (对于全局设置)或 .cursor/mcp.json 在您的项目目录中(用于项目特定设置)

  2. 添加Odoo MCP服务器配置:

{
  "mcpServers": {
    "odoo": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/jmceleney/odoo-mcp",
        "odoo-mcp"
      ],
      "env": {
        "ODOO_URL": "https://your-odoo-server.com",
        "ODOO_DB": "your_database_name",
        "ODOO_USERNAME": "your_username",
        "ODOO_PASSWORD": "your_password",
        "MODEL_EXCLUSION_PREFIXES": "ir.,mail.,bus.,base."
      }
    }
  }
}
  1. 重启 Cursor IDE 以加载新配置

  2. Odoo MCP 工具现在将在 Cursor 的 AI 聊天中可用。您可以指示 Cursor 使用这些工具,例如:“请使用 Odoo MCP 列出所有客户模型”

与 .env 文件一起使用:

如果你更倾向于将凭证保存在 .env 文件,省略 env 从配置中选择部分并确保您的 .env 文件位于您的项目目录中。

与VSCode和GitHub Copilot一起使用

要使用此MCP服务器与Visual Studio Code和GitHub Copilot配合,您需要将其配置为MCP服务器。

先决条件:

  • Visual Studio Code 版本 1.99 或更高版本(建议使用 1.102+ 以获取全面可用的功能)
  • 已安装并启用GitHub Copilot和GitHub Copilot Chat扩展
  • 已安装Node.js以供使用 uvx
  • 由您的组织管理员启用的MCP策略(如适用)

配置步骤:

选项1:使用命令面板(推荐)

  1. 打开VS Code并按下 Ctrl+Shift+P (Windows/Linux) 或 Cmd+Shift+P (Mac)
  2. 输入“MCP: 添加服务器”并选择它
  3. 选择是全局添加还是仅添加到您的工作区
  4. 当被提示时,手动编辑打开的配置文件

选项2:手动配置

  1. 创建或编辑MCP配置文件:

    • 对于特定工作区:创建 .vscode/mcp.json 在你的项目根目录中
    • 对于全局设置:运行 MCP: Open User Configuration 从命令面板中
  2. 添加Odoo MCP服务器配置:

{
  "servers": {
    "odoo": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/jmceleney/odoo-mcp",
        "odoo-mcp"
      ],
      "env": {
        "ODOO_URL": "https://your-odoo-server.com",
        "ODOO_DB": "your_database_name",
        "ODOO_USERNAME": "your_username",
        "ODOO_PASSWORD": "your_password",
        "MODEL_EXCLUSION_PREFIXES": "ir.,mail.,bus.,base."
      }
    }
  }
}
  1. 保存文件并重新加载 VS Code

使用MCP服务器:

  1. 在 VS Code 中打开 GitHub Copilot Chat(点击侧边栏中的 Copilot 图标)
  2. 选择 代理模式 从下拉菜单中
  3. 点击工具🔧图标以查看可用的MCP工具
  4. Odoo MCP工具现在应该可用
  5. 你可以请求Copilot使用它们,例如:“使用Odoo MCP来搜索客户”

与.env文件一起使用:

如果你更倾向于将凭据保存在 .env 在你的项目目录中,你可以省略 env 从配置中获取部分(或:配置中的某一部分),并且MCP服务器将从中读取 .env 自动保存文件。

注: Copilot 可能在相关情况下自动建议使用 MCP 工具,或者您也可以在提示中明确请求它们。默认情况下,VS Code 在激活 MCP 工具前会请求用户许可。

使用 .env 文件进行配置

或者,创建一个 .env 在你的项目目录中的文件:

# .env
ODOO_URL=https://your-odoo-server.com
ODOO_DB=your_database_name
ODOO_USERNAME=your_username
ODOO_PASSWORD=your_password
MODEL_EXCLUSION_PREFIXES=ir.,mail.,bus.,base.

然后添加没有环境变量的MCP服务器(它将从.env文件中读取):

claude mcp add --transport stdio odoo -- uvx --from git+https://github.com/jmceleney/odoo-mcp odoo-mcp

验证安装

检查服务器配置是否正确:

claude mcp list

你应该看到 odoo 在已配置的MCP服务器列表中。

移除服务器

如果您需要移除服务器:

claude mcp remove odoo

本地开发安装

对于本地开发,请以可编辑模式安装该包:

# Clone the repository
git clone https://github.com/jmceleney/odoo-mcp.git
cd odoo-mcp

# Create and activate virtual environment
python3 -m venv venv
source venv/bin/activate

# Install in editable mode
pip install -e .

# Run the server
odoo-mcp
# or
python -m odoo_mcp

使用uvx进行测试

在将代码添加到Claude之前,您可以使用uvx测试安装:

# Test from local directory
cd odoo-mcp
uvx --from . odoo-mcp

# Test from GitHub
uvx --from git+https://github.com/jmceleney/odoo-mcp odoo-mcp

配置

服务器是通过环境变量或一个(配置文件/脚本等,根据上下文具体确定)进行配置的 .env 文件:

# .env file example
ODOO_URL=http://localhost:8069
ODOO_DB=your_database_name
ODOO_USERNAME=your_odoo_username
ODOO_PASSWORD=your_secure_password
MODEL_EXCLUSION_PREFIXES=ir.,mail.,bus.,base.

可用的配置选项

变量 描述 默认值 是否必需
(此行可翻译为: ---------- ------------- ---------
ODOO_URL Odoo 服务器的 URL - 是
ODOO_DB 数据库名称 - 是
ODOO_USERNAME 用于身份验证的用户名 - 是
ODOO_PASSWORD 认证密码 - 是
LOG_LEVEL 日志级别 INFO 否
REQUEST_TIMEOUT 请求超时时间(秒) 30 否
MAX_CONNECTIONS 最大连接数 5 否

| MODEL_EXCLUSION_PREFIXES | 以逗号分隔的模型前缀列表,用于从模型列表和关系数据中排除 | ir.、mail.、bus.、base. | 否 |

使用方法

MCP 工具

  • **MCP服务器为AI助手提供了以下工具:**发现工具 list_models: get_model_fields, get_detailed_field_info
  • **,**搜索工具 search_records: count_records, search_partners_by_name, search_customers, customer_count
  • **,**模块工具 get_settings: get_module_info, search_products_by_category

, 查看 设置指南

以获取所有可用工具的完整列表。

与Claude一起使用的示例

Please use the Odoo MCP to list all customer models.

在Claude中,您可以使用以下工具与Odoo进行交互:

发展

pytest

运行测试

# Format code
black .

# Check types
mypy .

# Lint code
flake8 .

代码风格

  1. 做出贡献
  2. 为仓库创建分支(或:克隆仓库)
  3. 创建一个特性分支
  4. 做出你的更改
  5. 运行测试和代码检查

提交一个拉取请求

文档

- Docker和容器部署

  • 安全
  • 所有操作默认为只读
  • 凭据通过环境变量进行安全处理
  • 在生产环境中使用HTTPS进行Odoo连接

在Odoo中限制API用户权限

许可证 MIT 许可证 - 请参阅 许可证