Back to MCP Servers

Alcove

MCP server that gives AI coding agents on-demand access to private project docs via BM25 ranked search. One setup for Claude Code, Cursor, Codex, Gemini CLI, and more. Docs stay private, never in public repos.

knowledge-memoryaiagent
By epicsagas
133Updated 3 days agoRustApache-2.0

Installation

npx -y alcove

Configuration

{
  "mcpServers": {
    "alcove": {
      "command": "npx",
      "args": ["-y", "alcove"]
    }
  }
}

How to use

  1. Run the installation command above (if needed)
  2. Open your Claude Code settings file (~/.claude/settings.json)
  3. Add the configuration to the mcpServers section
  4. Restart Claude Code to apply changes
<p align="center"> <img src="alcove.png" alt="Alcove" width="100%" /> </p> <p align="center"><strong>Your AI agent doesn't know your project. Alcove fixes that.</strong></p> <p align="center"><a href="#quick-start">→ Quick start</a></p> <p align="center"> <a href="README.md">English</a> · <a href="docs/README.ko.md">한국어</a> · <a href="docs/README.ja.md">日本語</a> · <a href="docs/README.zh-CN.md">简体中文</a> · <a href="docs/README.es.md">Español</a> · <a href="docs/README.hi.md">हिन्दी</a> · <a href="docs/README.pt-BR.md">Português</a> · <a href="docs/README.de.md">Deutsch</a> · <a href="docs/README.fr.md">Français</a> · <a href="docs/README.ru.md">Русский</a> </p> <p align="center"> <a href="https://github.com/epicsagas/alcove/stargazers"><img alt="Stars" src="https://img.shields.io/github/stars/epicsagas/alcove?style=for-the-badge&labelColor=0d1117&color=ffd700&logo=github&logoColor=white" /></a> <a href="https://github.com/epicsagas/alcove/network/members"><img alt="Forks" src="https://img.shields.io/github/forks/epicsagas/alcove?style=for-the-badge&labelColor=0d1117&color=2ecc71&logo=github&logoColor=white" /></a> <a href="https://github.com/epicsagas/alcove/issues"><img alt="Issues" src="https://img.shields.io/github/issues/epicsagas/alcove?style=for-the-badge&labelColor=0d1117&color=ff6b6b&logo=github&logoColor=white" /></a> <a href="https://github.com/epicsagas/alcove/commits/main"><img alt="Last commit" src="https://img.shields.io/github/last-commit/epicsagas/alcove?style=for-the-badge&labelColor=0d1117&color=58a6ff&logo=git&logoColor=white" /></a> </p> <p align="center"> <a href="https://glama.ai/mcp/servers/epicsagas/alcove"><img src="https://glama.ai/mcp/servers/epicsagas/alcove/badges/score.svg" height="20" alt="Glama MCP Score" /></a> <a href="https://crates.io/crates/alcove"><img alt="Crates.io" src="https://img.shields.io/crates/v/alcove?style=for-the-badge&labelColor=0d1117&color=fc8d62&logo=rust&logoColor=white" /></a> <a href="https://crates.io/crates/alcove"><img alt="Downloads" src="https://img.shields.io/crates/d/alcove?style=for-the-badge&labelColor=0d1117&color=3498db&logo=rust&logoColor=white" /></a> <a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/license-Apache--2.0-3fb950?style=for-the-badge&labelColor=0d1117" /></a> <a href="https://buymeacoffee.com/epicsaga"><img alt="Buy Me a Coffee" src="https://img.shields.io/badge/buy_me_a_coffee-FFDD00?style=for-the-badge&labelColor=0d1117&logo=buymeacoffee&logoColor=black" /></a> </p>

Alcove is an HTTP API server that gives AI coding agents on-demand access to your private project docs — BM25 + vector hybrid search for precision retrieval, tree-sitter code indexing so agents understand your codebase structure, and policy enforcement for doc consistency. No context bloat, no leaking docs into public repos, no per-project config for every agent.

Demo

Alcove agent demo

Claude, Codex — search · switch projects · global search · validate & generate. One setup.

<details> <summary>CLI demo</summary>

Alcove CLI demo

alcove search · project switch · --scope global · alcove validate

</details>

The problem

Your AI agent starts every session from zero.

It doesn't know your architecture. It ignores constraints from decisions you already made. It asks you to explain the same things every session.

The context window is the bottleneck. Every token costs money and attention. Loading 10 architecture docs into context wastes 50K+ tokens on every run — and Anthropic's own docs warn that bloated config files make agents ignore your actual instructions.

So you have three bad options:

Stuff everything into agent config — every file loads into context on every run. 10 docs = context bloat = slower, more expensive, less accurate responses.

Copy-paste into every chat — works once, doesn't scale past one session.

Don't bother — your agent invents requirements you already documented, ignores constraints from decisions you already made, and you re-explain the same architecture every Monday morning.

Now multiply it across 5 projects and 3 agents. Every time you switch, you lose context.

How Alcove solves this

Alcove doesn't inject your docs. Agents search for what they need, when they need it.

~/projects/my-app $ claude "/alcove how is auth implemented?"

  → Alcove detects project: my-app
  → BM25 search: "auth" → ARCHITECTURE.md (score: 0.94), DECISIONS.md (score: 0.71)
  → Agent gets the 2 most relevant docs, not all 12
~/projects/my-api $ codex "/alcove review the API design"

  → Alcove detects project: my-api
  → Same doc structure, same access pattern
  → Different project, zero reconfiguration

Switch agents anytime. Switch projects anytime. The document layer stays standardized.

Why Alcove

Alcove gives your agents a memory that survives between sessions.

Agents don't load your docs into context. They search for what they need, when they need it. Architecture docs, design decisions, runbooks, constraints — all in one place, searchable, never in your public repo.

Agent config is for agent behavior. Alcove is for project knowledge.

Agent config files                ← agent rules, coding conventions, recurring corrections
~/.alcove/docs/my-app/
  ARCHITECTURE.md                ← tech stack, data model, system design
  DECISIONS.md                   ← why X was chosen over Y
  DEBT.md                        ← known issues, workarounds
  ...                            ← agent searches here when it needs context
Without a doc layerWith Alcove
Docs in agent config bloat context on every runHybrid search (BM25 + RAG) — agents pull only what they need, ranked by relevance
Agent only sees text docs, not code structureTree-sitter code indexing — agents understand modules, functions, and types across 12 languages
Internal docs scattered across Notion, Google Docs, local filesOne doc-repo, structured by project
Each AI agent configured separately for doc accessOne setup, all agents share the same access
Switching projects means re-explaining contextCWD auto-detection, instant project switch
Agent search returns random matching linesRanked results — best matches first, one result per file
"Search all my notes about OAuth" — impossibleGlobal search across every project in one query
Sensitive docs sitting in project reposPrivate docs on your machine, never in public repos
Doc structure differs per project and team memberpolicy.toml enforces standards across all projects
No way to check if docs are completevalidate catches missing files, empty templates, missing sections
Stale docs with broken links or WIP markers go unnoticedlint detects broken links, orphans, and stale markers automatically
Notes from Obsidian or other tools stay siloedpromote brings any note into your doc-repo with one command

Quick start

Required: Run alcove setup once after installation to configure your docs root and enable full functionality. Plugins start the API server automatically, but Alcove cannot search or index documents until setup has been run.

Using Obsidian? See the Ecosystem section for the docs structure and vault configuration.

Claude Code

/plugin marketplace add epicsagas/plugins
/plugin install alcove@epicsagas

Auto-installs the binary and starts the API server on next session start.

alcove setup   # run once after plugin install

Updates with claude plugin update alcove@epicsagas.

Codex CLI

codex plugin marketplace add epicsagas/plugins

Auto-installs the skill and starts the API server. Available immediately — no further steps needed.

Updates with codex plugin update alcove@epicsagas.

macOS (Apple Silicon only)

brew install epicsagas/tap/alcove

No Homebrew? Use the installer script:

curl --proto '=https' --tlsv1.2 -LsSf \
  https://github.com/epicsagas/alcove/releases/latest/download/install.sh | sh

Linux (x86_64 / ARM64)

curl --proto '=https' --tlsv1.2 -LsSf \
  https://github.com/epicsagas/alcove/releases/latest/download/install.sh | sh

Windows (x86_64 / ARM64)

irm https://github.com/epicsagas/alcove/releases/latest/download/install.ps1 | iex

Antigravity (Gemini CLI)

agy plugins install https://github.com/epicsagas/alcove

Auto-installs the plugin (API server, skill, hooks) and starts it on next session start.

alcove setup   # run once after plugin install

Via Rust toolchain

cargo binstall alcove   # pre-built binary, includes hybrid search
cargo install alcove --features full-macos   # build from source (macOS)
cargo install alcove --features full-cross   # build from source (Linux/Windows)

Note: cargo binstall downloads a pre-built binary with hybrid search (vector + BM25) included. When building from source, --features full-macos or --features full-cross is required for hybrid search support. Without features, only BM25 (keyword) search is available.

First-time setup (required)

After installing via any method above, run:

alcove setup
alcove --version
alcove doctor

setup walks you through everything interactively:

  1. Where your docs live
  2. Which document categories to track
  3. Preferred diagram format
  4. Embedding model for hybrid search
  5. Background server — eliminate cold-start on every session (macOS login item)
  6. Which AI agents to configure (skill files — Claude Code and Codex are handled by their plugin systems)

Re-run alcove setup anytime to change settings. It remembers your previous choices.

Optional dependencies

ToolPurposeInstall
pdftotext (poppler)Full PDF text extraction — required for PDF searchmacOS: brew install poppler · Debian/Ubuntu: apt install poppler-utils · Fedora: dnf install poppler-utils · Windows: poppler for Windows

Without pdftotext, Alcove falls back to a built-in PDF parser which may fail on some files. Run alcove doctor to check your setup.

Troubleshooting

Agent can't find Alcove tools Run alcove setup again — it reconfigures the API server for all configured agents. Then start a new agent session (changes take effect on next session start).

Search returns no results The index may not be built yet. Run alcove index to build it, then try again.

403 Unauthorized from background server ALCOVE_TOKEN is not set in your shell. Run alcove token to print it, then add export ALCOVE_TOKEN="..." to your shell profile and reload.

alcove doctor reports issues Follow the suggestions printed by doctor — it checks binary location, API server status, index state, and optional dependencies like pdftotext.

Usage

CLI Search

Search through your documents directly from the terminal. By default, it searches across all projects (global scope).

# Basic search (global scope)
alcove search "authentication"

# Limit search to the current project (auto-detected via CWD)
alcove search "auth flow" --scope project

# Force grep mode (exact substring match)
alcove search "TODO" --mode grep

# Force ranked mode (BM25/Hybrid)
alcove search "data model" --mode ranked

# Adjust result limit
alcove search "deployment" --limit 5

Coding Agents (HTTP API)

AI coding agents use Alcove through a local HTTP API. The URL and auth token are resolved once per session with alcove api env:

eval $(alcove api env)
# sets ALCOVE_URL=http://127.0.0.1:<port>
# sets ALCOVE_TOKEN=<token>  (only if configured)

Agents can verify connectivity with the verify or rag status argumen

View source on GitHub