odoo-claude-mcp is a production-grade Model Context Protocol (MCP) server suite for Odoo ERP, used to connect Claude and any MCP-compatible client to self-hosted Odoo instances (versions 15 to 19), and to integrate auxiliary services needed for Odoo development, operations, and team collaboration.
Purpose
Turn self-hosted Odoo instances into first-class members of the Claude ecosystem, providing a unified AI operation interface for Odoo developers, consultants, business users, and SaaS/MSP platform operators. Core scenarios include: real-time module development, deploying modules via RPC (without filesystem access), multi-environment workflows, OCA contribution processes, multi-client database management, per-client memory, natural language querying of sales data, invoice document extraction, semantic search, email and calendar collaboration, and multi-tenant hosting with per-tenant billing integration.
Main Capabilities
The core server odoo-rpc-mcp provides 197+ MCP tools (92 native tools + 105 proxy tools, covering Portainer, GitHub, Teams, EE, OCA, and the filesystem), including:
- CRUD and search: odoo_search_read, odoo_create, odoo_write, odoo_unlink, odoo_execute
- Introspection: odoo_fields_get, odoo_list_models, odoo_module_info
- Multi-connection: odoo_connect, user_connection_activate, allowing instant switching between databases
- Web sessions: odoo_web_login, odoo_web_call, odoo_web_export, odoo_web_report
- File operations: odoo_attachment_upload, odoo_attachment_download, public_access_download
- Reports: odoo_report, public_access_report_pdf, public_access_report_xlsx
- Portal access: public_access_portal_orders, public_access_portal_invoices, public_access_portal_tickets
- Bulgarian localization: odoo_fp_configure, odoo_fp_list, odoo_fp_details (adapted for НАП compliance)
- Translation (introduced in 2.10): odoo_list_translatable_fields, odoo_get_field_translations, odoo_translate_field, odoo_translate_html, adapted by version (native JSONB API in Odoo 16+, ir.translation fallback below 16), automatically ZWSP-marking translations that were intentionally left untranslated
- Website snippets (introduced in 2.10): odoo_website_list_snippets, odoo_website_list_page_snippets, odoo_website_add_snippet, odoo_website_update_snippet, odoo_website_remove_snippet, lxml-based HTML parsing and xpath replacement, covering blogs, pages, product descriptions, and mega menus
- AI integration: ai_tokenize_record, ai_search_similar, ai_collection_info (based on Qdrant vector embeddings)
- Memory system: memory_read, memory_write, memory_share, memory_pull (supports per-user and shared memory)
- Google services: OAuth, Gmail search/read/send, calendar CRUD
- Telegram: MTProto client, can send messages, search contacts, read conversations
- SSH and Git: remote command execution, Git operations
Auxiliary MCP servers include:
- ee-mcp: Odoo Enterprise tools, covering license verification, EE module repository management, dependency analysis, selective linking of EE modules, and EE vs. OCA module conflict detection
- oca-mcp: OCA module management, supporting cloning repositories, full cloning, searching local OCA repositories, generating README/icons/requirements.txt, branch migration, generating changelogs from newsfragments
- claude-terminal: a browser terminal based on xterm.js + tmux + Claude Code, including a WebSocket gateway, per-user persistent tmux sessions, themeable terminals (Catppuccin, Dracula, Tokyo Night, Gruvbox, etc.), and a public deployment landing page
- Infrastructure MCP: github-mcp (code/issue/PR/repository search), portainer-mcp (Docker/Kubernetes environment management), teams-mcp (Microsoft Teams messages), filesystem-mcp (scoped filesystem operations)
Companion Odoo modules:
- l10n_bg_claude_terminal: free/LGPL-3, exposes MCP + Claude Terminal configuration as Odoo user preferences and company settings, supports Odoo 16, 18, 19 (each major version has a separate branch). Features include per-user MCP endpoints and Bearer tokens, an Odoo RPC connector, web session credentials, Anthropic API key/OAuth passthrough, Telegram + Viber configuration, 18 terminal themes, a Claude.ai OAuth login button, a real-time refresh bus (MCP writes trigger real-time updates of forms/lists), a test connection button, one-click save MCP, and a dynamic XML-RPC database list. For non-Bulgarian deployments, the international branch rosenvladimirov/odoo-mcp-terminal (AGPL-3.0) can be used.
- l10n_bg_ai_billing: paid/OPL-1, a SaaS billing module with 8 models, supporting plan pricing (Starter €49 / Business €129 / Professional €299 / Enterprise €599), usage billing with cent-level precision, a Portainer client wrapper, AES-256 encrypted ZIP export, a skills catalog, memory packs, Bulgarian trade register integration, sale.order integration, and an MCP Terminal add-on.
- odoo-mcp-theme: free/AGPL-3, an Odoo 19 website theme using an OKLCH paper-ink + indigo color scheme, custom snippets, a vertical timeline language switcher, editorial typography, and fully #wrapwrap-scoped.
Usage
Three deployment options are provided:
- Docker Compose (local development): by default starts the core suite (Odoo RPC, Filesystem, OCA, EE, GitHub, Qdrant, Ollama, Claude Terminal); optional services (Portainer, Teams) are enabled via Compose profiles, and each optional service requires the corresponding environment variables to be configured in .env.example. When there is no Cloudflare tunnel, an override file can be used. On first run, if mcp-odoo-rpc is in the Restarting state, you need to correct ODOO_URL, ODOO_DB, ODOO_USERNAME, ODOO_API_KEY/ODOO_PASSWORD in .env to point to an accessible Odoo instance.
- Installation script: Windows (run PowerShell as administrator)
- Connect Claude Code: add the MCP configuration or use the included .mcp.json For production, Kustomize deployment in the k3s/ directory is recommended, supporting cert-manager, Cloudflare tunnel, and horizontal scaling. For public deployments, token authentication through the gateway ensures that only authorized Claude sessions can connect, supporting Cloudflare Zero Trust or a simple tunnel. The suite is designed to be registrable as a Claude.ai custom connector (public HTTPS endpoint + token authentication), and the Claude API can also be authenticated with one click via the Claude.ai OAuth login button in the l10n_bg_claude_terminal module.
Limitations
The materials do not provide specific performance metrics, a complete list of compatible Claude clients, or cost explanations beyond pricing. Actual results depend on the connectivity of the actual Odoo instance and the environment configuration. It is currently on the 3.0 preview track (v3.3.8), and the stable version is the 2.0 branch (v2.31.0)。