Odoo MCP服务器

一个连接AI代理与Odoo实例的模型上下文协议服务器,支持将PRD转换为任务层次结构。

  • by willy5xx
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 willy5xx/odoo_mcp

使用说明

Odoo MCP服务器

一个MCP(模型上下文协议)服务器,将Cursor中的AI代理连接到您的Odoo实例。告诉你的人工智能“将这个PRD转换为Odoo中的任务”,它将创建一个完整的史诗、任务和子任务层次结构,并带有标签、优先级和分配。

无需克隆 --只需配置并执行即可。

快速开始

1.安装uv

紫外线 是一个快速的Python包管理器,包括 uvx 用于直接从git repos运行工具。

curl -LsSf https://astral.sh/uv/install.sh | sh

2.获取Odoo API密钥

  1. 登录您的Odoo实例
  2. 首选 我的资料 (点击你的头像→ 我的个人资料)
  3. 引导到 偏好 → 账户安全
  4. 点击 新API密钥,将其命名为“Cursor MCP”,并复制密钥

3.配置光标

创建或编辑 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "odoo": {
      "command": "/Users/YOUR_USERNAME/.local/bin/uvx",
      "args": [
        "--from",
        "git+https://github.com/willy5xx/odoo_mcp.git",
        "odoo-mcp"
      ],
      "env": {
        "ODOO_URL": "https://your-instance.odoo.com",
        "ODOO_DB": "your-database-name",
        "ODOO_USERNAME": "your-email@example.com",
        "ODOO_API_KEY": "your-api-key"
      }
    }
  }
}

替换占位符值:

  • YOUR_USERNAME --您的macOS用户名(运行 whoami 检查)
  • ODOO_URL --您的Odoo实例URL(例如。, https://mycompany.odoo.com)
  • ODOO_DB --您的数据库名称(通常是子域。, mycompany)
  • ODOO_USERNAME --您的odoo登录电子邮件
  • ODOO_API_KEY -在步骤2中创建的API密钥

4.重新启动游标

退出并重新打开Cursor以加载MCP服务器。

6.测试它

在Cursor中,询问您的AI:

  • “测试Odoo连接”
  • “列出我的Odoo项目”

如果它有效,你就准备好了!


重要提示

问题 解决方案
未找到uvx 光标找不到 uvx 通过PATH。始终使用完整的绝对路径: /Users/YOUR_USERNAME/.local/bin/uvx
SSL证书错误 通常自动处理。如果您支持公司代理,请参阅 故障排除
/ODO URL格式 仅使用基本URL(例如。, https://mycompany.odoo.com).不包括 /odoo 或其他路径
更改未生效 编辑后重新启动游标 ~/.cursor/mcp.json

使用示例

配置后,您可以使用自然语言来管理Odoo:

"List my Odoo projects"

"Read @specs/feature-prd.md and create tasks in the 'Mobile App' project. 
 Break it into epics with subtasks, tag by feature area, and set priorities."

"Show me tasks in the Backend project and update the auth task to urgent priority"

"Create a new task in the API project: implement rate limiting for the /users endpoint"

"Add a subtask to task #123: write unit tests for the validation logic"

可用工具

工具 说明
odoo_test_connection 验证凭据和连接
odoo_list_projects 列出所有包含元数据的项目
odoo_create_project 创建新项目
odoo_update_project 更新项目字段(名称、经理、活动状态)
odoo_get_project_stages 获取项目的看板阶段
odoo_create_task 创建单个任务(通过以下方式支持子任务 parent_id)
odoo_create_tasks_batch 一次创建多个任务
odoo_list_tasks 列出项目中的任务
odoo_update_task 更新现有任务上的任何字段
odoo_post_task_message 发布任务聊天的进度更新
odoo_search_users 按姓名/电子邮件查找要分配的用户
odoo_list_tags 列出现有项目标记
odoo_create_milestone 创建项目里程碑
odoo_list_milestones 列出项目中的里程碑
odoo_search_records 对任何Odoo车型进行通用搜索
odoo_create_record 在任何Odoo模型上通用创建
odoo_update_record 任何Odoo型号的通用更新
odoo_delete_record 对任何Odoo型号进行通用删除

如何PRD→ 任务有效

当你要求你的人工智能将PRD转化为Odoo任务时:

  1. AI读取PRD 从文件或粘贴的文本
  2. 呼叫 odoo_list_projects 找到目标项目
  3. 呼叫 odoo_get_project_stages 了解工作流程
  4. 分解PRD 进入任务层次结构:
    • 顶级任务=史诗/特色区域
    • 子任务=单个工作项
  5. 创作史诗 通过 odoo_create_task,获取ID
  6. 创建子任务 通过 odoo_create_tasks_batch 随着 parent_id 链接
  7. 标签是自动创建的 如果它们不存在

支持的Odoo版本

适用于支持XML-RPC(12.0+)的任何Odoo版本:

  • Odoo社区
  • Odoo企业
  • 臭气熏天
  • Odoo在线(SaaS)

故障排除

连接失败

  1. 通过手动登录Odoo来验证您的凭据
  2. 检查您的API密钥是否有效(如果需要,请重新生成)
  3. 确保 ODOO_URL 没有尾随斜线或 /odoo 路径
  4. 验证数据库名称是否完全匹配

SSL错误

SSL证书通过捆绑的 certifi 包裹。如果您位于拦截SSL的公司代理或防火墙之后,请将以下环境变量添加到您的配置中:

"env": {
  "ODOO_URL": "...",
  "ODOO_DB": "...",
  "ODOO_USERNAME": "...",
  "ODOO_API_KEY": "...",
  "SSL_CERT_FILE": "/path/to/your/corporate-ca-bundle.pem",
  "REQUESTS_CA_BUNDLE": "/path/to/your/corporate-ca-bundle.pem"
}

要查找系统的证书包,请执行以下操作:

python3 -c "import certifi; print(certifi.where())"

uvx错误

验证是否已安装uvx并获取正确的路径:

which uvx

在配置中使用该确切路径。


环境变量

变量 必填 描述
ODOO_URL 是 您的Odoo实例URL(仅限基本URL)
ODOO_DB 是 数据库名称
ODOO_USERNAME 是 登录电子邮件
ODOO_API_KEY 是 API密钥(不是密码)
SSL_CERT_FILE 否 CA证书捆绑包的路径(仅适用于公司代理)
REQUESTS_CA_BUNDLE 否 CA证书捆绑包的路径(仅适用于公司代理)
LOG_LEVEL 没有 DEBUG, INFO (默认), WARNING, ERROR

许可证

麻省理工学院