Skip to main content
Glama

Python 3.13+ MCP 1.0 ChromaDB License: MIT

oarx-docs-mcp

MCP server for semantic search across the complete ObjectARX 2026 documentation set. 89,715 text chunks from 22 guides indexed in ChromaDB with hybrid BM25 + dense retrieval.

Overview

oarx-docs-mcp indexes 89,715 text chunks from 22 documentation guides into a local ChromaDB vector database and exposes them through the Model Context Protocol (MCP) for use with Claude Code, Claude Desktop, or any MCP-compatible client.

Related MCP server: ragi

Highlights

  • 3 MCP toolssearch_docs, lookup_class, list_guides

  • 89,715 indexed chunks from 22 documentation guides (ObjectARX SDK + Autodesk CloudHelp)

  • Hybrid retrieval — BM25 sparse + dense vectors + Reciprocal Rank Fusion

  • Cross-encoder reranking with BAAI/bge-reranker-v2-m3

  • Query optimization — AutoLISP detection, C++ API expansion, guide-specific boosting

  • Container-ready — Containerfile + compose.yaml (Podman/Docker)

  • Claude Code plugin — 4 skills + 2 slash commands for ObjectARX development

Data Sources

Source

Guides

Pages

Description

ObjectARX SDK (CHM)

8

~45,800

C++ Reference, .NET Reference, Developer Guides, Migration, Interop

Autodesk CloudHelp (web)

14

~5,000

AutoLISP, ActiveX/VBA, JavaScript, DXF, Customization

MCP Tools

Tool

Description

list_guides

List all 22 available documentation guides

search_docs

Semantic search with optional guide filter and result limit

lookup_class

Look up a class or function by name (title match with semantic fallback)

Quick Start

# Clone and install
cd mcp/oarx-docs-mcp
uv sync

# Download web documentation (~5,000 pages)
OARX_DATA_DIR=./data uv run python -m oarx_docs_mcp.scraper

# Index CHM files from ObjectARX SDK (optional, requires 7-Zip)
OARX_DATA_DIR=./data OARX_CHM_DIR=/path/to/sdk/docs uv run python -m oarx_docs_mcp.indexer

# Or index web docs only (no SDK needed)
OARX_DATA_DIR=./data uv run python -m oarx_docs_mcp.indexer

Client Configuration

Add to ~/.claude.json (or project-level .claude.json):

{
  "mcpServers": {
    "oarx-docs": {
      "command": "uv",
      "args": [
        "run",
        "--directory", "/path/to/oarx-docs-mcp",
        "python", "-m", "oarx_docs_mcp"
      ],
      "env": {
        "OARX_DATA_DIR": "/path/to/oarx-docs-mcp/data"
      }
    }
  }
}
{
  "mcpServers": {
    "oarx-docs": {
      "command": "uv",
      "args": [
        "run",
        "--directory", "C:/Users/user/oarx-docs-mcp",
        "python", "-m", "oarx_docs_mcp"
      ],
      "env": {
        "OARX_DATA_DIR": "C:/Users/user/oarx-docs-mcp/data"
      }
    }
  }
}

Add to Claude Desktop's MCP configuration file:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "oarx-docs": {
      "command": "uv",
      "args": [
        "run",
        "--directory", "/path/to/oarx-docs-mcp",
        "python", "-m", "oarx_docs_mcp"
      ],
      "env": {
        "OARX_DATA_DIR": "/path/to/oarx-docs-mcp/data"
      }
    }
  }
}

Restart Claude Desktop to pick up the new configuration.

Add to ~/.codex/config.toml (global) or .codex/config.toml (project):

[mcp_servers.oarx-docs]
command = "uv"
args = ["run", "--directory", "/path/to/oarx-docs-mcp", "python", "-m", "oarx_docs_mcp"]

[mcp_servers.oarx-docs.env]
OARX_DATA_DIR = "/path/to/oarx-docs-mcp/data"

Or via CLI:

codex mcp add oarx-docs --env OARX_DATA_DIR=/path/to/data -- uv run --directory /path/to/oarx-docs-mcp python -m oarx_docs_mcp

Container Setup

# Build image
podman-compose build

# Download web docs
podman-compose --profile scraper run --rm scraper

# Index (requires OARX_CHM_DIR env var for CHM files)
OARX_CHM_DIR=/path/to/sdk/docs podman-compose --profile indexer run --rm indexer

# Run server
podman-compose up server

Configuration

All settings are configurable via environment variables:

Variable

Default

Description

OARX_CHM_DIR

/docs

Directory containing .chm files from ObjectARX SDK

OARX_DATA_DIR

/app/data

Data directory for ChromaDB and extracted HTML

OARX_EMBEDDING_MODEL

BAAI/bge-m3

Sentence-transformers model name

OARX_CHUNK_SIZE

800

Text chunk size in characters

OARX_CHUNK_OVERLAP

200

Overlap between adjacent chunks

OARX_7Z_PATH

auto-detect

Path to 7z executable

OARX_DB_SOURCE

github

Database source: github, huggingface, or local

OARX_DB_VERSION

0.1.0

Database version to download

OARX_GITHUB_REPO

dantte-lp/oarx-docs-mcp

GitHub repository for release assets

Development

# Install with dev dependencies
uv sync --all-extras

# Run tests
uv run python -m pytest tests/ -v

# Lint
uv run ruff check src/ tests/

# Type check
uv run mypy

Tech Stack

Project Structure

oarx-docs-mcp/
├── src/oarx_docs_mcp/
│   ├── __main__.py          # Entry point
│   ├── config.py            # Settings + guide registries
│   ├── data_manager.py      # Database auto-download
│   ├── indexer.py           # CHM/HTML → ChromaDB
│   ├── retriever.py         # BM25 + dense + RRF + reranking
│   ├── scraper.py           # CloudHelp downloader
│   └── server.py            # MCP tools (3 tools)
├── tests/                   # pytest + pytest-asyncio
├── plugin/                  # Claude Code plugin
├── docs/
│   ├── en/                  # English documentation
│   └── ru/                  # Russian documentation
├── Containerfile            # OCI container image
└── compose.yaml             # Podman/Docker services

Documentation

Contributing

See CONTRIBUTING.md (RU).

License

MIT

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dantte-lp/oarx-docs-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server