odoo-doc-mcp

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.

Category
Visit Server

README

Odoo Documentation MCP Server (odoo-doc-mcp)

Model Context Protocol Odoo Multi-Version Python Version License Transport

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

  • ๐Ÿ”„ 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, or master).
  • ๐ŸŒ 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)

  1. 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
    
  2. Start the Odoo MCP Server locally:

    python -m odoo_doc_mcp.server --transport sse --port 8008 --host 0.0.0.0
    
  3. Expose port 8008 with ngrok:

    ngrok http 8008
    
  4. 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)

  1. Install cloudflared:

    sudo wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
    sudo dpkg -i cloudflared-linux-amd64.deb
    
  2. Launch Cloudflare Tunnel:

    cloudflared tunnel --url http://localhost:8008
    
  3. 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 (_inherit vs _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

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.

Official
Featured
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured