Odoo开发MCP服务器
Odoo V18模块,提供运行模型上下文协议(MCP)的服务器 Odoo内部这使AI代理可以直接访问Odoo功能,包括终端控制、通过Odoo的游标进行数据库操作、文件系统管理、Odoo ORM/shell执行和服务管理。
主要特点
- 作为Odoo模块运行:可安装在Odoo和自托管Odoo服务器上
- HTTP/SSE传输:MCP端点位于
/mcp/v1(无stdio依赖) - 直接数据库访问:使用Odoo的
env.crSQL操作的游标 - Odoo ORM集成:完整执行Python代码
env上下文 - 电话回家注册:模块安装时自动注册服务器
- 配置UI:可通过Odoo设置菜单访问设置
- 完成审核日志记录:所有操作都记录到审计文件中
建筑
+---------------------------+
| Odoo Server |
| |
| +---------------------+ |
| | OdooDevMCP Module | |
| | - HTTP Controller | | +------------------+
| | - MCP Server |--------->| Registry API |
| | - Tools/Services | | POST | (phone-home) |
| +---------------------+ | +------------------+
| | | | | |
| v v v v |
| [PG] [FS] [ORM] [SVC] | +------------------+
| | | MCP Client |
| +---------------------+ |=1.0.0
pyyaml>=6.0
requests>=2.28.0
pydantic>=2.0.0- 推送到您的Odoo仓库
- 通过应用程序菜单安装模块
关于自托管Odoo
- 将模块目录复制到您的
addons路径:
cp -r OdooDevMCP /opt/odoo/custom-addons/- 安装Python依赖项:
source /opt/odoo/venv/bin/activate
pip install mcp pyyaml requests pydantic- 更新应用程序列表并安装:
# Restart Odoo
sudo systemctl restart odoo
# Or update module list via CLI
odoo -d your_database -u all --stop-after-init- 通过Odoo UI安装:
- 转到应用程序 - 搜索“Odoo Dev MCP服务器” - 单击安装
配置
安装后,通过以下方式配置模块 设置>MCP服务器>配置:
服务器设置
- 服务器主机:绑定地址(默认值:
127.0.0.1仅适用于本地主机) - 服务器端口:HTTP端口(默认值:
8768) - API密钥:用于身份验证的承载令牌(在开发过程中留空,表示没有身份验证)
- 日志级别:记录详细信息(调试、信息、警告、错误)
电话主页设置
- 电话主页URL:启动时要注册服务器的API终结点(可选)
- 心跳间隔:心跳ping之间的秒数(默认值:60)
命令设置
- 默认命令超时:默认超时时间(秒)(默认值:30)
- 最大命令超时:允许的最大超时时间(默认值:600)
文件系统设置
- 最大读取大小:读取的最大文件大小(MB)(默认值:10)
- 最大写入大小:写入的最大文件大小(MB)(默认值:50)
数据库设置
- 查询超时:默认查询超时时间(秒)(默认值:30)
- 最大结果行数:查询返回的最大行数(默认值:1000)
审核设置
- 已启用审核日志记录:启用/禁用审核日志记录
- 审核日志路径:审核日志文件的路径(默认值:
/var/log/odoo/mcp_audit.log)
用法
MCP端点
MCP服务器在以下位置公开JSON-RPC端点:
http://your-odoo-server:8069/mcp/v1或者在配置的端口上:
http://your-odoo-server:8768/mcp/v1健康检查
curl http://localhost:8768/mcp/v1/health能力
curl http://localhost:8768/mcp/v1/capabilities \
-H "Authorization: Bearer your-api-key"MCP客户端配置
配置您的MCP客户端(Claude Code等)以连接:
{
"mcpServers": {
"odoo-dev": {
"url": "http://your-odoo-server:8768/mcp/v1",
"headers": {
"Authorization": "Bearer your-api-key"
}
}
}
}可用工具
该模块提供13个MCP工具:
- execute_命令 -在服务器上运行shell命令
- 查询数据库 -通过Odoo游标执行只读SQL查询
- execute_sql -执行写SQL语句(INSERT、UPDATE、DELETE、DDL)
- get_db_schema -检查数据库架构(表、列、索引、约束)
- read_file -从服务器文件系统读取文件
- write_file -将文件写入服务器文件系统
- 碘壳 -使用完整的Odoo执行Python代码
env上下文 - 服务状态 -检查和管理systemd服务(odoo、postgresql、nginx)
- read_config -读取Odoo配置文件
- list_modules -列出Odoo模块及其安装状态
- get_module_info -获取特定模块的详细信息
- 安装模块 -安装Odoo模块
- upgrade_模块 -升级已安装的模块
可用资源
该模块提供5个MCP资源:
- odoo://config -当前Odoo配置(敏感值被屏蔽)
- odoo://logs/{服务} -最近的服务日志
- odoo://schema/{表格} -数据库表架构
- odoo://modules -已安装模块列表
- odoo://system -系统信息(操作系统、内存、磁盘、版本)
安全
信任模型
这是一个 开发和管理工具信任边界位于MCP客户端级别。任何可以连接到MCP端点的人都可以完全访问服务器。
这不是面向公众的服务。 仅在具有适当访问控制的受信任环境中使用。
认证
- API密钥:在“设置”>“MCP服务器配置”中配置承载令牌
- 客户必须包括
Authorization: Bearer头球 - 在开发期间保留API密钥为空(不建议用于生产)
审计日志
所有工具调用都记录到配置的审核日志路径中:
[2026-02-16T10:05:30Z] DB=production USER=2 TOOL=execute_command CMD="systemctl restart odoo" EXIT_CODE=0 DURATION=1200ms
[2026-02-16T10:05:32Z] DB=production USER=2 TOOL=query_database QUERY="SELECT count(*) FROM res_partner" ROWS=1 DURATION=5ms速率限制
内置速率限制可防止滥用:
- 指令:10/分钟
- 查询:100次/分钟
- 写入操作:50/分钟
- 外壳执行:5/分钟
- 文件读取次数:50次/分钟
- 文件写入:30次/分钟
路径验证
所有文件系统操作都会验证路径,以防止:
- 路径遍历攻击(
..在路径中) - Symlink漏洞(验证前已解决)
- 相对路径混淆(需要绝对路径)
电话回家注册
在模块安装时,服务器可以向已配置的API端点注册自己:
有效载荷发送至 phone_home_url:
{
"server_id": "database_hostname",
"hostname": "odoo-server-01",
"ip_addresses": {
"primary": "10.0.1.50",
"all": ["10.0.1.50", "172.17.0.1"]
},
"port": 8768,
"transport": "http/sse",
"version": "1.0.0",
"odoo_version": "18.0",
"database": "production",
"capabilities": [...],
"started_at": "2026-02-16T10:00:00Z"
}这使得车队管理和发现所有部署的Odoo MCP服务器成为可能。
监控
检查模块状态
在Odoo中:应用程序>搜索“MCP”>检查安装状态
查看日志
# Odoo server log (includes MCP module output)
tail -f /var/log/odoo/odoo.log | grep MCP
# Audit log
tail -f /var/log/odoo/mcp_audit.log测试终点
# Health check
curl http://localhost:8768/mcp/v1/health
# Capabilities (requires API key if configured)
curl http://localhost:8768/mcp/v1/capabilities \
-H "Authorization: Bearer your-api-key"故障排除
模块无法安装
检查日志:
tail -f /var/log/odoo/odoo.log常见问题:
- 缺少Python依赖项(
mcp,pyyaml,requests,pydantic) - Python版本\MCP服务器
- 在GitHub上打开一个问题
更新日志
版本1.0.0(2026-02-16)
- 初始版本为Odoo V18模块
- 用于Odoo开发和管理的13个工具
- 5 MCP资源
- 模块安装时的电话家庭注册
- 完成审计日志记录
- 通过Odoo控制器进行HTTP/SSE传输
- 速率限制和安全控制
- Odoo设置中的配置UI
