Odoo MCP Server
一个 MCP 服务器实现,可以与 Odoo ERP 系统集成,从而使 AI 助手能够通过模型上下文协议与 Odoo 数据和功能进行交互。
README
Odoo MCP 服务器
一个与 Odoo ERP 系统集成的 MCP 服务器实现,使 AI 助手能够通过模型上下文协议与 Odoo 数据和功能进行交互。
功能
- 全面的 Odoo 集成: 完全访问 Odoo 模型、记录和方法
- XML-RPC 通信: 通过 XML-RPC 安全连接到 Odoo 实例
- 灵活的配置: 支持配置文件和环境变量
- 资源模式系统: 基于 URI 的 Odoo 数据结构访问
- 错误处理: 针对常见 Odoo API 问题的清晰错误消息
- 无状态操作: 用于可靠集成的干净请求/响应周期
工具
-
search_records
- 在任何 Odoo 模型中搜索记录
- 输入:
model(字符串): 模型名称 (例如, 'res.partner')domain(数组): 搜索域 (例如,[['is_company', '=', true]])fields(可选数组): 要获取的可选字段limit(可选数字): 要返回的最大记录数
- 返回: 具有请求字段的匹配记录
-
read_record
- 读取特定记录的详细信息
- 输入:
model(字符串): 模型名称 (例如, 'res.partner')id(数字): 记录 IDfields(可选数组): 要获取的可选字段
- 返回: 具有请求字段的记录数据
-
create_record
- 在 Odoo 中创建新记录
- 输入:
model(字符串): 模型名称 (例如, 'res.partner')values(对象): 字段值的字典
- 返回: 包含新记录 ID 的字典
-
update_record
- 更新现有记录
- 输入:
model(字符串): 模型名称 (例如, 'res.partner')id(数字): 记录 IDvalues(对象): 要更新的字段值的字典
- 返回: 指示成功的字典
-
delete_record
- 从 Odoo 中删除记录
- 输入:
model(字符串): 模型名称 (例如, 'res.partner')id(数字): 记录 ID
- 返回: 指示成功的字典
-
execute_method
- 在 Odoo 模型上执行自定义方法
- 输入:
model(字符串): 模型名称 (例如, 'res.partner')method(字符串): 要执行的方法名称args(可选数组): 位置参数kwargs(可选对象): 关键字参数
- 返回: 包含方法结果的字典
-
get_model_fields
- 获取模型的字段定义
- 输入:
model(字符串): 模型名称 (例如, 'res.partner')
- 返回: 包含字段定义的字典
-
search_employee
- 按姓名搜索员工。
- 输入:
name(字符串): 要搜索的姓名(或姓名的一部分)。limit(可选数字): 要返回的最大结果数(默认为 20)。
- 返回: 匹配的员工姓名和 ID 列表。
-
search_holidays
- 在指定的日期范围内搜索假期。
- 输入:
start_date(字符串): YYYY-MM-DD 格式的开始日期。end_date(字符串): YYYY-MM-DD 格式的结束日期。employee_id(可选数字): 用于过滤假期的可选员工 ID。
- 返回: 找到的假期列表。
资源
-
odoo://models
- 列出 Odoo 系统中所有可用的模型
- 返回: 模型信息的 JSON 数组
-
odoo://model/{model_name}
- 获取有关特定模型的信息,包括字段
- 示例:
odoo://model/res.partner - 返回: 包含模型元数据和字段定义的 JSON 对象
-
odoo://record/{model_name}/{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 包
pip install odoo-mcp
运行服务器
# 使用已安装的包
odoo-mcp
# 使用 MCP 开发工具
mcp dev odoo_mcp/server.py
# 带有其他依赖项
mcp dev odoo_mcp/server.py --with pandas --with numpy
# 挂载本地代码进行开发
mcp dev odoo_mcp/server.py --with-editable .
构建
Docker 构建:
docker build -t mcp/odoo:latest -f Dockerfile .
参数格式化指南
使用 Odoo 的 MCP 工具时,请注意以下参数格式化指南:
-
Domain 参数:
- 支持以下域格式:
- 列表格式:
[["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"]]
- 列表格式:
- 支持以下域格式:
-
Fields 参数:
- 应该是字段名称的数组:
["name", "email", "phone"] - 服务器将尝试将字符串输入解析为 JSON
- 应该是字段名称的数组:
许可证
此 MCP 服务器在 MIT 许可证下获得许可。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。