项目简介
Odoo MCP Server是一个实现了Model Context Protocol (MCP) 的应用后端,专为集成大型语言模型 (LLM) AI 助手与Odoo ERP系统而设计。它允许AI助手以标准化的方式访问和操作Odoo中的业务数据、调用Odoo功能,从而实现基于自然语言的Odoo交互和自动化。
主要功能点
- 搜索和检索记录: 能够根据指定的过滤条件(Domain)搜索Odoo中的任何模型(如客户、产品、发票等)的记录,并检索指定字段的数据。
- 浏览记录: 根据提供的记录ID列表批量获取详细记录信息。
- 统计记录: 统计符合特定过滤条件的记录总数。
- 获取模型信息: 获取指定Odoo模型的字段定义和元数据,帮助AI理解数据结构。
- 创建记录: 在Odoo中创建新的记录。
- 更新记录: 修改Odoo中现有记录的字段值。
- 删除记录: 从Odoo中删除记录。
- 安全认证: 支持使用Odoo API Key或用户名/密码进行安全连接和认证。
- 智能处理: 包括对大数据集的分页处理、为LLM优化的数据格式化输出、以及性能优化(如连接池和缓存)。
安装步骤
-
先决条件:
- 安装 Python 3.10 或更高版本。
- 拥有 Odoo 实例的访问权限 (推荐 Odoo 18.0+)。
- 在您的 Odoo 实例上安装配套的 'mcp_server' Odoo模块 (该模块通常可以在 https://github.com/ivnvxd/mcp-server-odoo 仓库的 'odoo-apps' 目录下找到)。
- 在 Odoo 中为用于集成的用户生成 API Key(设置 > 用户 > API Keys)或准备好该用户的用户名和密码。
-
安装 MCP Server Python 包: 您可以通过 'pipx' (推荐,在一个独立环境安装) 或 'pip' 进行安装:
# 使用 pipx (推荐) pipx install mcp-server-odoo # 或使用 pip pip install mcp-server-odoo这将安装 'mcp-server-odoo' 命令。
服务器配置 (MCP客户端配置)
安装完成后,您需要将该 MCP 服务器配置到您的 LLM 客户端(如 Claude Desktop, Cursor, VS Code (GitHub Copilot), Zed 等)中。通常,这涉及修改客户端的 MCP 设置文件(通常是 JSON 格式),添加一个指向 'mcp-server-odoo' 命令的配置项,并设置必要的 Odoo 连接环境变量。
以下是一个示例配置结构,您需要将其合并到您的客户端 MCP 设置文件中:
{ "mcpServers": { "odoo": { "command": "uvx", // 调用 uvx 运行已安装的包 "args": ["mcp-server-odoo"], // 传递给 uvx 的包名/命令 "env": { // *** 必需配置项 *** "ODOO_URL": "你的Odoo实例的完整URL,例如:https://mycompany.odoo.com", // 以下两种认证方式选择一种配置: // 方法一:使用 API Key (推荐) "ODOO_API_KEY": "你在Odoo中为集成用户生成的API Key字符串", // 方法二:使用用户名和密码 (仅当API Key不可用或不需要时) // "ODOO_USER": "用于连接Odoo的用户名,例如:admin", // "ODOO_PASSWORD": "用于连接Odoo的密码", // *** 可选配置项 *** // "ODOO_DB": "你的Odoo数据库名称,如果未设置,服务器会尝试自动检测", // "ODOO_MCP_LOG_LEVEL": "日志级别,例如:INFO, DEBUG, WARNING, ERROR (默认为 INFO)", // "ODOO_MCP_DEFAULT_LIMIT": "搜索结果默认限制数量 (默认为 10)", // "ODOO_MCP_MAX_LIMIT": "搜索结果最大允许限制数量 (默认为 100)" } } } }
请根据您实际的 Odoo 环境和偏好的认证方式,填写并取消注释相应的配置项。将这个配置块添加到您的 LLM 客户端的 'mcpServers' (或类似的 'context_servers') JSON 对象中。
基本使用方法
配置并重启您的 LLM 客户端后,AI 助手应该就能识别并使用这个 Odoo MCP 服务器。您可以开始尝试用自然语言让 AI 助手与您的 Odoo 实例交互,例如:
- "Show me the names and emails of the first 5 customers." (显示前5个客户的姓名和邮箱。)
- "Search for products where the name contains 'Desk' and list their price and stock quantity." (搜索名称包含“Desk”的产品,并列出其价格和库存量。)
- "Count how many active employees we have." (统计我们有多少活跃的员工。)
- "What are the fields available on the 'sale.order' model?" (销售订单模型有哪些可用的字段?)
- "Create a new contact named 'Acme Corp' with email '[email protected]'." (创建一个名为“Acme Corp”的新联系人,邮箱为“[email protected]”。)
这些自然语言请求会被 LLM 客户端转换为 MCP 请求(调用相应的资源或工具),发送给 Odoo MCP 服务器,服务器执行操作并将结果返回给客户端,再由 AI 助手向您呈现。
信息
分类
商业系统