使用说明
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 |
| +---------------------+ |<------| (Claude, IDE) |
| | PostgreSQL | | HTTP +------------------+
| +---------------------+ | /mcp/v1
| |
+---------------------------+
安装
先决条件
- 奥多18.0
- Python 3.10+
- psycopg2(通常已与Odoo一起安装)
- 其他Python包:
mcp,pyyaml,requests,pydantic
关于奥多奥什
- 将此模块添加到您的
custom-addons目录 - 在中安装Python依赖项
requirements.txt:mcp>=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_key>头球 - 在开发期间保留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版本<3.10
- 权限不足,无法创建审核日志目录
MCP端点返回404
- 检查Odoo是否正在运行
- 验证模块是否已安装(而不仅仅是“安装”)
- 检查服务器端口配置是否与您的请求URL匹配
数据库操作失败
- 检查用户是否具有数据库访问权限
- 验证PostgreSQL是否正在运行:
systemctl status postgresql - 检查Odoo的数据库配置
电话回家不工作
- 验证
phone_home_url在设置中配置 - 检查与注册表URL的网络连接
- 回拨失败是非阻塞的,并记录为警告
发展
模块结构
OdooDevMCP/
├── __init__.py # Module initialization + post_init_hook
├── __manifest__.py # Module metadata and dependencies
├── models/
│ ├── __init__.py
│ └── mcp_config.py # Configuration settings model
├── controllers/
│ ├── __init__.py
│ └── mcp_endpoint.py # HTTP controller for MCP protocol
├── tools/
│ ├── __init__.py
│ ├── terminal.py # Command execution
│ ├── database.py # SQL operations via Odoo cursor
│ ├── filesystem.py # File operations
│ ├── odoo_tools.py # Odoo shell, modules, config, services
│ └── registry.py # Tool registry and schemas
├── services/
│ ├── __init__.py
│ ├── mcp_server.py # MCP JSON-RPC handler
│ └── phone_home.py # Registration and heartbeat
├── security/
│ ├── __init__.py
│ ├── security.py # Audit, rate limiting, path validation
│ └── ir.model.access.csv # Access control
├── data/
│ └── mcp_data.xml # Default configuration parameters
├── views/
│ └── mcp_config_views.xml # Configuration UI
└── static/
└── description/
└── icon.png # Module icon
扩展模块
要添加新工具,请执行以下操作:
- 在中创建工具功能
tools/(例如。,tools/my_tool.py) - 将该功能添加到
tools/__init__.py - 在中注册
tools/registry.py两者都get_tool_registry()和get_tool_schemas() - 更新功能
controllers/mcp_endpoint.py
许可证
LGPL-3(与Odoo的许可兼容)
支持
对于问题和疑问:
- 检查模块日志:
/var/log/odoo/odoo.log - 检查审核日志:
/var/log/odoo/mcp_audit.log - 查看配置:设置>MCP服务器
- 在GitHub上打开一个问题
更新日志
版本1.0.0(2026-02-16)
- 初始版本为Odoo V18模块
- 用于Odoo开发和管理的13个工具
- 5 MCP资源
- 模块安装时的电话家庭注册
- 完成审计日志记录
- 通过Odoo控制器进行HTTP/SSE传输
- 速率限制和安全控制
- Odoo设置中的配置UI