npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

odoo-docs-mcp

v1.0.2

Published

MCP server for Odoo documentation sourced from the official GitHub repository.

Readme

Odoo Docs MCP Server

npm version License: CC BY-SA 4.0 Node.js MCP

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 resourcesodoo://versions and odoo://stats for 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, or master via configuration and tool arguments
  • Disk cache — index and fetched pages are cached under CACHE_DIR (TTLs configurable)
  • HTTP transport--http for 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_TOKEN or GH_TOKEN (not both required) if you hit GitHub rate limits; public read of odoo/documentation does not need special scopes.
  • ODOO_DOCS_VERSIONS: comma-separated; every version tool 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 --http

Listens 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


Development

npm install
npm run build
npm test
npm start              # stdio
npm run start:http     # HTTP

Limitations

  • 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

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.