一个用于 Odoo 模块开发并带有 AI 辅助的模型上下文协议(MCP)服务器。提供版本感知的文档访问(17.0、18.0、19.0),智能代码生成以及开发工作流自动化。
🚀 快速开始 | 📖 OpenCode 配置 | 🔧 故障排除 | 📋 变更日志
# 确保安装了 Python 3.12+
python --version
# 安装 MCP CLI(如果尚未安装)
pip install "mcp[cli]"
快速安装(推荐):
mcp install odoo_mcp_server.py --name "Odoo Dev"
手动安装:
编辑你的 Claude Desktop 配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json~/.config/Claude/claude_desktop_config.json添加以下配置:
{
"mcpServers": {
"odoo-dev": {
"command": "python",
"args": ["/绝对路径到/odoo-dev-mcp/odoo_mcp_server.py"]
}
}
}
重启 Claude Desktop
快速设置 - 添加到 ~/.opencode/config.jsonc:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"odoo-dev": {
"type": "local",
"command": ["uv", "run", "/绝对路径到/odoo-dev-mcp/odoo_mcp_server.py"],
"enabled": true,
"environment": {
"PATH": "/home/user/.local/bin:/usr/local/bin:/usr/bin:/bin"
}
}
}
}
首先,安装依赖项:
cd /路径到/odoo-dev-mcp
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"odoo-dev": {
"type": "local",
"command": ["python3", "/绝对路径到/odoo-dev-mcp/odoo_mcp_server.py"],
"enabled": true,
"environment": {
"PYTHONPATH": "/绝对路径到/odoo-dev-mcp"
}
}
}
}
注意:需要先运行 pip install mcp。
然后在 OpenCode 中使用:
搜索 Odoo 文档中的 "fields.Command"
设置 Odoo 版本为 19.0
创建模型 library.book 包含字段:name, author
获取开发指南
参见 OPENCODE_SETUP.md 获取完整指南,包括示例、故障排除和工作流程。
python test_server.py
你应该看到所有测试通过,并带有 ✓ 标记。
# 设置你的 Odoo 版本
设置 Odoo 版本为 19.0
# 创建模块
创建名为 "library_management" 的 Odoo 模块,显示名称为 "Library Management"
# 创建模型
创建模型 library.book 包含字段:name (char),author_id (many2one 到 res.partner),isbn (char)
# 生成视图
创建 library.book 的表单视图,包含字段:name,author_id,isbn
# 添加安全规则
为 library_management 模块中的 library.book 创建安全规则
# 搜索文档
搜索 Odoo 文档中的 "计算字段"
set_odoo_version(version) - 在 17.0、18.0、19.0 之间切换get_current_version() - 检查当前版本search_documentation(query, version) - 跨文档全文搜索get_development_guidelines(context) - 获取特定上下文的编码指南
general,models,views,security,allcreate_odoo_module(name, display_name, description, ...) - 生成具有版本特定清单的模块结构create_odoo_model(model_name, description, fields, inherit) - 创建带有 ORM 文档链接的 Python 模型create_odoo_view(model_name, view_type, fields_to_display) - 生成带有架构引用的 XML 视图create_security_rules(model_name, module_name, groups) - 创建带有安全文档的安全配置develop_odoo_feature(description) - 引导式功能开发debug_odoo_error(error, context) - 错误调试辅助upgrade_odoo_module(module, from_version, to_version) - 迁移指导review_odoo_code(code) - 最佳实践下的代码审查访问 Odoo 文档和开发规则:
文档:
odoo://docs/19.0/index - 文档索引odoo://docs/19.0/reference/backend/orm - ORM 参考odoo://docs/18.0/howtos/create_reports - 如何操作指南开发规则:
odoo://rules/all - 所有开发指南odoo://rules/clean-code - 清洁代码原则odoo://rules/odoo-development - Odoo 特定约定# 在 Claude/OpenCode 中:
1. 设置 Odoo 版本为 19.0
2. 创建模块 "task_manager" 显示名称为 "Task Manager"
3. 创建模型 task.task 包含字段:
- name (char, 必填)
- description (text)
- priority (选择:low, medium, high)
- assigned_to (many2one: res.users)
- deadline (date)
4. 创建 task.task 的表单视图
5. 创建 task.task 的树状视图
6. 为 task.task 创建安全规则
支持所有 Odoo 字段类型:
fields = [
{"name": "name", "type": "Char", "required": True},
{"name": "description", "type": "Text"},
{"name": "amount", "type": "Float"},
{"name": "quantity", "type": "Integer"},
{"name": "active", "type": "Boolean"},
{"name": "date", "type": "Date"},
{"name": "partner_id", "type": "Many2one", "comodel_name": "res.partner"},
{"name": "line_ids", "type": "One2many", "comodel_name": "model.line", "inverse_name": "parent_id"},
{"name": "tag_ids", "type": "Many2many", "comodel_name": "model.tag"},
{"name": "state", "type": "Selection", "selection": "[('draft', 'Draft'), ('done', 'Done')]"}
]
python test_server.py
mcp dev odoo_mcp_server.py
odoo_mcp_server.py
├── 资源(文档)
│ ├── 302 个 RST 文件被索引
│ ├── 版本特定内容
│ └── 全文搜索
├── 工具(代码生成)
│ ├── 模块框架
│ ├── 模型定义
│ ├── 视图生成
│ └── 安全规则
└── 提示(工作流程)
├── 功能开发
├── 错误调试
├── 模块升级
└── 代码审查
该服务器包含了自动应用的全面 Odoo 开发指南:
所有代码生成工具自动包含:
# 获取通用指南
get_development_guidelines("general")
# 获取模型特定规则
get_development_guidelines("models")
# 访问所有规则
查看资源:odoo://rules/all
该服务器提供了按版本组织的 Odoo 文档访问:
docs/
├── 17.0/ (102 个文件)
├── 18.0/ (100 个文件)
└── 19.0/ (100 个文件)
rules/
├── clean-code.mdc
└── odoo-development.mdc
pip install "mcp[cli]"
确保 docs/ 目录存在且包含版本文件夹(17.0、18.0、19.0)
get_development_guidelines() 获取特定上下文规则library.book(带点),而不是 lib_b(带下划线)search_documentation() 解答具体问题review_odoo_code 提示进行规则合规性检查MIT 许可
欢迎贡献!此服务器遵循清洁代码原则和 Odoo 最佳实践。