odoo-docs-mcp
v1.0.2
Published
MCP server for Odoo documentation sourced from the official GitHub repository.
Maintainers
Readme
Odoo Docs MCP Server
An MCP (Model Context Protocol) server that gives AI assistants — Cursor, Claude Desktop, VS Code, Windsurf, GitHub Copilot, and any MCP-compatible client — access to official Odoo documentation from the odoo/documentation GitHub repository (.rst sources under content/).
Features
- 4 tools — search docs, fetch a page by path, list sections with counts, refresh the index
- MCP resources —
odoo://versionsandodoo://statsfor quick discovery of configured branches - GitHub-native — index and content come from the public docs repo (no HTML scraping of odoo.com)
- Version-aware — choose doc branches such as
19.0,18.0, ormastervia configuration and tool arguments - Disk cache — index and fetched pages are cached under
CACHE_DIR(TTLs configurable) - HTTP transport —
--httpfor Streamable HTTP (e.g. team or scripted use) - Configurable — owner/repo, API hosts, cache paths, TTLs, and GitHub token via environment variables
Tools
search_odoo_docs
Search the documentation index built from content/**/*.rst paths and titles.
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | Keywords (non-empty). |
| limit | number | No | Max results (1–50, default: 15). |
| version | string | No | Doc branch/tag (must be in ODOO_DOCS_VERSIONS; defaults to ODOO_DOCS_VERSION). |
| section | string | No | Filter by top-level section slug (e.g. applications, developer). |
get_odoo_doc_content
Fetch one documentation file as normalized source text (with a short header and optional truncation).
| Parameter | Type | Required | Description |
|---|---|---|---|
| path | string | Yes | Repo path such as content/applications/.../page.rst (see Path rules). |
| version | string | No | Doc branch/tag (same rules as search). |
list_odoo_doc_sections
List all section slugs and how many pages each has for a given doc version.
| Parameter | Type | Required | Description |
|---|---|---|---|
| version | string | No | Doc branch/tag (defaults to ODOO_DOCS_VERSION). |
refresh_odoo_index
Clear the in-memory and on-disk index so the next search rebuilds from GitHub. Does not delete the pages/ body cache.
| Parameter | Type | Required | Description |
|---|---|---|---|
| version | string | No | Refresh only this version; omit to clear all cached indexes. |
Resources
| Resource | URI | Description |
|---|---|---|
| Versions | odoo://versions | JSON: default and allowed doc branches/tags. |
| Stats | odoo://stats | JSON: package version, uptime, default docs version. |
Documentation sections
Typical top-level section values returned by list_odoo_doc_sections (exact names depend on the indexed branch):
| Section | Contents (summary) |
|---|---|
| applications | End-user app docs (Sales, Inventory, Website, …) |
| developer | Developer reference and guides |
| administration | Hosting, Odoo.sh, deploy, accounts |
| contributing | How to contribute to Odoo / docs |
| legal | Legal topics |
Use section on search_odoo_docs to narrow results to one of these when your client passes the parameter through.
Quick Setup — Cursor
Minimal (~/.cursor/mcp.json):
{
"mcpServers": {
"odoo-docs": {
"command": "npx",
"args": ["-y", "odoo-docs-mcp"],
"env": {
"ODOO_DOCS_VERSION": "19.0"
}
}
}
}With more environment variables (replace paths and tokens with yours):
{
"mcpServers": {
"odoo-docs": {
"command": "npx",
"args": ["-y", "odoo-docs-mcp"],
"env": {
"ODOO_DOCS_VERSION": "19.0",
"ODOO_DOCS_VERSIONS": "18.0,19.0,master",
"GITHUB_TOKEN": "ghp_replace_with_your_token",
"CACHE_DIR": "/home/youruser/.cache/odoo-docs-mcp",
"INDEX_CACHE_TTL_MS": "43200000",
"PAGE_CACHE_TTL_MS": "43200000",
"MAX_CONTENT_LENGTH": "30000",
"ODOO_DOCS_GITHUB_OWNER": "odoo",
"ODOO_DOCS_GITHUB_REPO": "documentation",
"GITHUB_API_BASE": "https://api.github.com",
"GITHUB_RAW_BASE": "https://raw.githubusercontent.com"
}
}
}
}- Use
GITHUB_TOKENorGH_TOKEN(not both required) if you hit GitHub rate limits; public read ofodoo/documentationdoes not need special scopes. ODOO_DOCS_VERSIONS: comma-separated; everyversiontool argument must appear here.CACHE_DIR: prefer an absolute path when the IDE launches the server.INDEX_CACHE_TTL_MS/PAGE_CACHE_TTL_MS/MAX_CONTENT_LENGTH/PORT: set as strings in JSON; values are parsed as integers at startup (invalid → default).GITHUB_API_BASE/GITHUB_RAW_BASE: for GitHub Enterprise Server, use the API and raw hosts your admin provides.
Restart Cursor after saving. For HTTP and PORT, see HTTP mode.
Quick Setup — Claude Desktop
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"odoo-docs": {
"command": "npx",
"args": ["-y", "odoo-docs-mcp"],
"env": {
"ODOO_DOCS_VERSION": "19.0"
}
}
}
}Quick Setup — VS Code
Add to .vscode/mcp.json in your project (or user settings), following VS Code MCP docs:
{
"servers": {
"odoo-docs": {
"command": "npx",
"args": ["-y", "odoo-docs-mcp"],
"env": {
"ODOO_DOCS_VERSION": "19.0"
}
}
}
}HTTP mode
npm run start:http
# or
PORT=8080 ODOO_DOCS_VERSION=19.0 npx -y odoo-docs-mcp --httpListens on http://localhost:PORT (default 3000) with CORS enabled — suitable for local or controlled use; put a reverse proxy and auth in front if you expose it.
Environment variables
Read once when the server process starts (MCP env, shell, systemd, Docker -e, …). Restart after changes.
| Variable | Default | Description |
|---|---|---|
| ODOO_DOCS_VERSION | First entry in ODOO_DOCS_VERSIONS | Default branch when tools omit version (built-in list starts with 17.0). If not in ODOO_DOCS_VERSIONS, first allowed value is used and a warning is logged. |
| ODOO_DOCS_VERSIONS | 17.0,18.0,19.0,master | Allowed doc branches/tags (comma-separated). |
| ODOO_DOCS_GITHUB_OWNER | odoo | GitHub org or user for the docs repo. |
| ODOO_DOCS_GITHUB_REPO | documentation | Repository name. |
| GITHUB_API_BASE | https://api.github.com | GitHub REST API base URL. |
| GITHUB_RAW_BASE | https://raw.githubusercontent.com | Raw file host prefix. |
| GITHUB_TOKEN | (empty) | Optional PAT for API calls (Bearer). |
| GH_TOKEN | (empty) | Same as GITHUB_TOKEN; either is enough. |
| CACHE_DIR | ~/.cache/odoo-docs-mcp | Cache root. |
| INDEX_CACHE_TTL_MS | 86400000 (24h) | On-disk index cache TTL (ms). |
| PAGE_CACHE_TTL_MS | 86400000 (24h) | On-disk page body cache TTL (ms). |
| MAX_CONTENT_LENGTH | 20000 | Max characters per fetched doc (plus header). |
| PORT | 3000 | HTTP listen port (--http only). |
Path rules for get_odoo_doc_content
Prefer the path value from search_odoo_docs results.
- Prefix:
content/ - Suffix:
.rst - Forward slashes only; no
..
Example: content/applications/sales/sales/sales_quotations/create_quotations.rst
Caching
| Cache | Role | Location (under CACHE_DIR) |
|---|---|---|
| Index | Doc tree per version | index/{version}.json |
| Pages | Fetched document bodies | pages/ (hashed filenames) |
refresh_odoo_index clears index + memory, not pages/; delete pages/ manually to force a full refetch of bodies.
Example queries
- "Search Odoo 19 docs for invoicing policy on sales orders"
- "What does the Odoo documentation say about Odoo.sh branch stages?"
- "List documentation sections for version 19.0"
- "Fetch the keyboard shortcuts page from the Odoo docs"
Related MCPs
adobe-commerce-docs-mcp— Adobe Commerce merchant & admin docs (experienceleague.adobe.com)adobe-commerce-dev-docs-mcp— Adobe Commerce developer docs (developer.adobe.com/commerce)aem-live-docs-mcp— AEM / Edge Delivery Services docs (aem.live)adobe-commerce-kb-mcp— Adobe Commerce Support Knowledge Base — troubleshooting & patchesadobe-app-builder-docs-mcp— Adobe App Builder — serverless, I/O Runtime, Commerce extensibilityadobe-api-mesh-docs-mcp— Adobe API Mesh — GraphQL gateway & source handlersadobe-io-events-docs-mcp— Adobe I/O Events — webhooks, journaling & event providers
Development
npm install
npm run build
npm test
npm start # stdio
npm run start:http # HTTPLimitations
- Returned content is source-style (
.rst), not identical to the live HTML on odoo.com/documentation. - Authentication is not built in; restrict who can run the server or reach the HTTP port.
Find this MCP
| Registry | Link |
|---|---|
| GitHub | github.com/jigarkkarangiya/odoo-docs-mcp |
| npm | npmjs.com/package/odoo-docs-mcp |
| MCP directory | mcp.so — search odoo-docs |
License
CC BY-SA 4.0 © 2026 Jigar Karangiya · LinkedIn
Documentation returned by this MCP is sourced from the official Odoo documentation repository. That content is not owned or copyrighted by this project; rights remain with Odoo under their CC BY-SA 4.0 license.
