Odoo MCP Server
Enables AI assistants to manage Odoo development environments by providing tools for server control, module management, database operations, and project navigation.
README
Odoo MCP Server
An MCP (Model Context Protocol) server for managing Odoo development environments with AI assistants.
🎯 Overview
This MCP server provides 19 tools to manage Odoo development environments, allowing AI assistants to:
- Control Odoo server (start, stop, restart, status)
- Manage modules (update, install, test)
- Switch between databases
- Navigate project directories
- View logs and configurations
Perfect for developers who want their AI assistants to remember and manage Odoo operations consistently across conversations.
Architecture & the two surfaces
The management logic lives once, in src/core.ts, and is reached through two
thin entry points plus a Claude Code skill:
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)
Skills and MCP reach your machine through different doors, so each Claude surface uses the entry point that fits it:
| Surface | How it reaches local Odoo | What it uses |
|---|---|---|
| Claude Desktop | a local MCP process it launches | the MCP server (build/index.js) |
| Claude Code | host shell access | the odoo-manage skill → odoo-cli |
Why the split: a Claude Desktop skill runs sandboxed and cannot execute the
local CLI, so Desktop needs the MCP (a real local process) to touch your Odoo
install. Claude Code has host shell access, so a skill calling odoo-cli is the
lighter option there — the 19 MCP tool schemas don't have to sit in context.
Both paths run the same core.ts, including the identical output filtering.
The Claude Code skill lives at ~/.claude/skills/odoo-manage/SKILL.md (it calls
build/cli.js, also installed as the odoo command). The orientation that
Desktop needs is carried by the MCP itself — the odoo-help prompt and the tool
descriptions — so no separate Desktop skill is required.
The stream capability — pull a remote nellika.sh / tcff Odoo database +
filestore (over SSH, pg_dump | pg_restore and tar | tar, in parallel, no temp
files) straight into the active local project — has a single implementation
(the stream verb in manage_odoo.sh) exposed three ways: the odoo stream
CLI command, the odoo_project action=stream MCP action, and a dedicated
odoo-stream Claude Code skill. The skill is vendored under skill-stream/
(rendered to ~/.claude/skills/odoo-stream/ by the installer) and is just a thin
wrapper that execs the engine verb. Local Postgres major must be ≥ the remote's
(production is PG17).
The bash engine manage_odoo.sh is vendored at scripts/manage_odoo.sh and
installed as the manage_odoo command; core.ts invokes it by absolute path and
passes ODOO_BASE so it operates on the resolved base.
Environment layout this manages
- Base (fixed):
~/odoo— holds the activeodoo.confand oneodoo-<project>.confper project. (Legacy location~/git/odoo18is used as a fallback until the base is moved.) - Sources live inside the base,
_-prefixed so they stand out from the unprefixed project addon symlinks:_odoo18/(CE 18),_enterprise18/(EE 18),_odoo19/(CE 19),_enterprise19/(EE 19), plus_venv18/,_venv19/, and_data/. - 18 vs 19 is per-project, not a separate tree. The active
odoo.confselects it via its; odoo_src/; python_venvmarkers andaddons_path. Switching project (odoo_switch_database/odoo switch) is what changes the running version — there is no version flag to set.
Features
- Server Control: Start, stop, restart, and check status of Odoo server
- Module Management: Update, install, and manage Odoo modules
- Frontend Updates: Update frontend modules with automatic server restart
- Testing: Run Odoo tests with optional filtering
- Database Management: Switch between databases, list available databases
- Backups & fresh DBs: Import a backup (.zip/.sql/.dump) or reset to a fresh DB
- Production sync (
stream): Stream a remote nellika.sh/tcff Odoo db+filestore (over SSH, in parallel, no temp files) into the active local project - Logging: Retrieve Odoo log entries
Installation
1. Install Dependencies
cd ~/git/odoo-mcp-server
npm install
2. Configure Claude Desktop
Add to your Claude Desktop config file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"odoo": {
"command": "node",
"args": ["/Users/dgoo2308/git/odoo-mcp-server/build/index.js"]
}
}
}
3. Restart Claude Desktop
The Odoo management tools will now be available in Claude.
Terminal commands (odoo / manage_odoo)
npm run setup (below) installs two commands into ~/.local/bin:
odoo— the smart front door (build/cli.js): same code as the skill/MCP, with output filtering and path helpers. Use this.manage_odoo— the raw bash engine (scripts/manage_odoo.sh): same verbs, unfiltered output. Operates on$ODOO_BASE(default~/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
Run odoo help for the full command list. Result text goes to stdout;
[Executing]/[Success] diagnostics go to stderr. Options: --error-only,
--tags <tags>, --lines <n>, --base <path> (default ~/odoo, fallback
~/git/odoo18).
Install everything (skill + commands)
install.sh installs all three pieces: the odoo-manage Claude Code skill, the
odoo command, and the manage_odoo command.
cd ~/git/odoo-mcp-server
npm run setup # or: ./install.sh
The installer builds build/cli.js if needed, renders the skill with the
absolute path of this checkout (so it works no matter where the repo is
cloned), and symlinks odoo / manage_odoo into ~/.local/bin. Re-run with
--force to overwrite an existing skill file (./install.sh --force). Env:
ODOO_BIN_DIR (default ~/.local/bin), CLAUDE_SKILLS_DIR (default
~/.claude/skills). Start a new Claude Code session to pick up the skill.
To set this up on another computer:
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 a fresh Odoo base
npm run setup installs the tooling. To create the Odoo base itself on a new
machine (the ~/odoo layout: clone CE 18/19 + Enterprise 18/19, build the
per-version venvs, seed _data/_scripts/_concepts, the docs, and a sample
config), run the environment bootstrap:
npm run setup-env # or: ./scripts/setup_odoo_env.sh
Requires git, Python 3.10+, PostgreSQL, and GitHub access to the private
odoo/enterprise repo (SSH key or HTTPS token). Env vars: ENTERPRISE_REMOTE=https,
SKIP_ENTERPRISE=1, FULL_CLONE=1, PYTHON=python3.11, ODOO_BASE=/path.
Idempotent — re-running skips what already exists.
Available Tools
The MCP exposes four tools, each taking an action (kept small so Claude
Desktop reliably loads them all):
odoo_server—action:start|stop|restart|status|shellodoo_modules—action:update|install|frontend|test(modules,testTags,errorOnly); output is filtered to errors/warningsodoo_project—action:list|switch|new|import|fresh|stream(project,name,odooVersion,enterprise,modules,repo,httpPort,backupFile,remoteHost,remoteDb,remoteDataDir,dbOnly,filestoreOnly,neutralize,noStart). Destructive:import/fresh/streamdrop the active DB;newcreates the named DB.odoo_info—action:logs|config-path|project-config|project-dir|addons-dir|enterprise-dir(project,lines)
The odoo-help prompt documents the same. (The CLI / odoo command keeps the
full set of named subcommands — see "Terminal commands" above.)
Usage Examples
"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"
Configuration
Choosing the Odoo version
You normally don't. The Odoo version (18 vs 19) is selected per project by the
active odoo.conf — switch project with odoo_switch_database (or
odoo switch <project>) and the version follows. See
Environment layout.
Using a different base directory
The base defaults to ~/odoo, falling back to ~/git/odoo18. To target a
different base, pass an absolute path: the MCP tools accept a version argument
and the CLI accepts --base <path>. The directory must look like an Odoo base
(have an odoo.conf or at least one odoo-<project>.conf).
odoo status --base /path/to/some/base
After changing source, rebuild:
npm run build
Requirements
- Node.js 16+
- An Odoo base directory (
~/odoo) with project configs; themanage_odoo.shengine is installed bynpm run setup - Claude Desktop (MCP) and/or Claude Code (skill +
odoocommand)
Development
# Build
npm run build
# Watch mode (auto-rebuild)
npm run watch
Troubleshooting
Server not found in Claude
- Check Claude Desktop config file path
- Ensure build directory exists:
ls ~/git/odoo-mcp-server/build/ - Restart Claude Desktop completely
Commands failing
- Check the base path exists:
ls ~/odoo(or the legacy~/git/odoo18) - Verify the engine is installed:
command -v manage_odoo - Check logs with
odoo logs(or theodoo_get_logsMCP tool)
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。