Self-hosted MCP server connecting Claude to Odoo 15→19 — 197+ tools, multi-tenant, Bulgaria l10n
Odoo Claude MCP
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**Production-grade Model Context Protocol (MCP) server suite for Odoo ERP**
**Odoo MCP server for Claude Code and Claude.ai** — turn any **self-hosted Odoo** instance (15 → 19) into an **AI assistant** via the **Model Context Protocol**. 197+ tools, multi-tenant, **Bulgaria localization** (НАП, ДДС, ЕИК) included.
_Connect Claude, Claude Code, and any MCP-compatible client to Odoo, GitHub, filesystem, Portainer, Teams, and more — through a unified, authenticated gateway._
Quick Start · Why this vs alternatives? · Use Cases · Architecture · MCP Servers · Companion Modules · Deployment
> **Two tracks.** You are on branch 3.0 — the preview track for integrators, current **v3.3.8**. The stable track is branch 2.0, current **v2.31.0**. All releases: Releases · details in Two Tracks.
**🇧🇬 Български README**
---
See Claude editing a live Odoo sale order — real CRUD, real auto-recalculation
**▶ Watch the full 4-minute demo:** Running Odoo 18 Entirely Through AI — Claude Code + MCP Server
---
🎯 What is odoo-claude-mcp?
odoo-claude-mcp is a **self-hosted MCP server suite** that turns any Odoo instance into a first-class citizen in the Claude ecosystem. It exposes Odoo data and operations through the Model Context Protocol, while bundling complementary MCP servers for everything an Odoo developer, consultant, or business user needs — GitHub, OCA modules, Kubernetes/Portainer, Microsoft Teams, and a full Claude Code terminal running in the browser.
Unlike single-purpose MCP wrappers, this stack is built for **real production use**:
- 🔐 **Unified authentication** across all MCP endpoints via token-based auth
- 🏢 **Multi-connection, multi-tenant** — one stack serves dozens of Odoo databases
- 🌐 **Claude.ai connector ready** — public HTTPS endpoint with token auth
- ☸️ **K3s / Kubernetes native** with Kustomize overlays for dev and prod
- 🐳 **Docker Compose** for solo developers and small teams
- 🖥️ **Web-based terminal** — xterm.js + tmux + Claude Code in the browser
- 📦 **Odoo module deployment** via direct RPC (no filesystem access needed)
- 🔍 **Qdrant vector store** integration for semantic search across records
- 🤖 **Ollama integration** for local LLMs and privacy-first deployments
---
🚀 Quick Start
Option 1: Docker Compose (local dev)
> **No Cloudflare tunnel?** If you're deploying locally without a Cloudflare sidecar, use the override file instead of creating the external network:
>
> This turns cloudflare-net into a regular Docker bridge network created on demand.
> **Optional services (Portainer / Teams).** The default docker compose up -d starts only the core stack (Odoo RPC, Filesystem, OCA, EE, GitHub, Qdrant, Ollama, Claude Terminal). To also enable the **Portainer MCP** or **Microsoft Teams MCP**, opt in with a Compose profile:
>
> Each optional service has its own required env vars (see .env.example). Without them the service container would crash-loop, so they're skipped by default.
> **First-run troubleshooting.** If docker compose ps shows mcp-odoo-rpc in Restarting state, it means the values in .env (ODOO_URL, ODOO_DB, ODOO_USERNAME, ODOO_API_KEY/ODOO_PASSWORD) don't point to a reachable Odoo instance. Edit .env to match a real Odoo and re-run docker compose up -d. The healthcheck curl http://localhost:8084/health will succeed only after mcp-odoo-rpc is Up.
Option 2: Quick installer script
**Linux / macOS:**
**Windows (PowerShell as Administrator):**
Option 3: Connect to Claude Code
After the stack is running, add it to Claude Code:
Or use the included .mcp.json:
---
⚖️ Why this vs alternatives?
| Capability | Raw XML-RPC | Single-purpose MCP-Odoo wrappers | **odoo-claude-mcp** |
|---|---|---|---|
| **Auth** | Per-call password | Single shared token | ✅ Bearer + per-user profiles + OAuth |
| **Multi-tenant** | ❌ One DB per process | ⚠️ Single connection | ✅ N tenants per stack |
| **Tools available** | ~6 RPC verbs | 20–40 | ✅ **197+** (92 native + 105 proxied) |
| **Memory / context layer** | ❌ | ❌ | ✅ Qdrant vector + Ollama embeddings, per-user + shared |
| **Skills / orchestration** | ❌ | ❌ | ✅ ai.skill records + memory packs |
| **Web terminal in browser** | ❌ | ❌ | ✅ xterm.js + tmux + Claude Code |
| **GitHub / Portainer / Teams / OCA** | ❌ | ❌ | ✅ 8 federated MCP servers |
| **Bulgaria localization** | ❌ | ❌ | ✅ НАП-ready, fiscal positions, VAT |
| **Production deployment** | DIY | Docker only | ✅ Docker Compose + K3s/Kustomize |
| **Audit logging / rate limit** | ❌ | ⚠️ | ✅ Per-user logs, Cloudflare AI Gateway |