返回市场
奥多开发MCP服务器

奥多开发MCP服务器

作者:mart337i3 星标更新:2025-10-17

项目介绍

Odoo 开发 MCP 服务器

一个用于 Odoo 模块开发并带有 AI 辅助的模型上下文协议(MCP)服务器。提供版本感知的文档访问(17.0、18.0、19.0),智能代码生成以及开发工作流自动化。

🚀 快速开始 | 📖 OpenCode 配置 | 🔧 故障排除 | 📋 变更日志

功能

  • 📚 文档访问:跨所有版本搜索 302+ Odoo 文档文件
  • 🔧 版本感知代码生成:所有生成的代码包含版本信息及相关文档链接
  • 📋 集成开发指南:内置 Odoo 编码标准及最佳实践强制执行
  • 💡 智能提示:规则感知的工作流程指导,功能开发、调试及升级
  • 🎯 自动上下文:生成的代码包括对官方 Odoo 文档和开发规则的引用

安装

先决条件

# 确保安装了 Python 3.12+
python --version

# 安装 MCP CLI(如果尚未安装)
pip install "mcp[cli]"

对于 Claude Desktop

  1. 快速安装(推荐):

    mcp install odoo_mcp_server.py --name "Odoo Dev"
    
  2. 手动安装

    编辑你的 Claude Desktop 配置文件:

    • macOS~/Library/Application Support/Claude/claude_desktop_config.json
    • Linux~/.config/Claude/claude_desktop_config.json
    • Windows:%APPDATA%\Claude\claude_desktop_config.json

    添加以下配置:

    {
      "mcpServers": {
        "odoo-dev": {
          "command": "python",
          "args": ["/绝对路径到/odoo-dev-mcp/odoo_mcp_server.py"]
        }
      }
    }
    
  3. 重启 Claude Desktop

对于 OpenCode

📖 完整的 OpenCode 配置指南 →

快速设置 - 添加到 ~/.opencode/config.jsonc

选项 1:使用 uv(推荐)

{
  "$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

选项 2:直接使用 Python

{
  "$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 获取完整指南,包括示例、故障排除和工作流程。

快速开始

1. 测试服务器

python test_server.py

你应该看到所有测试通过,并带有 ✓ 标记。

2. 在 Claude/OpenCode 中的基本使用

# 设置你的 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) - 获取特定上下文的编码指南
    • 上下文:generalmodelsviewssecurityall

代码生成(版本感知)

  • create_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 Inspector 测试

mcp dev odoo_mcp_server.py

架构

odoo_mcp_server.py
├── 资源(文档)
│   ├── 302 个 RST 文件被索引
│   ├── 版本特定内容
│   └── 全文搜索
├── 工具(代码生成)
│   ├── 模块框架
│   ├── 模型定义
│   ├── 视图生成
│   └── 安全规则
└── 提示(工作流程)
    ├── 功能开发
    ├── 错误调试
    ├── 模块升级
    └── 代码审查

开发指南

该服务器包含了自动应用的全面 Odoo 开发指南:

内置规则

  • 清洁代码原则 - 通用软件工程最佳实践
  • Odoo 约定 - Odoo 特定的命名、结构和编码标准
    • 模块结构和命名
    • 模型和字段命名约定
    • 视图架构标准
    • 安全规则模式
    • ORM 最佳实践
    • 性能优化技巧

规则集成

所有代码生成工具自动包含:

  • ⚠️ 命名约定警告
  • 📋 特定上下文指南
  • 🔗 相关规则部分链接
  • ✅ 最佳实践建议

访问指南

# 获取通用指南
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

支持平台

  • ✅ Windows, macOS, Linux
  • ✅ Claude Desktop
  • ✅ OpenCode (VS Code 扩展)
  • ✅ 任何兼容 MCP 的客户端

要求

  • Python 3.12+
  • MCP SDK 1.4.1+
  • FastMCP

故障排除

服务器未在 Claude 中显示?

  1. 检查配置文件是否为有效 JSON
  2. 验证绝对路径
  3. 完全重启 Claude Desktop

导入错误?

pip install "mcp[cli]"

文档未找到?

确保 docs/ 目录存在且包含版本文件夹(17.0、18.0、19.0)

小贴士

  1. 始终先设置 Odoo 版本 - 所有代码生成适应所选版本
  2. 查阅开发指南 - 使用 get_development_guidelines() 获取特定上下文规则
  3. 遵循命名约定 - 生成的代码包含常见错误的规则警告
  4. 使用描述性模型名称 - 例如,library.book(带点),而不是 lib_b(带下划线)
  5. 检查生成代码中的规则 - 每个工具输出都包含相关的命名和编码规则
  6. 搜索后再询问 - 使用 search_documentation() 解答具体问题
  7. 逐步测试 - 模块 → 模型 → 视图 → 安全
  8. 根据规则审查代码 - 使用 review_odoo_code 提示进行规则合规性检查

许可

MIT 许可

贡献

欢迎贡献!此服务器遵循清洁代码原则和 Odoo 最佳实践。