odoo-doc-mcp
MCP server that provides live Odoo documentation (v15.0โv19.0+) in clean Markdown, enabling AI assistants to search, fetch, and export official Odoo user and developer docs.
README
Odoo Documentation MCP Server (odoo-doc-mcp)
The ultimate Model Context Protocol (MCP) server for All Odoo Versions (v15.0 to v19.0+). Connect your AI assistants (Cursor IDE, Claude Desktop, ChatGPT Web, Custom Web AI Chatbots, Windsurf) directly to live, official Odoo user and developer documentation in clean, LLM-optimized Markdown format.
๐ Table of Contents
- โจ Features & Highlights
- [๐ Connecting Web AI Chatbots via Public Tunnel (ngrok / Cloudflare / localtunnel)]
- ๐ฌ Ready-to-Use Prompt Examples Library
- ๐ ๏ธ Installation & Setup Guide
- ๐ Running the MCP Server
- ๐ค AI Client Configuration (Cursor, Claude, ChatGPT)
- ๐ก How Non-Technical & Technical Users Ask Questions
- ๐ ๏ธ MCP Tools Reference
- ๐งช Running Automated Tests
- ๐๏ธ Project Architecture
- ๐ License & Author
โจ Features & Highlights
- ๐ Universal Multi-Version Support (v15.0 - v19.0+): Seamlessly fetch documentation for any Odoo release version (
15.0,16.0,17.0,18.0,19.0, ormaster). - ๐ Web AI Chatbot Ready (ngrok & Cloudflare Tunnels): Includes step-by-step guides to expose local SSE endpoints to online cloud AI tools (ChatGPT Web, Custom AI Chatbots) over HTTPS.
- ๐ Deep All-in-One Search (
search_and_fetch_docs): Automatically searches the index AND fetches the FULL Markdown text of all matching articles in parallel. - ๐ Recursive Master Section Exporter (
get_doc_section): Discovers all subpages in a documentation section (e.g. CRM, Accounting, Inventory, ORM, Views) and downloads them in parallel, merging everything into one master document. - ๐ 100% Official Live Odoo Docs: Dynamically fetches live content directly from
https://www.odoo.com/documentation/. Zero stale static files. - ๐ Full CORS Enabled: Built-in
CORSMiddleware(Access-Control-Allow-Origin: *) for browser-based AI clients. - โก Local Disk Caching & SQLite FTS5: Superfast full-text search with disk-cached Markdown responses.
๐ Connecting Web AI Chatbots via Public Tunnel (ngrok / Cloudflare / localtunnel)
Web-based AI Chatbots (such as ChatGPT Web, Custom Web AI Agents, Cloud LLMs) run on external servers and cannot access http://localhost:8008/sse directly.
To connect an online AI Chatbot to your local MCP server, expose your server port using a secure HTTPS tunnel tool:
Method 1: Using ngrok (Recommended)
-
Install ngrok (if not installed):
curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | sudo tee /etc/apt/sources.list.d/ngrok.list sudo apt update && sudo apt install ngrok -
Start the Odoo MCP Server locally:
python -m odoo_doc_mcp.server --transport sse --port 8008 --host 0.0.0.0 -
Expose port 8008 with ngrok:
ngrok http 8008 -
Copy your Public HTTPS SSE URL: ngrok will generate a public URL like
https://a1b2c3d4.ngrok-free.app. Your Public SSE URL to give to your AI Chatbot is:https://a1b2c3d4.ngrok-free.app/sse
Method 2: Using Cloudflare Tunnel (cloudflared - 100% Free)
-
Install cloudflared:
sudo wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb sudo dpkg -i cloudflared-linux-amd64.deb -
Launch Cloudflare Tunnel:
cloudflared tunnel --url http://localhost:8008 -
Copy your TryCloudflare HTTPS SSE URL: Cloudflare will output a URL like
https://your-tunnel-name.trycloudflare.com. Your Public SSE URL is:https://your-tunnel-name.trycloudflare.com/sse
Method 3: Using localtunnel (Node.js / npm)
npx localtunnel --port 8008
Your Public SSE URL will be: https://your-custom-subdomain.loca.lt/sse
๐ฌ Ready-to-Use Prompt Examples Library
Copy and paste these example prompts into your AI assistant:
๐ค Non-Technical Business User Prompts
- ๐ฌ "How do I track lost sales opportunities in Odoo CRM, and how can I generate a report to analyze why we lost them?"
- ๐ฌ "What is the step-by-step process for recording vendor bills and matching them with bank payments in Odoo Accounting?"
- ๐ฌ "How do I transfer stock between two different internal warehouses in Odoo Inventory?"
๐ Odoo Functional Consultant Prompts
- ๐ฌ "Using the Odoo Doc server for Odoo 19.0, explain how Chart of Accounts, Journals, and Tax Grids interact during invoice validation."
- ๐ฌ "Explain the difference between Automated and Manual Inventory Valuation in Odoo 18.0 with real-world accounting entries."
๐ป Odoo Backend Developer Prompts
- ๐ฌ "Fetch the Odoo ORM documentation (
developer/reference/backend/orm.html) for Odoo 19.0 and give me examples of@api.depends,@api.constrains, and@api.onchange." - ๐ฌ "Search Odoo docs for model inheritance (
_inheritvs_inherits) and explain how parent field delegation works."
๐จ Odoo Frontend & View Developer Prompts
- ๐ฌ "Using Odoo Doc MCP, search for XML View Syntax (
developer/reference/user_interface/view_records.html) and explain list view<list>attributes and form view tab structures (<notebook>)." - ๐ฌ "How do I create a custom OWL component in Odoo 18.0 JavaScript framework?"
๐ Odoo Version Migration Prompts
- ๐ฌ "Search Odoo 19.0 docs for view changes and list view
<list>tag deprecations compared to older tree view tags."
๐ฏ SEO Keywords & Supported Topics
๐ผ Odoo Functional Modules (v15.0 - v19.0)
- Odoo Accounting & Invoicing: Chart of Accounts, Journals, Customer Invoices, Vendor Bills, Payment Gateways, Tax Returns, Bank Reconciliation, Year-End Closing, Financial Reports.
- Odoo CRM & Sales: Lead Management, Opportunities Pipeline, Lead Mining, Predictive Lead Scoring, Quotations, Sales Teams.
- Odoo Inventory & MRP: Warehouse Management, Stock Transfers, Product Tracking (Lots & Serials), Inventory Valuation, Reordering Rules, Manufacturing Orders (BOM).
- Odoo POS, eCommerce, HR, Project, & Purchasing.
๐ป Odoo Technical & Developer Documentation
- Odoo Server Framework 101: Module Structure, Manifest Files (
__manifest__.py). - Odoo ORM Reference: Models (
models.Model), Fields (Char,Many2one,One2many,Many2many), Compute Methods, SQL Constraints. - Odoo UI Views Syntax: List Views (
<list>), Form Views (<form>,<sheet>,<group>), Search Views (<search>,<filter>), Kanban Views, Pivot Views. - Domains & Security: Domain criteria expressions (
[('state', '=', 'posted')]), Record Rules (ir.rule), Access Rights (ir.model.access.csv). - JavaScript & OWL Framework: OWL Components, Web Client, JS Views, Widgets, Controllers.
๐ ๏ธ Installation & Setup Guide
1. Prerequisites
- Python 3.10+ (Python 3.12 recommended)
- pip and virtualenv
2. Set Up Virtual Environment
cd odoo-doc-mcp
# Create virtual environment if not created
python3 -m venv .venv
# Activate virtual environment
source .venv/bin/activate
# Install dependencies
pip install -e .
๐ Running the MCP Server
Local HTTP / SSE Server Mode
source .venv/bin/activate
python -m odoo_doc_mcp.server --transport sse --port 8008 --host 0.0.0.0
STDIO Transport Mode (Desktop AI Apps)
source .venv/bin/activate
python -m odoo_doc_mcp.server --transport stdio
๐ค AI Client Configuration (Cursor, Claude, ChatGPT)
1. Cursor IDE (.cursor/mcp.json)
{
"mcpServers": {
"odoo-doc": {
"url": "http://localhost:8008/sse"
}
}
}
2. Online AI Chatbot / Cloud Agent (via ngrok)
{
"mcpServers": {
"odoo-doc": {
"url": "https://a1b2c3d4.ngrok-free.app/sse"
}
}
}
3. Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"odoo-doc": {
"command": "/path/to/odoo-doc-mcp/.venv/bin/python",
"args": [
"-m",
"odoo_doc_mcp.server",
"--transport",
"stdio"
]
}
}
}
๐ ๏ธ MCP Tools Reference
| Tool Name | Parameters | Description |
|---|---|---|
search_and_fetch_docs |
query, version='18.0', max_results=3 |
Deep All-in-One Search: Searches index AND auto-fetches full Markdown text for all matches in parallel. |
get_doc_section |
path, version='18.0', recursive=True, max_pages=25 |
Recursive Master Exporter: Downloads an entire section and all child subpages in parallel into one document. |
get_complete_docs |
topic, version='18.0', max_pages=30 |
Export complete documentation for an entire module domain (CRM, Accounting, Sales, Inventory, ORM). |
get_learning_module |
topic, version='18.0' |
Generates a structured learning module with official unedited documentation text. |
get_doc_page |
path, version='18.0' |
Fetch and convert a single Odoo documentation page into clean Markdown. |
search_odoo_docs |
query, version='18.0', category, max_results=3 |
Search documentation topics by keyword with full content auto-fetching. |
list_doc_topics |
version='18.0', category |
Browse available Odoo documentation topics and category hierarchy. |
refresh_index |
version='18.0' |
Re-fetch the live Table of Contents HTML and update the SQLite search index. |
๐งช Running Automated Tests
source .venv/bin/activate
pytest tests/
๐๏ธ Project Architecture
odoo-doc-mcp/
โโโ odoo_doc_mcp/
โ โโโ __init__.py
โ โโโ server.py # FastMCP & Universal Starlette HTTP/SSE Controller
โ โโโ fetcher.py # Async HTTP fetcher, parallel section crawler & caching
โ โโโ parser.py # HTML to Markdown converter & TOC link extractor
โ โโโ indexer.py # SQLite FTS5 full-text search index manager
โ โโโ seed_data.py # Fallback offline navigation TOC seed
โโโ tests/
โ โโโ test_server.py # Pytest test suite
โโโ pyproject.toml # Project metadata & dependencies
โโโ README.md # Master documentation & SEO guide
โโโ .gitignore # Repository ignore rules
๐ท๏ธ Tags & Keywords
#odoo #mcp #model-context-protocol #odoo15 #odoo16 #odoo17 #odoo18 #odoo19 #odoo-documentation #cursor-ide #claude-desktop #chatgpt-mcp #ngrok #cloudflare-tunnel #python #ai-agent #pair-programming #odoo-developer #odoo-accounting #odoo-crm
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.