Beever Atlas logo

Beever Atlas

Organization
Beever-AI

Your First LLM-Wiki Conversation Knowledge Base

PublisherBeever-AI
Repositorybeever-atlas
LanguagePython
Forks
52
Stars
446
Available tools
0
Transport typestdio
Categories
LicenseApache-2.0
Links
  • Connect tools to AI workflows

    Beever Atlas exposes MCP capabilities that can be used by compatible AI clients and agents.

  • 0 available tools

    Browse the callable actions below, including names and descriptions when provided by the server.

  • Ready-to-copy setup

    Use the installation snippets to configure this server in your preferred MCP client.

  • Open source signals

    446 stars and 52 forks from the linked repository.


Beever Atlas pulls the conversations your team already has on Slack, Discord, Microsoft Teams, and Mattermost, extracts atomic facts, deduplicates them, and clusters them into topic pages with citations. A graph store links the people, decisions, and projects mentioned across channels. Ask questions in natural language and get answers cited back to the source messages — through the dashboard, or through MCP into Claude Code and Cursor.

If you want a knowledge base that grows on its own from the chats your team already has, this is it.


✨ Features in action

Six short clips — connect a workspace, sync history, watch memory build, browse the auto-generated wiki, ask questions, plug external AI agents in via MCP.


🏗️ Architecture

Conversations from any supported platform flow into a unified ingestion pipeline that produces two complementary memory systems — a 3-tier semantic store (channel / topic / atomic fact) for fast hybrid search, and a graph store that extracts entities and their relationships. Those memories fuel two consumer surfaces: the LLM Wiki (distilled, auto-maintained) and QA Agents (served through the dashboard directly, or through MCP into Claude Code / Cursor).

Under the hood, three services (backend, bot, frontend) are backed by four data stores (Weaviate, Neo4j, MongoDB, Redis). See the architecture overview on the documentation site for the full design — component responsibilities, dual-memory internals, and the smart query router.


💡 Why Wiki-First RAG?

Most RAG systems answer questions by retrieving raw message snippets and feeding them straight to an LLM. Beever Atlas takes a different approach: it continuously distils conversations into a structured, auto-maintained wiki — with topic pages, entity graphs, decisions, and citations — before any query is issued. When you ask a question, the retrieval layer works against clean, deduplicated knowledge rather than noisy chat history. This means answers are more consistent, citations are traceable to source messages, and the wiki itself becomes a useful artifact your team can browse independently of the Q&A interface. The dual-memory architecture (semantic + graph) lets the query router pick the right retrieval strategy per question, keeping latency low and context precise.

The inspiration: LLMs read wikis, not chat logs

The per-channel wiki concept is directly inspired by Andrej Karpathy's observation that LLMs are far better at reasoning over curated, encyclopedic content (books, docs, wikis) than over raw conversational transcripts. Chat history is noisy, redundant, temporally scattered, and full of implicit context that only humans resolve. A wiki, by contrast, is the already-distilled form of that knowledge — deduplicated, structured, citation-bearing, and organised by topic rather than by timestamp.

Beever Atlas operationalises this insight: every synced channel gets its own auto-generated, continuously-updated wiki — sections for topics, entities, decisions, open questions, and timelines — rebuilt incrementally as new messages arrive. The QA agent retrieves against this wiki first, falling back to raw messages only when a fact hasn't been distilled yet.

What this unlocks in practice

  • Better answers, fewer hallucinations — retrieval operates on fact-dense prose with explicit entity relationships, not on fragmented turn-by-turn chat.
  • Traceable citations — every wiki claim links back to the source messages that produced it, so answers are auditable all the way down to the original Slack/Discord/Teams thread.
  • A browsable artifact, not just a Q&A box — the wiki is useful on its own. New teammates onboarding to a channel can read the distilled wiki instead of scrolling three months of history.
  • Cheaper inference at query time — the expensive distillation work happens once, at ingestion. Queries hit compact, pre-digested context instead of re-summarising raw logs on every request.
  • Graph-aware reasoning — the entity graph built alongside the wiki lets the query router answer relational questions ("who worked on X with Y?") that pure vector RAG struggles with.

For a detailed comparison with other LLM knowledge tools, see the comparison page on the documentation site.


🚀 Quick Start

Beever Atlas ships as a Docker Compose stack (backend + bot + web + 4 datastores). You can try a seeded demo in 30 seconds with zero keys, then pick one of three deployment options to install it for real.

1. Get the code

bash
git clone https://github.com/beever-ai/beever-atlas.git
cd beever-atlas

2. Try the demo first (optional, no keys needed for seeding)

bash
make demo

make demo brings up the full stack pre-loaded with a public Wikipedia corpus (Ada Lovelace + Python history). Seeding uses pre-computed fixtures — no API keys required. Asking questions via /api/ask needs a free-tier GOOGLE_API_KEY because the QA agent calls Gemini. See demo/README.md for curl examples.

Skip this step if you're ready to install for real.

3. Before you start: get your API keys

Two free keys are required before installing. Both offer generous free tiers — enough to sync a small team's channels for testing.

KeyPurposeWhere to get it
GOOGLE_API_KEYGemini — extraction, entity graph, answersaistudio.google.com/apikey
JINA_API_KEYJina v4 embeddings (2048-dim) for semantic searchjina.ai/api-dashboard

Optional (skip unless you know you need them):

KeyWhat it enables
TAVILY_API_KEYExternal web search when QA retrieval confidence is low — tavily.com
OLOSTEP_API_KEYOlostep web search (alternative to Tavily). Set WEB_SEARCH_PROVIDER=olostep in your .env — olostep.com/dashboard
Slack / Discord / Teams bot tokensConfigured via the web UI after setup, not .env — the bot stores platform credentials encrypted in MongoDB

Tip: Keep the two required keys handy before you start. Option 1 prompts for them interactively; Options 2 and 3 need them pasted into .env.

4. Choose a deployment option

OptionWhen to useTime to "up"
1. One-line install (recommended)You want the fastest path to a running stack.~2 min first run
2. Manual DockerCI/CD, ops environments, or when you want explicit control over every step.~3 min first run
3. Local developmentActive contributors who need hot-reload on backend and frontend.varies

Option 1 — One-line install (recommended)

bash
./atlas

The atlas installer walks you through a guided 5-step checklist:

  1. Embedding model — pick a provider (Jina / OpenAI / Cohere / Voyage / Gemini / Mistral / Ollama), then its API key.
  2. Agent LLM provider — pick a provider for the 16 ADK agents (Google Gemini / OpenAI / Anthropic / Mistral / DeepSeek / Groq / MiniMax / Ollama / Custom); optional second provider for hybrid setups.
  3. Graph backend — Neo4j (default) or skip.
  4. Optional integrations — Tavily web search, MCP server for Claude Code / Cursor.
  5. Auth tokens — keep dev defaults or rotate now.

Under the hood it verifies docker + docker compose, copies .env.example → .env (preserves your values on re-run, chmod 600), auto-generates CREDENTIAL_MASTER_KEY (64 hex) and WEAVIATE_API_KEY (32 hex), runs a port-conflict preflight, launches the stack via docker compose up -d --build --force-recreate --remove-orphans, and polls /api/health before printing the ready card.

When you see "Beever Atlas is ready", open http://localhost:3000 — then Settings → AI Setup to manage providers, assign LLMs per-agent, run Test Connection, or discover models. For CI / Docker / GitOps, configure declaratively: BEEVER_LLM_API_KEY=... (single-provider shortcut), BEEVER_ENDPOINTS='[...]' + BEEVER_PRESET=..., or commit an atlas.yaml and run atlas apply — see docs/runbooks/ai-setup.md and docs/runbooks/atlas-yaml.md.

For CI or unattended installs — skip prompts, pre-seed keys from shell env:

bash
GOOGLE_API_KEY=... JINA_API_KEY=... ./atlas --non-interactive

Re-running ./atlas on an existing stack is idempotent.

Option 2 — Manual Docker

Full control, step-by-step.

bash
cp .env.example .env

Open .env and fill in the two required keys:

env
GOOGLE_API_KEY=your_gemini_key
JINA_API_KEY=your_jina_key

Generate two required secrets and paste them into .env:

bash
# CREDENTIAL_MASTER_KEY — AES-256-GCM key for stored platform credentials (64 hex chars)
python -c "import secrets; print(secrets.token_hex(32))"

# WEAVIATE_API_KEY — auth between backend and Weaviate (required by docker-compose)
python -c "import secrets; print(secrets.token_hex(16))"

Launch:

bash
docker compose up -d --build

Open http://localhost:3000.

Services started:

ServicePortDescription
Web (nginx):3000React dashboard
Backend:8000FastAPI + ADK agents
Bot:3001Platform bridge (Slack / Discord / Teams)
Weaviate:8080Semantic memory
Neo4j:7474 / :7687Graph memory
MongoDB:27017State + wiki cache
Redis:6380Sessions (internal :6379)

First run takes 2–3 minutes while images build and databases initialize. Subsequent runs start in seconds.

Option 3 — Local development

Databases in Docker, app services native for hot-reload.

Prerequisites: Python 3.12+ with uv, Node.js 20+

bash
cp .env.example .env
# Fill in GOOGLE_API_KEY, JINA_API_KEY, CREDENTIAL_MASTER_KEY, WEAVIATE_API_KEY (same as Option 2)

# Start just the databases
docker compose up -d weaviate neo4j mongodb redis

# Backend (terminal 1)
uv sync
uv run uvicorn beever_atlas.server.app:app --reload --port 8000

# Bot (terminal 2)
cd bot && npm install && npm run dev

# Web (terminal 3) — Vite dev server with HMR
cd web && npm install && npm run dev

Open http://localhost:5173 (the Vite dev port — not :3000).

The Vite dev server proxies /api/* to http://localhost:8000 (configured via VITE_API_URL).

Before going to production

.env.example defaults are tuned for local testing. Before any real deploy, rotate the secrets that ship with placeholder values and flip the environment flag:

What to changeWhyHow
BEEVER_API_KEYS, BEEVER_ADMIN_TOKENShip as dev-key-change-me / dev-admin-change-me — public placeholderspython -c "import secrets; print(secrets.token_hex(24))" per token
BRIDGE_API_KEYShared secret between backend and bot; blank by default, required outside local devSame secrets.token_hex(24)
VITE_BEEVER_API_KEY, VITE_BEEVER_ADMIN_TOKENVite bakes these into the web bundle at build time — must mirror the rotated backend values aboveCopy the rotated BEEVER_API_KEYS / BEEVER_ADMIN_TOKEN values
NEO4J_PASSWORD + password half of NEO4J_AUTHDev password is public in this repoPick a strong password; both values must match
BEEVER_ENV=productionEnables fail-fast startup that rejects every dev default aboveFlip the value in .env

Option 1 (./atlas) handles all of this through the "Rotate auth tokens" prompt in step 4 of the checklist — answer Y and the installer generates random tokens and mirrors the VITE_* values for you. If you used Option 2 or 3, you can re-run ./atlas on the existing .env, skip every other prompt with Enter, and only accept the rotation prompt.

5. Open the dashboard

Navigate to the URL for your chosen option:

From there:

  • Real mode (default, ADAPTER_MOCK=false): connect a workspace in Settings → Connections — Slack / Discord / Teams tokens are entered through the UI, not .env.
  • Mock mode (ADAPTER_MOCK=true): uses fixture data — opt in for local UI iteration without platform credentials.

6. Sync a channel

From the dashboard: Connections → Add Workspace → Select channels → Sync.

Or via API (auto-extracts your bearer token from .env):

bash
curl -X POST http://localhost:8000/api/channels/C12345/sync \
  -H "Authorization: Bearer $(grep -E '^BEEVER_API_KEYS=' .env | cut -d= -f2 | cut -d, -f1)"

Media shared in synced channels (images, PDFs, video) is persisted durably so it keeps rendering after the platform CDN link expires. It defaults to in-database storage with zero extra infra, and can use MinIO/S3 at scale. See docs/media-persistence.md for the mechanism, CHANNEL_MEDIA_* configuration, the MinIO/S3 backend, and backfilling existing channels.

MCP server (for external AI agents)

Beever Atlas exposes a curated MCP (Model Context Protocol) server at /mcp for AI agents like Claude Code and Cursor. This allows external code assistants to query your team's knowledge base without using the dashboard.

See docs/mcp-server.md for:

  • Tool catalog — 28 tools for discovery, retrieval, wiki reading, graph traversal, and long-running operations
  • Auth setup — generating and managing BEEVER_MCP_API_KEYS
  • Client configuration — ready-to-use .mcp.json templates for Claude Code and Cursor
  • Rate limits — principal-keyed limits to prevent one agent from throttling others

It also ships a standalone stdio mode (python -m beever_atlas.api.mcp_server / beever-atlas-mcp) that exposes the same tool catalog with no HTTP server or backing stores — handy for MCP registries (Glama.ai) and local introspection. See docs/mcp-server.md.

Quick example (Claude Code):

json
{
  "mcpServers": {
    "beever-atlas": {
      "url": "https://atlas.example.com/mcp",
      "transport": "streamable-http",
      "headers": {
        "Authorization": "Bearer ${BEEVER_MCP_KEY}"
      }
    }
  }
}

Common commands

bash
docker compose up -d                     # Start in background
docker compose logs -f beever-atlas      # Tail backend logs
docker compose down                      # Stop (keeps data)
docker compose down -v                   # Stop and DELETE all indexed data
make demo                                # Full stack + seeded demo corpus
make docker-up                           # Shortcut for `docker compose up -d`

🔒 Privacy & Telemetry

Beever Atlas collects no telemetry. No usage data, error reports, or analytics are sent anywhere by default. All LLM calls go through API keys you configure in your own .env, and all data stays in the databases you control.


📐 API Stability

All /api/* endpoints are UNSTABLE in 0.1.0. v0.2.0 will introduce a /api/v1/* prefix; clients pinning current paths will break. See SECURITY.md.


💬 Community & Contact

Commercial support, partnerships, or press: tech@beever.ai.


📜 License

Apache License 2.0 © 2026 Beever Atlas contributors. Third-party attributions in NOTICE.

Security policy: SECURITY.md | Community standards: CODE_OF_CONDUCT.md

Use Beever Atlas MCP with multiple AI models

TypingMind connects MCP tools at the workspace level, so once Beever Atlas is connected, you can use it with different AI models in TypingMind instead of setting it up separately for each model. This MCP runs locally through the TypingMind MCP connector on your device.

Setup guide to use the local connector

Use this when the MCP server needs access to local files, apps, or private resources on your computer.

1

Open the MCP settings

In TypingMind, go to Settings, Advanced Settings, then Model Context Protocol and choose Setup Connector.

  1. Open TypingMind in your browser.
  2. Click the Settings icon.
  3. Go to Advanced Settings.
  4. Open the Model Context Protocol section.
  5. Click Setup Connector and choose This Device.
TypingMind MCP connector setup screen with This Device selected
2

Run the connector command

Choose This Device, copy the command from TypingMind, and run it in Terminal. Keep the process running while you use MCP.

  1. Copy the setup command shown by TypingMind.
  2. Open Terminal on macOS or Windows Terminal on Windows.
  3. Paste and run the command.
  4. Approve the package install if Terminal asks you to proceed.
  5. Keep the Terminal window running while using MCP tools.
3

Add Beever Atlas as a server

When the connector status is Ready, click Edit Servers and paste the MCP server configuration.

  1. Wait until the connector status shows Ready.
  2. Click Edit Servers.
  3. Paste the Beever Atlas MCP server configuration.
  4. Save the server list.
  5. Refresh if you want to confirm the connector is still ready.
TypingMind MCP settings showing active server and Edit Servers button
{
  "mcpServers": {
    "beever-atlas": {
      "command": "npx",
      "args": [
        "-y",
        "<mcp-server-package>"
      ]
    }
  }
}
4

Use it across models

Save the server list, open Plugins, enable the Beever Atlas MCP tools, then select any supported AI model in TypingMind and use the tools in chat or assign them to an AI agent.

  1. Open the Plugins page in TypingMind.
  2. Enable the Beever Atlas MCP tools.
  3. Start a chat and choose the AI model you want to use.
  4. Use the MCP tools in chat or assign them to an AI agent.
  5. Switch to another AI model whenever needed without reconnecting MCP.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use Beever Atlas to help me with this task?
Beever Atlas
Sure. I read it.
Here is what I found using Beever Atlas.

Frequently asked questions

What is the Beever Atlas MCP server used for?

Beever Atlas is an MCP server that lets compatible AI clients connect to external tools and context. In TypingMind, you can add this MCP server once and make its tools available in your AI workspace.

Can I use Beever Atlas MCP with multiple AI models in TypingMind?

Yes. TypingMind connects MCP tools at the workspace level, so you can use Beever Atlas with different AI models such as Claude, ChatGPT, Gemini, or other models you have configured in TypingMind without setting up the MCP server separately for each model.

Why use Beever Atlas MCP with TypingMind?

TypingMind is one of the best frontends for LLM chat because it brings multiple AI models, prompts, plugins, AI agents, API keys, and MCP tools into one workspace. With Beever Atlas connected, you can use its MCP tools across your preferred models while keeping your chat workflow organized in TypingMind.

How do I connect Beever Atlas MCP to TypingMind?

Beever Atlas runs through the TypingMind local MCP connector. This is best when the MCP server needs access to local files, desktop apps, command-line tools, or private resources on your computer.

What tools does Beever Atlas MCP provide in TypingMind?

Beever Atlas exposes MCP capabilities that can be enabled from the TypingMind Plugins page and used in chat or assigned to AI agents.

Do I need to share my API keys with TypingMind to use Beever Atlas MCP?

No. TypingMind is local-first and lets you keep your model providers, API keys, prompts, and MCP configuration under your control. If Beever Atlas requires authentication, add the required headers, OAuth settings, or local configuration for that MCP server when you create the connection.

Related MCP Servers

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇