Alcove
Alcove 是一个 MCP 服务器,它让 AI 编码代理能够按需访问你的私有项目文档——无需将所有内容塞入上下文窗口,不会将文档泄露到公共仓库,也不需要为每个使用的代理进行单独的项目配置。
演示

Claude、Gemini、Codex — 搜索 · 切换项目 · 全局搜索 · 验证与生成。只需一次设置。

alcove search· 项目切换 ·--scope global·alcove validate
问题所在
你有两个糟糕的选择。
选项 A:将文档放入 CLAUDE.md / AGENTS.md
每个文件在每次运行时都会被注入到上下文窗口中。
对于简短的约定有效。但面对真实的项目文档时就会崩溃。
10 个架构文件 = 上下文臃肿 = 响应变慢、成本更高、准确性降低。
选项 B:不放入文档 你的代理会凭空捏造你已经记录过的需求。 它会忽略你已经做出的决策所带来的约束。 它会要求你在每次会话中解释相同的事情。
这两种选择都无法扩展。现在将其乘以 5 个项目和 3 个代理,每个代理的配置方式都不同。每次切换时,你都会丢失上下文。
Alcove 如何解决这个问题
Alcove 不会注入你的文档。代理在需要时搜索它们所需的内容。
~/projects/my-app $ claude "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 "review the API design"
→ Alcove detects project: my-api
→ Same doc structure, same access pattern
→ Different project, zero reconfiguration随时切换代理。随时切换项目。文档层保持标准化。
正确的拆分
CLAUDE.md / AGENTS.md 用于代理行为:要避免的重复错误、编码约定和特定于会话的指令。保持在 200 行以内。
Alcove 用于项目知识:架构、决策、运行手册、API 文档以及你的代理需要理解的其他任何内容——但不一定在每次运行时都需要。
模式:
CLAUDE.md | AGENTS.md ← agent rules, coding conventions, recurring corrections
~/.config/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代理调用 search_project_docs("auth flow") 并获取 2 个最相关的文档——而不是全部 12 个。除非确实需要,否则没有任何内容会进入上下文窗口。
为什么选择 Alcove
为什么不直接使用
CLAUDE.md? 简短的约定和代理行为适合放在那里。项目文档——架构、决策、运行手册、PRD——在上下文文件中无法扩展。Alcove 不是替代品;它是CLAUDE.md本不该承担的那一层。
没有 Alcove | 使用 Alcove |
文档在 | BM25 搜索 — 代理仅提取所需内容 |
内部文档分散在 Notion、Google Docs、本地文件中 | 一个文档仓库,按项目结构化 |
每个 AI 代理单独配置文档访问权限 | 一次设置,所有代理共享相同访问权限 |
切换项目意味着重新解释上下文 | CWD 自动检测,即时项目切换 |
代理搜索返回随机匹配行 | 排序结果 — 最匹配的在前,每个文件一个结果 |
“搜索我关于 OAuth 的所有笔记” — 不可能 | 一次查询即可跨所有项目进行全局搜索 |
敏感文档存放在项目仓库中 | 私有文档在你的机器上,绝不会进入公共仓库 |
文档结构因项目和团队成员而异 |
|
无法检查文档是否完整 |
|
快速入门
# macOS
brew install epicsagas/alcove/alcove
# Linux / Windows — pre-built binary (fast, no compilation)
cargo install cargo-binstall
cargo binstall alcove
# Any platform — build from source
cargo install alcove
# Clone and build
git clone https://github.com/epicsagas/alcove.git
cd alcove
make install
alcove setup注意:提供适用于 Linux (x86_64)、macOS (Apple Silicon & Intel) 和 Windows 的预构建二进制文件。
setup 会以交互方式引导你完成所有操作:
文档存放位置
要跟踪的文档类别
首选图表格式
要配置的 AI 代理(MCP + 技能文件)
随时重新运行 alcove setup 以更改设置。它会记住你之前的选择。
工作原理
flowchart LR
subgraph Projects["Your projects"]
A1["my-app/\n src/ ..."]
A2["my-api/\n src/ ..."]
end
subgraph Docs["Your private docs (one repo)"]
D1["my-app/\n PRD.md\n ARCH.md"]
D2["my-api/\n PRD.md\n ..."]
P1["policy.toml"]
end
subgraph Agents["Any MCP agent"]
AG["Claude Code · Cursor\nGemini CLI · Codex · Copilot\n+4 more"]
end
subgraph MCP["Alcove MCP server"]
T["search · get_file\noverview · audit\ninit · validate"]
end
A1 -- "CWD detected" --> D1
A2 -- "CWD detected" --> D2
Agents -- "stdio MCP" --> MCP
MCP -- "scoped access" --> Docs你的文档组织在一个单独的目录 (DOCS_ROOT) 中,每个项目一个文件夹。Alcove 在那里管理文档,并通过 stdio 将它们提供给任何兼容 MCP 的 AI 代理。你的代理调用诸如 search_project_docs("auth flow") 之类的工具,并获得排序后的、特定于项目的结果——无论你使用的是哪个代理。
功能特性
按需文档检索 — 代理搜索并检索;没有任何内容预加载到上下文中
BM25 排序搜索 — 由 tantivy 提供支持的快速全文搜索;最相关的文档优先,自动索引,回退到 grep
一个文档仓库,多个项目 — 私有文档按项目组织,集中管理
一次设置,任何代理 — 配置一次,每个兼容 MCP 的代理都能获得相同的访问权限
从 CWD 自动检测你的项目 — 无需每个项目进行配置
作用域访问 — 每个项目只能看到自己的文档
跨项目搜索 — 使用
scope: "global"一次搜索所有项目私有文档保持私有 — 文档绝不触碰你的公共仓库,完全在你的机器上通过 stdio 运行
标准化文档结构 —
policy.toml在所有项目和团队中强制执行一致的文档跨仓库审计 — 查找存放在项目仓库中的内部文档,建议修复方案
文档验证 — 检查缺失文件、未填写的模板、必需的章节
支持 9+ 种代理 — Claude Code, Cursor, Claude Desktop, Cline, OpenCode, Codex, Copilot, Antigravity, Gemini CLI
MCP 工具
工具 | 功能 |
| 列出所有带有分类和大小的文档 |
| 智能搜索 — 自动选择 BM25 排序或 grep,支持 |
| 按路径读取特定文档(支持大文件的 |
| 显示文档仓库中的所有项目 |
| 跨仓库审计 — 扫描文档仓库和本地项目仓库,建议操作 |
| 为新项目搭建文档框架(内部 + 外部文档,选择性文件创建) |
| 根据团队策略 ( |
| 重建全文搜索索引(通常是自动的) |
| 检测自上次索引构建以来添加、修改或删除的文档 |
CLI
alcove Start MCP server (agents call this)
alcove setup Interactive setup — re-run anytime to reconfigure
alcove doctor Check the health of your alcove installation
alcove validate Validate docs against policy (--format json, --exit-code)
alcove index Build or rebuild the full-text search index for ranked search
alcove search Search docs from the terminal
alcove uninstall Remove skills, config, and legacy files搜索
Alcove 会自动选择最佳搜索策略。当搜索索引存在时,它使用 BM25 排序搜索(由 tantivy 提供支持)以获得相关性评分结果。当索引不存在时,它会回退到 grep。你无需考虑这些。
# Search the current project (auto-detected from CWD)
alcove search "authentication flow"
# Force grep mode if you want exact substring matching
alcove search "FR-023" --mode grep当 MCP 服务器启动时,索引会在后台自动构建,并在检测到文件更改时重建。无需 cron 作业,无需手动步骤。
对代理的工作方式: 代理只需使用查询调用 search_project_docs。Alcove 处理其余部分——排序、去重(每个文件一个结果)、跨项目搜索和回退。代理无需选择搜索模式。
全局搜索
每一个架构决策、每一个运行手册、每一个项目笔记——都可以在所有项目中同时搜索。
# Search across ALL projects
alcove search "rate limiting patterns" --scope global
alcove search "OAuth token refresh" --scope global代理可以在 search_project_docs 中使用 scope: "global" 执行相同的操作。一次查询,所有项目。
项目检测
默认情况下,Alcove 从你终端的工作目录 (CWD) 检测当前项目。你可以使用 MCP_PROJECT_NAME 环境变量覆盖此设置:
MCP_PROJECT_NAME=my-api alcove当你的 CWD 与文档仓库中的项目名称不匹配时,这非常有用。
文档策略
在文档仓库中使用 policy.toml 定义全团队的文档标准:
[policy]
enforce = "strict" # strict | warn
[[policy.required]]
name = "PRD.md"
aliases = ["prd.md", "product-requirements.md"]
[[policy.required]]
name = "ARCHITECTURE.md"
[[policy.required.sections]]
heading = "## Overview"
required = true
[[policy.required.sections]]
heading = "## Components"
required = true
min_items = 2策略文件的解析优先级为:项目 (<project>/.alcove/policy.toml) > 团队 (DOCS_ROOT/.alcove/policy.toml) > 内置默认值(来自你的 config.toml 核心文件)。这确保了所有项目文档质量的一致性,同时允许针对特定项目进行覆盖。
文档分类
Alcove 将文档分为几个层级:
分类 | 存放位置 | 示例 |
doc-repo-required | Alcove (私有) | PRD, 架构, 决策, 约定 |
doc-repo-supplementary | Alcove (私有) | 部署, 入职, 测试, 运行手册 |
reference | Alcove | 审计报告, 基准测试, 分析 |
project-repo | 你的 GitHub 仓库 (公开) | README, CHANGELOG, CONTRIBUTING |
audit 工具会扫描你的文档仓库和本地项目目录,然后建议操作——例如从你的私有 PRD 生成公共 README,或将放错位置的报告拉回 Alcove。
配置
配置位于 ~/.config/alcove/config.toml:
docs_root = "/Users/you/documents"
[core]
files = ["PRD.md", "ARCHITECTURE.md", "PROGRESS.md", "DECISIONS.md", "CONVENTIONS.md", "SECRETS_MAP.md", "DEBT.md"]
[team]
files = ["ENV_SETUP.md", "ONBOARDING.md", "DEPLOYMENT.md", "TESTING.md", ...]
[public]
files = ["README.md", "CHANGELOG.md", "CONTRIBUTING.md", "SECURITY.md", ...]
[diagram]
format = "mermaid"所有这些都是通过 alcove setup 交互式设置的。你也可以直接编辑该文件。
文件列表是完全可定制的——将任何文件名添加到任何类别,或在类别之间移动文件以匹配你团队的工作流程:
[core]
files = ["PRD.md", "ARCHITECTURE.md", "DECISIONS.md", "MY_SPEC.md"] # added custom doc
[public]
files = ["README.md", "CHANGELOG.md", "PRD.md"] # PRD exposed as public for this project支持的代理
代理 | MCP | 技能 |
Claude Code |
|
|
Cursor |
|
|
Claude Desktop | 平台配置 | — |
Cline (VS Code) | VS Code globalStorage |
|
OpenCode |
|
|
Codex CLI |
|
|
Copilot CLI |
|
|
Antigravity |
| — |
Gemini CLI |
|
|
支持技能的代理会在你询问项目架构、约定、决策或状态时自动激活 Alcove。它们也可以被显式调用:
/alcove Summarize current project docs and status
/alcove search auth flow Search docs for a specific topic
/alcove what conventions apply? Ask a doc question directly支持的语言
CLI 会自动检测你的系统区域设置。你也可以使用 ALCOVE_LANG 环境变量覆盖它。
语言 | 代码 |
English |
|
한국어 |
|
简体中文 |
|
日本語 |
|
Español |
|
हिन्दी |
|
Português (Brasil) |
|
Deutsch |
|
Français |
|
Русский |
|
# Override language
ALCOVE_LANG=ko alcove setup更新
# Homebrew
brew upgrade epicsagas/alcove/alcove
# cargo-binstall
cargo binstall alcove
# From source
cargo install alcove卸载
alcove uninstall # remove skills & config
cargo uninstall alcove # remove binary生态系统
obsidian-forge
Alcove 与 obsidian-forge(一个 Obsidian 知识库生成器和自动化守护进程)完美搭配。使用 obsidian-forge 构建和加强你在 Obsidian 中的知识图谱,然后将 alcove 的 DOCS_ROOT 指向该知识库——你的 AI 代理即可在你的整个个人知识库中进行排序、有作用域的搜索,而不会出现任何上下文臃肿。
贡献
欢迎提交错误报告、功能请求和拉取请求。请在 GitHub 上开启一个 issue 以开始讨论。
许可证
Apache-2.0
Latest Blog Posts
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/epicsagas/alcove'
If you have feedback or need assistance with the MCP directory API, please join our Discord server