Odoo开发环境管理服务器

一个基于MCP协议的服务器,用于通过AI助手管理Odoo开发环境,提供服务器控制、模块管理、数据库切换等功能。

  • by dannyg-sys
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 dannyg-sys/odoo-mcp-server

使用说明

Odoo MCP服务器

用于使用AI助手管理Odoo开发环境的MCP(模型上下文协议)服务器。

🎯 概述

此MCP服务器提供19个工具来管理Odoo开发环境,使AI助手能够:

  • 控制Odoo服务器(启动、停止、重新启动、状态)
  • 管理模块(更新、安装、测试)
  • 在数据库之间切换
  • 浏览项目目录
  • 查看日志和配置

非常适合那些希望他们的AI助手在对话中一致地记住和管理Odoo操作的开发人员。

建筑与两个表面

管理逻辑曾经存在过 src/core.ts,并通过两个 薄入口点加上克劳德代码技能:

src/core.ts    All Odoo logic + smart output filtering (single source of truth)
src/index.ts   MCP server  → for Claude Desktop        (build/index.js)
src/cli.ts     odoo-cli    → for Claude Code / terminal (build/cli.js)

技能和MCP通过不同的门到达你的机器,所以每个克劳德 曲面使用适合它的入口点:

表面 它如何到达当地的Odoo 它的用途
克劳德桌面版 它启动的本地MCP进程 MCP服务器 (build/index.js)
克劳德代码 主机shell访问 odoo-manage 技能 → odoo-cli

为什么拆分:Claude Desktop技能在沙盒中运行,无法执行 本地CLI,因此Desktop需要MCP(一个真正的本地进程)来触摸您的Odoo 安装。Claude Code具有主机shell访问权限,因此需要技巧调用 odoo-cli 是 这里有一个更轻松的选择——19个MCP工具模式不必放在上下文中。 两条路径运行相同 core.ts,包括相同的输出滤波。

Claude Code技能位于 ~/.claude/skills/odoo-manage/SKILL.md (它叫 build/cli.js,也作为 odoo 命令)。方向是 桌面需求由MCP本身承载—— odoo-help 提示和工具 描述——因此不需要单独的桌面技能。

这 stream 能力——拉取远程nellika.sh/tcff-Odoo数据库+ 文件存储(通过SSH, pg_dump | pg_restore 和 tar | tar,并行,无温度 文件)直接进入活动的本地项目——有一个 单一实现 (the stream 动词在 manage_odoo.sh)暴露了三种方式: odoo stream CLI命令 odoo_project action=stream MCP行动,以及专门的 odoo-stream 克劳德代码技能。该技能由以下人员提供 skill-stream/ (呈现给 ~/.claude/skills/odoo-stream/ 由安装程序),只是一个薄 包装这个 exec这是发动机动词。本地Postgres专业必须≥远程 (生产PG17)。

迎头痛击 发动机 manage_odoo.sh 出售地点: scripts/manage_odoo.sh 和 安装为 manage_odoo 指挥; core.ts 通过绝对路径调用它 通过 ODOO_BASE 因此,它在已解决的基础上运行。

此管理的环境布局

  • 底座(固定): ~/odoo --保持活动状态 odoo.conf 还有一个 odoo-<project>.conf 每个项目。(传统位置 ~/git/odoo18 被用作 回退,直到基地移动。)
  • 消息来源位于基地内部, _-前缀使其从中脱颖而出 未加前缀的项目插件符号链接: _odoo18/ (CE 18), _enterprise18/ (EE 18), _odoo19/ (CE 19), _enterprise19/ (EE 19),加上 _venv18/, _venv19/,以及 _data/.
  • 18vs 19是每个项目,而不是一棵单独的树。 活跃的 odoo.conf 通过其 ; odoo_src / ; python_venv 标记和 addons_path. 切换项目(odoo_switch_database / odoo switch)是什么改变了 正在运行的版本——没有要设置的版本标志。

特性

  • 服务器控件:启动、停止、重新启动和检查Odoo服务器的状态
  • 模块管理:更新、安装和管理Odoo模块
  • 前端更新:使用自动服务器重启更新前端模块
  • 测试:使用可选筛选运行Odoo测试
  • 数据库管理:在数据库之间切换,列出可用数据库
  • 备份和新数据库:导入备份(.zip/.sql/.dump)或重置为新的数据库
  • 生产同步(stream):流式传输远程nellika.sh/tcff Odoo db+文件存储 (通过SSH,并行,无临时文件)进入活动的本地项目
  • 日志记录:检索Odoo日志条目

安装

1.安装依赖项

cd ~/git/odoo-mcp-server
npm install

2.配置克劳德桌面

添加到您的Claude Desktop配置文件(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "odoo": {
      "command": "node",
      "args": ["/Users/dgoo2308/git/odoo-mcp-server/build/index.js"]
    }
  }
}

3.重新启动克劳德桌面

Odoo管理工具现在将在Claude中可用。

终端命令(odoo / manage_odoo)

npm run setup (下图)将两个命令安装到 ~/.local/bin:

  • odoo --智能前门(build/cli.js):与技能/MCP相同的代码, 带有输出过滤和路径助手。 用这个。
  • manage_odoo --原始bash引擎(scripts/manage_odoo.sh):相同的动词, 未经过滤的输出。操作对象 $ODOO_BASE (默认值 ~/odoo).
# examples
odoo status
odoo list
odoo switch verita
odoo update nell_thai_qr --error-only
odoo test purchase_dual_unit
odoo import ~/Downloads/backup.zip --neutralize   # drops+restores the active DB
odoo stream tcff_production_odoo --neutralize      # stream remote prod db+filestore into the active project
odoo logs --lines 200

跑 odoo help 查看完整的命令列表。结果文本转到stdout; [Executing]/[Success] 诊断转到stderr。选项: --error-only, --tags <tags>, --lines <n>, --base <path> (默认值 ~/odoo,回退 ~/git/odoo18).

安装所有内容(技能+命令)

install.sh 安装所有三个部分: odoo-manage 克劳德代码技能 odoo 命令,以及 manage_odoo 命令。

cd ~/git/odoo-mcp-server
npm run setup        # or: ./install.sh

安装程序构建 build/cli.js 如果需要,使用 绝对路径 这 checkout(因此无论仓库在哪里,它都能正常工作 克隆)和符号链接 odoo / manage_odoo 进入 ~/.local/bin.重新运行 --force 覆盖现有技能文件(./install.sh --force).环境: ODOO_BIN_DIR (默认值 ~/.local/bin), CLAUDE_SKILLS_DIR (默认值 ~/.claude/skills).开始一个新的Claude Code会话来学习技能。

要在另一台计算机上设置此设置,请执行以下操作:

git clone https://github.com/dannyg-sys/odoo-mcp-server.git ~/git/odoo-mcp-server
cd ~/git/odoo-mcp-server
npm install && npm run build
npm run setup

Bootstrap全新的Odoo基础

npm run setup 安装 工具.创建Odoo 基础 自己在一个新的 机器( ~/odoo 布局:克隆CE 18/19+企业18/19,构建 每个版本的venvs,种子 _data/_scripts/_concepts、文档和示例 config),运行环境引导程序:

npm run setup-env        # or: ./scripts/setup_odoo_env.sh

需要git、Python 3.10+、PostgreSQL和 GitHub访问私有 odoo/enterprise 仓库 (SSH密钥或HTTPS令牌)。环境变量: ENTERPRISE_REMOTE=https, SKIP_ENTERPRISE=1, FULL_CLONE=1, PYTHON=python3.11, ODOO_BASE=/path. Idempotent-重新运行会跳过已经存在的内容。

可用工具

MCP暴露 四 工具,每个都拿一个 action (保持小所以克劳德 桌面可靠地加载它们):

  • odoo_server — action: start | stop | restart | status | shell
  • odoo_modules — action: update | install | frontend | test (modules, testTags, errorOnly);输出被过滤为错误/警告
  • odoo_project — action: list | switch | new | import | fresh | stream (project, name, odooVersion, enterprise, modules, repo, httpPort, backupFile, remoteHost, remoteDb, remoteDataDir, dbOnly, filestoreOnly, neutralize, noStart). 破坏性的: import/fresh/stream 删除活动数据库; new 创建指定的数据库。
  • odoo_info — action: logs | config-path | project-config | project-dir | addons-dir | enterprise-dir (project, lines)

这 odoo-help 提示文件相同。(CLI/ odoo 命令保持 全套命名子命令——请参阅上面的“终端命令”。)

使用示例

"Start Odoo"
"Update the purchase_dual_unit module"
"Install stock_account and hr modules"
"Run tests for the sale module"
"Switch to the nellika database"
"Stream tcff production into my local project and neutralize it"
"Show me the last 100 log lines"
"Where is the project directory for hhfbs?"
"What's the path to the Odoo core addons?"
"Show me the enterprise directory"

配置

选择Odoo版本

通常不会。Odoo版本(18 vs 19)由 活跃的 odoo.conf --切换项目 odoo_switch_database (或 odoo switch <project>)版本如下。看 环境布局.

使用不同的基本目录

基础默认为 ~/odoo,回落到 ~/git/odoo18.针对a 不同的基,传递绝对路径:MCP工具接受 version 争论 CLI接受 --base <path>。目录必须看起来像Odoo库 (有一个 odoo.conf 或至少一个 odoo-<project>.conf).

odoo status --base /path/to/some/base

更改源代码后,重新生成:

npm run build

需求

  • Node.js 16+
  • Odoo基本目录(~/odoo)有项目配置;这 manage_odoo.sh 发动机由以下人员安装 npm run setup
  • 克劳德桌面(MCP)和/或克劳德代码(技能+ odoo 命令)

发展

# Build
npm run build

# Watch mode (auto-rebuild)
npm run watch

故障排除

在Claude中找不到服务器

  1. 检查Claude Desktop配置文件路径
  2. 确保生成目录存在: ls ~/git/odoo-mcp-server/build/
  3. 完全重新启动克劳德桌面

命令失败

  1. 检查基础路径是否存在: ls ~/odoo (或遗产 ~/git/odoo18)
  2. 确认发动机已安装: command -v manage_odoo
  3. 检查日志 odoo logs (或 odoo_get_logs MCP工具)

许可证

麻省理工学院