Skip to main content
Glama

Alcoveは、AIコーディングエージェントがプライベートなプロジェクトドキュメントにオンデマンドでアクセスできるようにするMCPサーバーです。すべてをコンテキストウィンドウに詰め込んだり、ドキュメントをパブリックリポジトリに漏洩させたり、使用するエージェントごとにプロジェクトごとの設定を行ったりする必要はありません。

デモ

Alcoveエージェントデモ

Claude、Gemini、Codex — 検索 · プロジェクト切り替え · グローバル検索 · 検証と生成。一度の設定で。

Alcove CLIデモ

alcove search · プロジェクト切り替え · --scope global · alcove validate

問題点

これまで、2つの悪い選択肢しかありませんでした。

選択肢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") を呼び出し、12個すべてではなく、最も関連性の高い2つのドキュメントを取得します。実際に必要でない限り、コンテキストウィンドウには何も入りません。

なぜAlcoveなのか

なぜ CLAUDE.md だけではいけないのか? 短い規約やエージェントの動作はそこに属します。プロジェクトドキュメント(アーキテクチャ、決定事項、ランブック、PRD)はコンテキストファイルではスケールしません。Alcoveは代替品ではなく、CLAUDE.md が本来意図していなかった層を補完するものです。

Alcoveなし

Alcoveあり

CLAUDE.md にドキュメントを入れると毎回コンテキストが肥大化する

BM25検索 — エージェントが必要なものだけを抽出

Notion、Google Docs、ローカルファイルに散らばる内部ドキュメント

プロジェクトごとに構造化された単一のドキュメントリポジトリ

各AIエージェントでドキュメントアクセスを個別に設定

一度の設定ですべてのエージェントが同じアクセス権を共有

プロジェクトを切り替えるたびにコンテキストを再説明する必要がある

CWD自動検出、即時のプロジェクト切り替え

エージェントの検索結果がランダムな一致行になる

ランク付けされた結果 — 最も一致するものから順に、ファイルごとに1つの結果

「OAuthに関するメモをすべて検索」 — 不可能

1つのクエリで全プロジェクトを横断検索

プロジェクトリポジトリに機密ドキュメントが残る

プライベートドキュメントはローカルに保持、パブリックリポジトリには一切触れない

プロジェクトやチームメンバーごとにドキュメント構造が異なる

policy.toml が全プロジェクトで標準を強制

ドキュメントが完全か確認する方法がない

validate が不足ファイル、空のテンプレート、不足セクションを検出

クイックスタート

# 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 コマンドが対話形式で以下を案内します:

  1. ドキュメントの場所

  2. 追跡するドキュメントカテゴリ

  3. 推奨される図の形式

  4. 設定する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)に整理され、プロジェクトごとに1つのフォルダが作成されます。Alcoveはそこでドキュメントを管理し、stdio経由でMCP互換のAIエージェントに提供します。エージェントは search_project_docs("auth flow") のようなツールを呼び出し、どのエージェントを使用していても、ランク付けされたプロジェクト固有の結果を取得します。

機能

  • オンデマンドのドキュメント取得 — エージェントが検索して取得するため、コンテキストに事前ロードされません

  • BM25ランク付け検索tantivy を活用した高速な全文検索。最も関連性の高いドキュメントを優先し、自動インデックス化され、grepにフォールバックします

  • 1つのドキュメントリポジトリ、複数のプロジェクト — プロジェクトごとに整理されたプライベートドキュメントを1か所で管理

  • 一度の設定で、あらゆるエージェントに対応 — 一度設定すれば、すべてのMCP互換エージェントが同じアクセス権を取得

  • CWDからプロジェクトを自動検出 — プロジェクトごとの設定は不要

  • スコープ付きアクセス — 各プロジェクトは自身のドキュメントのみを参照

  • プロジェクト横断検索scope: "global" を使用して全プロジェクトを一度に検索

  • プライベートドキュメントは非公開 — ドキュメントはパブリックリポジトリに触れず、すべてローカルマシン上でstdio経由で実行

  • 標準化されたドキュメント構造policy.toml がすべてのプロジェクトとチームで一貫したドキュメントを強制

  • リポジトリ横断監査 — プロジェクトリポジトリ内に誤って配置された内部ドキュメントを見つけ、修正を提案

  • ドキュメント検証 — 不足ファイル、未記入のテンプレート、必須セクションをチェック

  • 9種類以上のエージェントに対応 — Claude Code, Cursor, Claude Desktop, Cline, OpenCode, Codex, Copilot, Antigravity, Gemini CLI

MCPツール

ツール

機能

get_project_docs_overview

分類とサイズを含むすべてのドキュメントをリストアップ

search_project_docs

スマート検索 — BM25ランク付けまたはgrepを自動選択、プロジェクト横断検索用の scope: "global" をサポート

get_doc_file

パスを指定して特定のドキュメントを読み込む(大きなファイル用に offset/limit をサポート)

list_projects

ドキュメントリポジトリ内の全プロジェクトを表示

audit_project

リポジトリ横断監査 — ドキュメントリポジトリとローカルプロジェクトリポジトリをスキャンし、アクションを提案

init_project

新規プロジェクト用のドキュメントを構築(内部/外部ドキュメント、選択的なファイル作成)

validate_docs

チームポリシー (policy.toml) に基づいてドキュメントを検証

rebuild_index

全文検索インデックスを再構築(通常は自動)

check_doc_changes

前回のインデックス構築以降に追加、変更、削除されたドキュメントを検出

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は自動的に最適な検索戦略を選択します。検索インデックスが存在する場合は、関連性スコア付きの結果を得るために tantivy による BM25ランク付け検索 を使用します。存在しない場合は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がランキング、重複排除(ファイルごとに1つの結果)、プロジェクト横断検索、フォールバックをすべて処理します。エージェントが検索モードを選択する必要はありません。

グローバル検索

すべてのアーキテクチャ決定、すべてのランブック、すべてのプロジェクトメモを、すべてのプロジェクトで一度に検索できます。

# Search across ALL projects
alcove search "rate limiting patterns" --scope global
alcove search "OAuth token refresh" --scope global

エージェントも search_project_docsscope: "global" を使用して同様のことができます。1つのクエリですべてのプロジェクトを検索します。

プロジェクト検出

デフォルトでは、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 reports/ フォルダ

監査レポート, ベンチマーク, 分析

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

~/.claude.json

~/.claude/skills/alcove/

Cursor

~/.cursor/mcp.json

~/.cursor/skills/alcove/

Claude Desktop

プラットフォーム設定

Cline (VS Code)

VS Code globalStorage

~/.cline/skills/alcove/

OpenCode

~/.config/opencode/opencode.json

~/.opencode/skills/alcove/

Codex CLI

~/.codex/config.toml

~/.codex/skills/alcove/

Copilot CLI

~/.copilot/mcp-config.json

~/.copilot/skills/alcove/

Antigravity

~/.gemini/antigravity/mcp_config.json

Gemini CLI

~/.gemini/settings.json

~/.gemini/skills/alcove/

スキル対応エージェントは、プロジェクトのアーキテクチャ、規約、決定事項、ステータスについて尋ねると自動的に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

en

한국어

ko

简体中文

zh-CN

日本語

ja

Español

es

हिन्दी

hi

Português (Brasil)

pt-BR

Deutsch

de

Français

fr

Русский

ru

~/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

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