MCP Directory

Odoo Claude MCP

Self-hosted MCP gateway connecting Claude to Odoo ERP (15→19) — 197+ tools, multi-tenant, Bulgaria l10n.

Unverified
HTTP (remote)
API key
Python

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
claude mcp add odoo-mcp --url https://your-domain.com/mcp --header "Authorization: Bearer YOUR_TOKEN"

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "odoo-claude-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://your-domain.com/mcp",
        "--header",
        "Authorization: Bearer YOUR_TOKEN"
      ]
    }
  }
}

Claude Desktop connects to remote servers through the `mcp-remote` proxy (installed on first run via npx). Restart Claude Desktop after saving.

Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf

Before you start

  • A reachable self-hosted Odoo instance (15 → 19, Community or Enterprise) with URL, DB, username, and API key/password
  • Docker + Docker Compose (or a K3s/Kubernetes cluster with kubectl + Kustomize for production)
  • A public HTTPS endpoint / reverse proxy (Nginx, Traefik, Caddy, or Cloudflare Tunnel) to expose the gateway for Claude.ai connector use
  • A generated per-user Bearer token for MCP authentication
  • Optional: Qdrant (vector store), Ollama (local LLMs), and service-specific env vars for Portainer/Teams

About Odoo Claude MCP

A self-hosted MCP gateway for Odoo ERP. It runs a unified MCP router that proxies to 7+ federated backend MCP servers (Odoo RPC core, Odoo EE, OCA, GitHub, Portainer, filesystem, Teams) plus a browser-based Claude Code terminal, exposing 197+ tools through a single token-authenticated HTTPS endpoint. Designed for multi-tenant, multi-database deployments by Odoo developers, consultants, and SaaS/MSP operators, with per-user memory (Qdrant + Ollama), audit logging, and Bulgaria (НАП) localization. Connect via Claude Code (claude mcp add ... --url .../mcp --header Authorization: Bearer) or as a Claude.ai Custom Connector.

Tools & capabilities (42)

odoo_search_read

Search and read Odoo records (combined search + read) on any model.

odoo_create

Create new Odoo records.

odoo_write

Update existing Odoo records.

odoo_unlink

Delete Odoo records.

odoo_execute

Call arbitrary Odoo model methods via RPC.

odoo_fields_get

Introspect a model's field definitions.

odoo_list_models

List available Odoo models.

odoo_module_info

Get information about an installed Odoo module.

odoo_connect

Connect to / switch the active Odoo database on the fly.

user_connection_activate

Activate a stored per-user Odoo connection for the session.

odoo_web_login

Establish a web (JSON-RPC) session against Odoo.

odoo_web_call

Invoke an Odoo web controller endpoint via the web session.

odoo_web_export

Export data through the Odoo web session.

odoo_web_report

Render a report through the Odoo web session.

odoo_attachment_upload

Upload a file as an ir.attachment to Odoo.

odoo_attachment_download

Download an attachment from Odoo.

public_access_download

Download a file via public/portal access.

odoo_report

Generate an Odoo report (e.g. invoice/sale order PDF).

public_access_report_pdf

Generate a report as PDF via public access.

public_access_report_xlsx

Generate a report as XLSX via public access.

public_access_portal_orders

Read portal sale orders via public access.

public_access_portal_invoices

Read portal invoices via public access.

public_access_portal_tickets

Read portal tickets via public access.

odoo_fp_configure

Configure Bulgaria (НАП) fiscal positions.

odoo_fp_list

List configured fiscal positions.

odoo_fp_details

Get details of a fiscal position.

odoo_list_translatable_fields

List translatable fields on a model (version-aware).

odoo_get_field_translations

Read existing translations for a field.

odoo_translate_field

Translate a simple translate=True field.

odoo_translate_html

Translate html_translate/xml_translate fields with extract/terms/replace modes.

odoo_website_list_snippets

List available website snippets.

odoo_website_list_page_snippets

List snippets present on a website page/blog post.

odoo_website_add_snippet

Add a snippet to a website page or blog post.

odoo_website_update_snippet

Update a snippet (e.g. background image swap, CTA insertion).

odoo_website_remove_snippet

Remove a snippet from a page.

ai_tokenize_record

Generate Qdrant vector embeddings for an Odoo record.

ai_search_similar

Semantic search for similar records via the vector store.

ai_collection_info

Inspect a Qdrant vector collection.

memory_read

Read from per-user or shared memory.

memory_write

Write to per-user or shared memory.

memory_share

Share memory with the team (institutional knowledge).

memory_pull

Pull shared memory into the user's context.

What this server can do

Odoo Claude MCP provides tools for these capabilities — tap one to see every MCP server that does the same:

When to use it

  • Let Claude perform live, real CRUD on an Odoo instance — e.g. edit a sale order with automatic recalculation.
  • Manage multiple client Odoo databases from one authenticated Claude session (consultants/agencies).
  • Deploy/update Odoo modules, views, and data via RPC without filesystem access.
  • Natural-language queries against real Odoo sales/accounting data for business users.
  • Semantic search and document-extraction workflows (vision LLMs → account.move) backed by Qdrant + Ollama.
  • Run Odoo + AI as a multi-tenant SaaS, with per-tenant isolated MCP endpoints, usage tracking, and audit logs.

Security notes

Self-hosted: you deploy the gateway (Docker Compose or K3s) behind your own HTTPS reverse proxy. Authentication is a per-user Bearer token generated by the stack; the gateway enforces per-user profile isolation, connection-level access control, and per-user audit logging. No credentials in code — all secrets via env vars or Kubernetes secrets. BYOK Anthropic keys are stored encrypted per-user and never shared across tenants. Report security issues privately to vladimirov.rosen@gmail.com.

Odoo Claude MCP FAQ

Does it work with Odoo Enterprise?

Yes. Odoo 15→19 (Community + Enterprise) are supported via XML-RPC + JSON-RPC. EE-specific tools (license check, EE module discovery, dependency analysis) live in the dedicated ee-mcp server. Works on any self-hosted Odoo (bare metal, Docker, K3s).

Can one stack serve multiple Odoo databases?

Yes — that's the core design. One MCP gateway proxies to N Odoo connections, each with its own credentials/language/timezone; odoo_connect / user_connection_activate switch the active database mid-session, and per-user memory namespaces keep context isolated.

Does it require Cloudflare?

No. Cloudflare (Tunnel + WAF + AI Gateway) is the recommended production topology, but the stack runs behind any reverse proxy (Nginx, Traefik, Caddy) or on a LAN/VPN. A docker-compose.local.yml override removes the Cloudflare network requirement for local dev.

How do I connect Claude to it?

Deploy the stack with a public HTTPS endpoint, generate a user Bearer token, then either run `claude mcp add odoo-mcp --url https://your-domain.com/mcp --header "Authorization: Bearer YOUR_TOKEN"` for Claude Code, or add it as a Custom Connector in Claude.ai (URL .../mcp, Auth: Bearer token).

Is BYOK (your own Anthropic key) safe?

Yes. Each authenticated user can configure their own Anthropic API key via the Odoo UI; keys are stored encrypted in the per-user profile and never leak to other tenants. The server never bundles a shared key into multi-tenant deployments.

Alternatives to Odoo Claude MCP

Compare all alternatives →

AI-powered task-management system for AI-driven development that drops into Cursor, Windsurf, Claude Code, and more.

Unverified
stdio (local)
API key
JavaScript
15 tools
Updated 2 months agoRepo

Background computer-use MCP server that drives native macOS, Windows, and Linux desktop apps without stealing focus.

Unverified
stdio (local)
No auth
Rust
33 tools
Updated 11 hours agoRepo

Self-hosted MCP server for Jira and Confluence Cloud and Server/Data Center.

Verified
stdio (local)
API key
Python
11 tools
Updated 2 months agoRepo