Skip to the content.

Prebuilt RAG/OpenAPI indexes

The core router catalog is quick to build locally. The full docs/API RAG index is larger, so public releases can include a prebuilt archive.

Download indexes

uv run python scripts/download_indexes.py

This downloads the latest centralmcp-rag-index-latest.tar.gz release asset and its .sha256 checksum, verifies the archive, and safely unpacks only regular files/directories under data/:

data/docs.lance
data/tools.lance
data/specs.sqlite
data/SOURCE-MANIFEST.json
data/INDEX-MANIFEST.json

Then check the local setup:

uv run python scripts/doctor.py

For custom archives, pass --url and optionally --checksum-url. Use --skip-checksum only for trusted local files that do not have a matching checksum.

Package indexes for a release

Build or refresh local indexes first:

uv run python ingestion/ingest_docs.py
uv run python scripts/ingest_tools.py --products all

Package them:

uv run python scripts/package_indexes.py

The script writes:

dist/centralmcp-rag-index-v<project-version>.tar.gz
dist/centralmcp-rag-index-v<project-version>.tar.gz.sha256
dist/centralmcp-rag-index-latest.tar.gz
dist/centralmcp-rag-index-latest.tar.gz.sha256

Upload both the versioned archive/checksum and the latest archive/checksum to the GitHub Release so the downloader can always use and verify the latest release URL. Use --skip-latest-copy only if you intentionally want to package versioned assets without the downloader alias.

For an existing release, upload the four generated assets with:

VERSION="v<project-version>"
gh release upload "$VERSION" \
  "dist/centralmcp-rag-index-${VERSION}.tar.gz" \
  "dist/centralmcp-rag-index-${VERSION}.tar.gz.sha256" \
  dist/centralmcp-rag-index-latest.tar.gz \
  dist/centralmcp-rag-index-latest.tar.gz.sha256 \
  --repo secure-ssid/centralmcp \
  --clobber

What is inside

Artifact Used by Purpose
data/docs.lance search_docs, ask_docs Embedded docs retrieval
data/specs.sqlite lookup_api Exact OpenAPI endpoint/schema lookup
data/tools.lance find_tool Semantic router tool discovery
data/SOURCE-MANIFEST.json humans / release audit Copy of the tracked RAG source manifest used for the rebuild
data/INDEX-MANIFEST.json humans / doctor output Build metadata, artifact sizes, and source-manifest checksum/source names

Refresh RAG source inputs

Scraped source files live under git-ignored ingestion/sources/; keep the tracked source list in ingestion/source_manifest.json current before rebuilding public indexes. The table below mirrors the tracked manifest so release rebuilds can cite the exact source seeds used for DevHub, New Central, techdocs, Feature Navigator, and OpenAPI lookup.

Source Seed / target Destination
DevHub https://devhub.arubanetworks.com ingestion/sources/devhub
New Central developer docs https://developer.arubanetworks.com/new-central/docs/getting-started-with-rest-apis and https://developer.arubanetworks.com/new-central/docs/introduction-to-configuration-apis ingestion/sources/developer_docs
Tech docs https://arubanetworking.hpe.com/techdocs/ ingestion/sources/tech_docs
NAC docs https://developer.arubanetworks.com/new-central-config/reference/mac-registration ingestion/sources/nac_docs
Validated Solution Guides https://arubanetworking.hpe.com/techdocs/VSG/docs/ ingestion/sources/vsg_docs
New Central techdocs https://arubanetworking.hpe.com/techdocs/new-central/content/home.htm plus ingestion/techdocs_paths.json ingestion/sources/techdocs_html
Switching Feature Navigator https://feature-navigator.arubanetworking.hpe.com/wired?mode=explore ingestion/sources/feature_navigator
OpenAPI specs https://developer.arubanetworks.com/new-central-config/reference/ plus CNAC extraction with ingestion/scrape_cnac_spec.py ingestion/sources/openapi_specs
AOS techdocs https://arubanetworking.hpe.com/techdocs/aos/ ingestion/sources/aos_techdocs

The New Central techdocs host can block plain HTTP clients, so use the paced Playwright scraper (ingestion/scrape_techdocs_pw.py) when refreshing that source. Do not commit scraped content; rebuild data/docs.lance and package the index archive instead.