Candlekeep
Integrates with Ollama and other OpenAI-compatible local models (via openai_compat) as a provider for language model text generation and vision-based image captioning (True Sight) in knowledge base document retrieval and processing.
Integrates with OpenAI's API as a provider for language model text generation and vision-based image captioning (True Sight) in knowledge base document retrieval and processing.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Candlekeepsearch for cross-encoder reranking"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
![]()
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
Bardic Knowledge — Documents are enriched with title and description at ingestion, woven into every embedding
Bardic Inspiration — Result-time metadata boosting that ensures specific technical guides outrank generic content
Arcane Recall — Intelligent expansion using Scholar's Discernment and Arcane Coalescence to return full sections without token waste
Wild Magic — Hybrid retrieval merging Vector and BM25 (lexical) search, fixing "keyword blindness" for exact identifiers
The Rosetta Seal — Corpus-derived BM25 token normalisation map that bridges surface-form variants (
crossencoder↔cross-encoder), rebuilt automatically in the background after each ingestDivine Insight — Cross-encoder reranking for when precision matters more than speed
The Relevance Ward — Results below a configured threshold are filtered, so the library says "I don't know" instead of guessing
True Sight — Images in PDFs and markdown are captioned at ingestion via VLM, making diagram details searchable
Related MCP server: RAG MCP Server
Features
Adaptive Search Routing: Three paths —
hybrid(BM25+Vector),precise(Reranked), andexplore(Divination — entity expansion)True Sight: Opt-in vision captioning for PDFs and markdown images — deployment topologies, benchmark charts, and architecture diagrams become searchable
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
14 MCP Tools: Search, ingest, critique, generate docs, agent memory, and more
LLM & True Sight Providers: Pluggable
anthropic,openai,bedrock, andopenai_compat(Ollama/LM Studio/vLLM) — text and True Sight independently configurableToken Auth: Bearer token authentication for remote ChromaDB
Quick Start
PyPI (Recommended)
The easiest way to get the library up and running for use with any MCP client:
pip install candlekeep
# Run in stdio mode (standard)
candlekeep
# Run in HTTP mode (recommended for better performance)
CANDLEKEEP_TRANSPORT=http CANDLEKEEP_HTTP_PORT=8111 candlekeepDocker (Isolated)
Run the server in a container. Note that if your ChromaDB is running on localhost, you'll need to use your host's internal IP (e.g., host.docker.internal on Docker Desktop):
docker run -p 8111:8111 \
-e CHROMA_URL=http://host.docker.internal:8000 \
ghcr.io/bansheeemperor/candlekeep:latestLocal Development
If you wish to contribute or modify the library's arcane secrets:
git clone https://github.com/raalgaw/candlekeep.git
cd candlekeep
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 # Enter the libraryMCP 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)
Setup Guide — Local and remote installation
Authentication — Token configuration
Architecture — System design and technical reference
Design Decisions & Benchmarks — Why things are the way they are, with measured results
Interactive Benchmark Chart — Visual comparison of paths
Glossary of Retrieval — IR metrics explained in wizard sage style
Research Diary — The full journey, every experiment, archived plans
The Keeper's Chronicle — The story of how the library was built
MCP Tools
search — Semantic search with adaptive routing (
simple22–36ms,precise~1550ms)list_documents — List all indexed tomes
get_stats — Library statistics
critique_document — Check document quality before ingestion
explore_entity — Explore an entity's co-occurring entities and source chunks via the graph
generate_documentation — Scan a project and create structured docs
memory_recall — Recall recorded memories semantically similar to a query
memory_list — List recorded memories, newest first
ingest — Add documents with automatic quality validation
delete_document — Remove a tome from the index
repopulate_database — Clear and rebuild the library
rebuild_normalisation_map — Regenerate The Rosetta Seal from the current corpus after a full repopulate + ingest cycle
memory_store — Record a short-form memory (lesson, failure pattern, debug tip) in the Chronicle
memory_delete — Delete a memory from the Chronicle by ID
The Chronicle is a separate store of agent-recorded memories, isolated from the document corpus and preserved across repopulate_database.
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 -s59 unit tests covering router, quality gate, chunk expansion, embedding protection, document processing, and LLM/True Sight 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.
This server cannot be installed
Maintenance
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
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/BansheeEmperor/candlekeep'
If you have feedback or need assistance with the MCP directory API, please join our Discord server