A lightning-fast data access platform for AI Agents that leverages graph-enhanced retrieval (LightRAG) to make any data source instantly accessible.
Follow us: X/Twitter β’ LinkedIn
# Clone and install
git clone https://github.com/tryprotege/almanac.git
cd almanac
pnpm install
# Start everything (one command)
pnpm startOpen http://localhost:5173 to access the UI.
First-time setup:
- You'll see a setup wizard if configuration is missing
- Enter your LLM API key and settings via the UI
- Click "Save Configuration" and restart
Comprehensive guides and tutorials are available in the docs directory:
- Installation Guide - Local development and Docker setup
- Quick Start - Your first query in 5 minutes
- Configuration - LLM models, API keys, and settings
- AI Clients - Connect Claude Desktop, Cline, ChatGPT
- LightRAG Algorithm - Understanding the 5 query modes
- System Architecture - How Almanac works under the hood
- Custom MCP Servers - Build your own integrations
- Data Syncing - How data flows through Almanac
- API Reference - REST API endpoints and parameters
- Best Practices - Optimize your queries
- Query Examples - See all query modes in action
- π 10x Faster - Entity-based retrieval reduces tokens while improving accuracy
- π Zero Config - Automatically generates indexing for any MCP server
- π§ Smart Retrieval - 5 query modes (naive, local, global, hybrid, mix) adapt to your needs
- π Graph-Enhanced - Understands relationships between entities, not just keywords
- β‘ Production Ready - Parallel processing, multi-database architecture, built to scale
External APIs β MCP Servers β Almanac
β
[Syncing & Indexing]
β
βββββββββββββββββββββββ
β Databases β
β - MongoDB (docs) β
β - Qdrant (vectors) β
β - Memgraph (graph) β
β - Redis (cache) β
βββββββββββββββββββββββ
β
[LightRAG Query Engine]
β
Results
almanac/
βββ packages/
β βββ client/ # React + Vite frontend
β βββ server/ # Express.js backend
β βββ shared-util/ # Shared utilities
β βββ indexing-engine/ # LightRAG implementation
β βββ benchmark/ # Performance testing
βββ docs/ # Full documentation
βββ docker-compose.yml # Infrastructure services
| Service | Port | Purpose |
|---|---|---|
| Frontend | 5173 | Web UI |
| Backend | 3000 | REST API |
| MongoDB | 27017 | Document database |
| Qdrant | 6333, 6334 | Vector database |
| Memgraph | 7687, 7444 | Graph database |
| Redis | 6379 | Cache |
- Node.js >= 24.0.0
- pnpm >= 8.0.0
- Docker Desktop (or Docker Engine + Docker Compose v2.0+)
- 8GB RAM recommended (2GB minimum)
# Start all services
pnpm start # Infrastructure + apps locally
# Development
pnpm dev # Run client + server in dev mode
pnpm build # Build all packages
pnpm test # Run all tests
pnpm type-check # Type check all packages
# Docker options
pnpm run docker:infra # Start databases only
pnpm run docker:dev # Full Docker development mode
pnpm run docker:prod # Full Docker production mode
pnpm run docker:down # Stop all servicesπ View Full Docker Guide β
The scripts/syncAndBenchmark.sh script automates the complete workflow of wiping data, starting services, registering MCP servers, syncing records, indexing data, and running benchmarks.
Basic Usage:
./scripts/syncAndBenchmark.shOptions:
--mcp-servers=<server1,server2>- Specify which MCP servers to enable (comma-separated). Available servers:notion,github,fathom,slack. If not specified, all servers are enabled.--skip-benchmark- Skip running benchmark tests--skip-index-vector- Skip vector indexing--skip-index-graph- Skip graph indexing
Examples:
# Enable only GitHub and Notion servers
./scripts/syncAndBenchmark.sh --mcp-servers=github,notion
# Skip benchmark tests but run full indexing
./scripts/syncAndBenchmark.sh --skip-benchmark
# Enable only Slack, skip vector indexing
./scripts/syncAndBenchmark.sh --mcp-servers=slack --skip-index-vector
# Enable all servers, skip both indexing steps
./scripts/syncAndBenchmark.sh --skip-index-vector --skip-index-graph
# Full workflow with only GitHub and Fathom
./scripts/syncAndBenchmark.sh --mcp-servers=github,fathomWhat the script does:
- Wipes existing data from all databases
- Starts the development server
- Registers specified MCP servers (GitHub, Notion, Fathom, Slack)
- Syncs records from registered MCP servers
- Indexes vectors for semantic search (unless skipped)
- Indexes graph relationships (unless skipped)
- Runs benchmark tests (unless skipped)
- Cleans up running processes
Client Package:
cd packages/client
pnpm dev # Start Vite dev server
pnpm build # Build for production
pnpm preview # Preview production buildServer Package:
cd packages/server
pnpm dev # Start server with hot reload
pnpm build # Build TypeScript
pnpm start # Start production server
pnpm test # Run tests- Download Memgraph Lab for visual graph database management
- Connect using Bolt protocol:
bolt://localhost:7687
- Built-in web dashboard: http://localhost:6333/dashboard
- MongoDB Compass - official GUI client
- Connect:
mongodb://admin:admin123@localhost:27017
The easiest way to configure Almanac is through the web interface:
- Start the application with
pnpm start - Open http://localhost:5173
- If configuration is missing, you'll see a setup wizard
- Navigate to Settings β Environment to configure:
- LLM Provider & API Key
- Model selections (chat, embedding, indexing)
- Optional: Reranker settings
- Performance tuning (concurrency settings)
- Click "Save Configuration" and restart the server
Alternatively, you can manually edit the .env file:
cp packages/server/.env.example packages/server/.env
# Edit packages/server/.env with your settingsRequired Settings:
LLM_API_KEY- Your LLM provider API key
Optional Settings:
RERANKER_ENABLED- Enable reranking for better search resultsENCRYPTION_KEY- Auto-generated if not provided- Performance tuning (concurrency, batch sizes)
See packages/server/.env.example for all available options.
Almanac exposes an MCP (Model Context Protocol) server that allows AI clients to directly access your indexed data:
- Claude Desktop - Connect via MCP configuration
- Cline (VS Code) - Integrate with your development workflow
- ChatGPT - Use Developer Mode (requires public server)
View AI Client Setup Guide β
Once connected, your AI assistant can search across all your data sources using natural language queries.
This project is licensed under the terms specified in the LICENSE file.
- Documentation: docs.tryprotege.com
- GitHub: github.com/tryprotege/almanac
- LightRAG Paper: arxiv.org/abs/2410.05779
Built for developers, by developers. Open source and production-ready.