Skip to main content

RAG knowledge base server with ChromaDB and MCP interface

Project description

Candlekeep

Candlekeep

The great library fortress on the Sword Coast, where all knowledge is preserved.

A RAG knowledge base server that gives AI agents the power to search, retrieve, and manage technical documentation through the Model Context Protocol. Ask a question, and the library answers — with the right scroll, expanded to full context, in milliseconds.

The Arcane Arts

Features

  • Adaptive Search Routing: Three paths — simple (Vector), hybrid (BM25+Vector), and precise (Reranked)
  • Statistical Rigor: Validated against The Centurion Set (100+ multi-category queries)
  • Quality Gate: Documents must have frontmatter and structure to enter the library
  • Embedding Protection: Auto-detects model mismatch on remote databases
  • 8 MCP Tools: Search, ingest, critique, generate docs, and more
  • LLM & Vision Providers: Pluggable anthropic, openai, bedrock, and openai_compat (Ollama/LM Studio/vLLM) — text and vision independently configurable
  • Token Auth: Bearer token authentication for remote ChromaDB

Quick Start

# Enter the library
pip install -e .
./scripts/setup.sh       # Download the tomes (embedding models)
./scripts/configure.sh   # Set your wards (configuration)
./scripts/start_chroma.sh # Awaken the vault (ChromaDB)
candlekeep               # Open the gates

MCP Client Integration

HTTP mode (recommended) — one server, multiple agents. Models loaded once, shared memory, no cold-start per agent (~230ms first query vs ~6s in stdio mode):

# Start the server once
CANDLEKEEP_TRANSPORT=http CANDLEKEEP_HTTP_PORT=8111 candlekeep
{
  "mcpServers": {
    "candlekeep": {
      "url": "http://localhost:8111/mcp"
    }
  }
}

stdio mode — each agent spawns its own server process. Simpler setup, but each agent pays ~6s cold-start and loads its own copy of the models:

{
  "mcpServers": {
    "candlekeep": {
      "command": "/path/to/.venv/bin/candlekeep",
      "args": [],
      "env": {
        "CANDLEKEEP_SPICE": "true"
      }
    }
  }
}

See Setup Guide for auth configuration and production deployment.

The Tomes (Documentation)

MCP Tools

  • search — Semantic search with adaptive routing (simple 22–36ms, precise ~1550ms)
  • list_documents — List all indexed tomes
  • get_stats — Library statistics
  • critique_document — Check document quality before ingestion
  • generate_documentation — Scan a project and create structured docs
  • ingest — Add documents with automatic quality validation
  • delete_document — Remove a tome from the index
  • repopulate_database — Clear and rebuild the library

Access to write tools is managed by your database permissions (configured via CHROMA_AUTH_TOKEN).

Testing

# Unit tests — no database required (~1.4s)
pytest tests/test_router.py tests/test_quality_gate.py tests/test_arcane_recall_unit.py \
       tests/test_protection.py tests/test_processor.py tests/test_search.py \
       tests/test_providers.py

# Benchmarks — requires local ChromaDB on localhost:8000
./scripts/start_chroma.sh
pytest tests/test_router_benchmark.py -v -s

59 unit tests covering router, quality gate, chunk expansion, embedding protection, document processing, and LLM/vision providers. Benchmark tests include regression assertions that fail if precision or content match drops below 80%.

Requirements

  • Python 3.10+
  • ChromaDB server (local or remote)

Candlekeep is a trademark of Wizards of the Coast. This project is unofficial fan content and is not endorsed by or affiliated with Wizards of the Coast.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

candlekeep-0.1.1.tar.gz (16.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

candlekeep-0.1.1-py3-none-any.whl (64.2 kB view details)

Uploaded Python 3

File details

Details for the file candlekeep-0.1.1.tar.gz.

File metadata

  • Download URL: candlekeep-0.1.1.tar.gz
  • Upload date:
  • Size: 16.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for candlekeep-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e63baca1437c90066517173de3fc7baab2b3ea4fe207e345af4a4c6c5dcd83c8
MD5 1203e23796155b7c01449a83e1a02617
BLAKE2b-256 289d96764e57ec61ea2a48eaf35f2477963f6bd423dd61361bea19a413a51e15

See more details on using hashes here.

Provenance

The following attestation bundles were made for candlekeep-0.1.1.tar.gz:

Publisher: release.yml on BansheeEmperor/candlekeep

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file candlekeep-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: candlekeep-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 64.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for candlekeep-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ea2ef1836773debe2287246f87e6ae184dec1c56f3776c568d39b7617f4f6859
MD5 adf8ccc7017061eb63d9a43fdacef97b
BLAKE2b-256 3069063a39079842f84fa4b55ec71832f4f61354753075fa6516a4ab6fd13e36

See more details on using hashes here.

Provenance

The following attestation bundles were made for candlekeep-0.1.1-py3-none-any.whl:

Publisher: release.yml on BansheeEmperor/candlekeep

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page