Features AI Connect Pricing Docs Contact
Get Started Free →
v2.0 · June 2026

MCP Odoo Platform Documentation

Everything you need to connect Claude AI and other LLMs to your Odoo ERP — from first signup to live tool calls. This platform bridges the Model Context Protocol (MCP) to Odoo's JSON-RPC API so AI models can read, write, and automate your ERP in real time.

💡
New here? Jump straight to Quick Start — you'll have Claude talking to Odoo in under 5 minutes.

What is MCP Odoo Platform?

MCP Odoo Platform is a self-hosted bridge that exposes your Odoo ERP as a set of AI tools over the Model Context Protocol. It runs as a secure HTTPS service and lets any MCP-compatible AI (Claude, custom agents) perform structured Odoo operations through natural language.

🤖
Claude AI
claude.ai
SSE stream
HTTPS
MCP Bridge
mcpodoo.com
JSON-RPC
TLS 1.3
🔷
Odoo ERP
Your Instance

Prerequisites

ItemRequiredNotes
Odoo instanceRequiredCommunity or Enterprise, v16 / v17 / v19
Odoo API userRequiredUser with API access enabled in Odoo settings
Claude accountFor SSEclaude.ai Pro/Team or Claude Desktop
API keyOptionalAnthropic / OpenAI / DeepSeek / Groq key for platform chat

Quick Start — 0 to Hero

Follow these steps in order. You'll go from zero to Claude reading and writing your live Odoo data in under 5 minutes.

1

Create Your Account

Go to https://mcpodoo.com/signup.

2

Add Your Odoo Connection

Log in → go to Connections in the sidebar → click Add Connection. Enter your Odoo URL (e.g. https://yourcompany.myodoo.nc), database name, and Odoo username/password/API key.

3

Enable MCP Connector & Copy Token

In your connection settings, toggle Enable MCP Connector. A unique connector token is generated. Click Copy SSE URL — it looks like:
https://mcpodoo.com/sse/{conn_id}/token/{token}

4

Paste URL into Claude

Open claude.ai → click your profile → SettingsIntegrationsAdd custom integration. Paste the SSE URL and save. Claude will immediately load all Odoo tools.

5

Test It — Talk to Your Odoo

Start a new Claude conversation and try: "List the last 5 customer orders" or "Show me all overdue invoices". Claude will call your Odoo tools live and return real data.

Done! Claude can now search, read, create, update, and delete Odoo records. See MCP Tools for the full list of what it can do.

System Architecture

Understanding how the platform works helps you troubleshoot, secure, and extend it. Here is the full data flow from Claude to your Odoo database.

Full Data Flow

AI Clients
🤖
Claude.ai
Web / Desktop
🌐
MCP Agent
Custom script
⚙️
n8n / Zapier
Automation
HTTPS · SSE (Server-Sent Events)
MCP Bridge — mcpodoo.com
🔐
JWT Auth
Middleware
FastAPI
ASGI server
🔧
MCP Tools
12 tools
🗄️
PostgreSQL
Users + config
Odoo JSON-RPC · TLS 1.3
Odoo ERP
📦
Sales
sale.order
🧾
Invoices
account.move
📋
CRM
crm.lead
📦
Inventory
stock
👥
Contacts
res.partner

How SSE Works

When Claude connects to the SSE endpoint, it establishes a persistent HTTP connection. The server sends tool definitions, and Claude can call them by sending POST requests to /messages/. The response streams back in real time.

Flow
1. Claude → GET /sse/{conn_id}/token/{token} Server ← sends tool list (odoo_search, odoo_create …) 2. Claude → POST /messages/?session_id={sid} body: { "tool": "odoo_search_records", "model": "sale.order", … } Server → calls Odoo JSON-RPC Server ← streams result back to Claude 3. Claude parses result → shows to user in natural language

Authentication Flow

The platform uses two separate auth layers — one for the web panel (JWT cookies) and one for MCP connections (connector tokens stored in the database).

LayerMethodScope
Web PanelJWT CookieLogin/signup pages, user panel settings
MCP SSEConnector TokenPer-connection token embedded in SSE URL
Odoo APIAPI Key / PasswordStored encrypted in PostgreSQL per connection

Method 1 — Claude Direct (SSE)

The simplest way: connect Claude.ai or Claude Desktop directly to your Odoo with a single URL. No code, no API key needed. Claude gets 12 live Odoo tools in one click.

Step-by-step — Claude.ai Web

1

Get Your SSE URL

In the MCP platform panel → Connections → select your connection → click Enable Connector → copy the SSE URL shown.

2

Open Claude Settings

In claude.ai → click your profile picture (top right) → SettingsIntegrations.

3

Add Custom Integration

Click Add custom integration → paste your SSE URL → click Add. Claude tests the connection and lists available tools.

4

Start Using

Start any new conversation. At the bottom of the chat, you'll see the Odoo integration enabled. Ask anything about your Odoo data.

Claude Desktop Setup

Edit your Claude Desktop config file:

JSON — ~/.claude/claude_desktop_config.json
{ "mcpServers": { "odoo": { "url": "https://mcpodoo.com/sse/{conn_id}/token/{token}" } } }
📝
Replace placeholders: {conn_id} and {token} are shown in your connection settings panel — just copy the full URL.

Streamable HTTP (alternative)

For clients that support the newer MCP Streamable HTTP spec:

URL format
https://mcpodoo.com/mcp/{conn_id}/token/{token}

Method 2 — API Providers

Use the MCP Odoo web platform as an AI chat interface. Bring your own API key from Anthropic, OpenAI, DeepSeek, or Groq and chat with your Odoo directly in the browser.

How it works

🧑‍💻
Your Browser
MCP Platform
API call
HTTPS
🔑
AI Provider
Anthropic / OpenAI
tool call
internal
🔷
Odoo ERP
JSON-RPC

Setup

1

Go to Settings in the Platform

Log in → Settings in the sidebar → AI Provider section.

2

Choose Provider and Enter API Key

Select your provider from the dropdown and paste your API key. Keys are stored encrypted per user.

3

Open Chat

Go to Chat in the sidebar. Select your Odoo connection from the dropdown and start chatting. The AI can call all 12 Odoo tools.

Supported Providers

ProviderModelsAPI Key URL
AnthropicClaude Sonnet 4.6, Opus 4.8, Haiku 4.5console.anthropic.com
OpenAIGPT-4o, GPT-4o mini, o3-miniplatform.openai.com
DeepSeekDeepSeek V3, R1, R1-Distillplatform.deepseek.com
GroqLlama 3.3 70B, Mixtral 8x7Bconsole.groq.com (free tier)

Method 3 — Local AI (Ollama)

Run AI completely locally with Ollama. No cloud, no API cost, total privacy. Your data never leaves your server.

🔒
Full Privacy: With Ollama, all AI inference runs on your own machine. No Odoo data is ever sent to any third party.

Setup Ollama

1

Install Ollama

Run on your server or local machine:

bash
curl -fsSL https://ollama.ai/install.sh | sh ollama pull llama3.3 ollama serve
2

Configure in Platform Settings

In platform Settings → AI Provider → select Ollama → set endpoint to http://localhost:11434 → select your model.

3

Start Chatting Locally

Open Chat → select Ollama → your model runs locally while still calling Odoo tools through the MCP bridge.

Recommended Models

ModelSizeBest for
llama3.3:70b40 GBBest quality, needs GPU
llama3.2:3b2 GBFast, runs on CPU
mistral:7b4 GBGood balance, structured output
deepseek-r1:7b4 GBReasoning tasks, analysis

MCP Tools Reference

The platform exposes 12 tools to connected AI clients. These are callable by Claude or any MCP-compatible agent to perform Odoo operations in natural language.

odoo_search_records
Search records in any Odoo model with domain filters, field selection, limit, and offset.
model* domain fields limit offset
odoo_get_record
Fetch a single record by ID with selected fields.
model* record_id* fields
odoo_create_record
Create a new record in any Odoo model. Returns the new record ID.
model* values*
odoo_update_record
Update one or more records by ID. Can update multiple IDs at once.
model* record_ids* values*
odoo_delete_record
Delete records by ID list. Use with caution — this is permanent.
model* record_ids*
odoo_execute_method
Call any Odoo model method (action_confirm, action_invoice_open, etc.).
model* method* record_ids args
odoo_get_model_fields
Get field definitions for any Odoo model — name, type, label, required.
model* attributes
odoo_list_models
List all installed Odoo models with their technical names and display names.
filter
odoo_count_records
Count records matching a domain filter without fetching full data.
model* domain
odoo_aggregate_records
Group and aggregate records (sum, avg, count) — like SQL GROUP BY.
model* fields* groupby domain
odoo_post_message
Post a chatter message on a record — like adding a note or sending a message in Odoo.
model* record_id* body*
odoo_server_info
Get Odoo server version, database name, and installed modules info.
no params needed
💡
Params marked * are required. All other params are optional. Claude decides which params to use based on your natural language request.

Example Tool Calls

Claude prompt → MCP tool → Odoo
# You say to Claude: "List all confirmed sales orders this month over $5000" # Claude calls: odoo_search_records( model = "sale.order", domain = [ ["state", "=", "sale"], ["date_order", ">=", "2026-06-01"], ["amount_total", ">", 5000] ], fields = ["name", "partner_id", "amount_total", "date_order"], limit = 50 )
Claude prompt → MCP tool → Odoo
# You say to Claude: "Create a new customer contact: John Smith, john@acme.com, company Acme Corp" # Claude calls: odoo_create_record( model = "res.partner", values = { "name": "John Smith", "email": "john@acme.com", "company_name": "Acme Corp", "customer_rank": 1 } )

Platform Guide

A walkthrough of every section of the MCP Odoo web panel.

Dashboard

The dashboard shows your active Odoo connections, MCP session status, recent activity, and quick links to add connections or configure AI.

Connections

Each connection represents one Odoo instance. Fields:

FieldDescription
Connection NameFriendly label shown in the platform
Odoo URLFull URL of your Odoo instance (e.g. https://demo.myodoo.nc)
DatabaseOdoo database name (shown in Odoo URL or Settings)
UsernameOdoo login email of the API user
Password / API KeyOdoo password or API key (Settings → Technical → API Keys)
Enable MCP ConnectorGenerates the SSE URL with a unique secure token

Settings

Configure your AI provider API key, default model, and platform preferences. Settings are per-user and stored securely in the database.

Security Overview

Security is built in at every layer. Your Odoo credentials never leave the server and all communication is encrypted.

Security Layers

LayerImplementation
TransportTLS 1.3 via Nginx — all traffic encrypted in transit
Web AuthHS256 JWT in HttpOnly cookies — 7 day expiry
Passwordsbcrypt hashed with salt — never stored plain text
MCP Tokens256-bit random tokens, compared with HMAC to prevent timing attacks
Odoo CredsStored in PostgreSQL — accessible only by the app user
FirewallUFW blocks port 8000 — only Nginx (80/443) is public

Best Practices

Use Odoo API Keys, Not Passwords

Create a dedicated Odoo API key in Settings → Technical → API Keys. This lets you revoke access without changing your password.

Rotate Connector Tokens Regularly

In the connection settings, click Regenerate Token to issue a new SSE URL. Old URLs stop working immediately.

Restrict Odoo User Permissions

The Odoo API user only needs access to models Claude should be able to read/write. Don't use an admin account.

Claude Prompt Examples

Copy these prompts directly into Claude. With the Odoo MCP integration active, Claude will execute the Odoo calls and return live data.

Sales & Orders

Try these in Claude
"List my top 10 customers by total sales this year" "Show all quotations that haven't been confirmed in 30 days" "Create a draft quotation for Acme Corp for 5 units of [Product Name]" "How many orders were confirmed last week? What's the total revenue?" "Mark invoice INV/2026/001 as paid"

Inventory & Products

Try these in Claude
"What products are low on stock? (below reorder point)" "Show me all products in the Electronics category with their prices" "Update the price of product [ID] to $299" "List all stock moves for product [name] in the last 7 days"

CRM & Contacts

Try these in Claude
"Show all open CRM leads assigned to me" "Create a new lead: company BigCorp, contact Jane Smith, email jane@bigcorp.com" "Which leads have been in 'Qualified' stage for more than 2 weeks?" "Add a note to partner [ID]: 'Called and left voicemail'"

FAQ

Does this work with self-hosted Odoo?

Yes. Any Odoo instance reachable from the MCP server works — self-hosted, cloud, or myodoo.nc. The URL must be HTTPS for production use.

Is my Odoo data stored on the MCP server?

No. The MCP server only stores your connection credentials (encrypted in PostgreSQL). Odoo data flows through the server in real-time but is never persisted.

Can I have multiple Odoo connections?

Yes. Add as many connections as you need. Each gets its own SSE URL with a separate token. You can switch between them in the Claude connector settings.

What Odoo versions are supported?

Odoo 16, 17, and 19 (Community and Enterprise). The JSON-RPC API used is stable across all these versions.

Claude says "No tools available" — what do I do?

Check that: (1) the MCP Connector is enabled in your connection settings, (2) the SSE URL you pasted in Claude is correct and complete, (3) you can open the SSE URL in a browser and it shows a stream. If the URL returns 401, regenerate the token.

Can I deploy this on my own server?

Yes! Run sudo bash deploy.sh on any Ubuntu 22+ server. The script installs Python, PostgreSQL, systemd service, and UFW firewall automatically. Takes about 3 minutes.

🚀
Ready to get started?
Create your free account and connect Claude to Odoo in under 5 minutes.
Get Started Free →