Odoo MCP 服务器
与 Odoo ERP 系统集成的 MCP 服务器实现,使 AI 助手能够通过模型上下文协议与 Odoo 数据和功能进行交互。
特征
- 全面的 Odoo 集成:完全访问 Odoo 模型、记录和方法
- XML-RPC 通信:通过 XML-RPC 安全连接到 Odoo 实例
- 灵活配置:支持配置文件和环境变量
- 资源模式系统:基于 URI 访问 Odoo 数据结构
- 错误处理:清除常见 Odoo API 问题的错误消息
- 无状态操作:清晰的请求/响应周期,实现可靠的集成
工具
- 执行方法
- 在 Odoo 模型上执行自定义方法
- 输入:
model
(字符串):模型名称(例如,“res.partner”)method
(字符串):要执行的方法名称args
(可选数组):位置参数kwargs
(可选对象):关键字参数
- 返回:包含方法结果和成功指示的字典
- 搜索员工
- 按姓名搜索员工
- 输入:
name
(字符串):要搜索的名称(或名称的一部分)limit
(可选数字):返回的最大结果数(默认为 20)
- 返回:包含成功指示符、匹配员工姓名和 ID 的列表以及任何错误消息的对象
- 搜索假期
- 搜索指定日期范围内的假期
- 输入:
start_date
(字符串):YYYY-MM-DD 格式的开始日期end_date
(字符串):结束日期,格式为 YYYY-MM-DDemployee_id
(可选数字):用于筛选假期的可选员工 ID
- 返回:包含成功指示符、找到的假期列表和任何错误消息的对象
资源
- odoo://模型
- 列出 Odoo 系统中所有可用的模型
- 返回:模型信息的 JSON 数组
- odoo://模型/{模型名称}
- 获取有关特定模型(包括字段)的信息
- 例如:
odoo://model/res.partner
- 返回:带有模型元数据和字段定义的 JSON 对象
- odoo://record/{模型名称}/{record_id}
- 通过ID获取特定记录
- 例如:
odoo://record/res.partner/1
- 返回:带有记录数据的 JSON 对象
- odoo://search/{model_name}/{domain}
- 搜索与域名匹配的记录
- 例如:
odoo://search/res.partner/[["is_company","=",true]]
- 返回:匹配记录的 JSON 数组(默认限制为 10 条)
配置
Odoo 连接设置
- 创建一个名为
odoo_config.json
的配置文件:
{
"url": "https://your-odoo-instance.com",
"db": "your-database-name",
"username": "your-username",
"password": "your-password-or-api-key"
}
- 或者,使用环境变量:
ODOO_URL
:您的 Odoo 服务器 URLODOO_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"
}
}
}
}
Docker
{
"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 包
运行服务器
# 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 工具时,请注意以下参数格式指南:
- 域参数:
- 支持以下域格式:
- 列表格式:
[["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"]]
- 字段参数:
- 应该是字段名称的数组:
["name", "email", "phone"]
- 服务器将尝试将字符串输入解析为 JSON
执照
此 MCP 服务器根据 MIT 许可证获得许可。