Code Context Hologres は、Model Context Protocol (MCP) に基づくプラグインであり、AI コーディングアシスタントにコードベースレベルのセマンティック検索機能を提供します。Alibaba Cloud の Model Studio (Bailian) の一部である DashScope のベクトル埋め込みモデルを使用してコードをベクトルに変換し、Hologres リアルタイムデータウェアハウスに保存します。これにより、BM25 疎ベクトルと密ベクトルの両方を使用したハイブリッド検索が可能になります。検索結果は、Reciprocal Rank Fusion (RRF) によって再ランク付けされ、より正確なコードの特定を実現します。
Code Context Hologres を使用すると、次のことが可能になります:
自然言語を使用して、コードベース全体から関連するコードスニペットを検索できます。
手動でファイルを参照することなく、AI アシスタントが関連するコードコンテキストを自動的に取得できるようになります。
数百万行のコードからなるコードベースを処理し、関連するチャンクのみを AI のコンテキストに追加することで、コストを大幅に削減します。
差分インデックス作成 (マークルツリーに基づく) を使用して、ファイルの変更を自動的に検出し、効率的にインデックスを更新します。
MCP の詳細については、「Model Context Protocol」をご参照ください。
概要
Code Context Hologres は、以下のコア機能を提供します:
機能 | 説明 |
セマンティック検索 | 「ユーザー認証を処理する関数を検索」のように、自然言語でコードをクエリします。 |
ハイブリッド検索 | BM25 疎ベクトルと密ベクトルを組み合わせ、Reciprocal Rank Fusion で結果を再ランク付けして精度を向上させます。 |
差分インデックス作成 | マークルツリーに基づいてファイルの変更を検出し、変更された部分のみを再インデックスします。 |
AST ベースのチャンク化 | 抽象構文木 (AST) に基づいてコードをチャンク化し、そのセマンティックな構造を保持します。 |
スケーラブルなストレージ | Hologres ベクトルデータベースを利用し、数百万行のコードからなるコードベースをサポートします。 |
バックグラウンドインデックス作成 | 非同期のインデックス作成は、コード検索操作を妨げません。 |
サポートされる AI コーディングアシスタント:Qwen Code、Claude Code、および Cursor、VS Code、Windsurf などの MCP 互換クライアント。
サポートされるプログラミング言語:TypeScript、JavaScript、Python、Java、C++、C#、Go、Rust、PHP、Ruby、Swift、Kotlin、Scala、および Markdown。
サポートされる埋め込みモデルプロバイダー:DashScope (Alibaba Cloud の Model Studio (Bailian) から)、OpenAI、VoyageAI、Google Gemini、および Ollama (ローカルデプロイメント)。このガイドのすべての例では、DashScope モデルを使用します。
前提条件
環境要件
項目 | 要件 |
Node.js | 20.x または 22.x |
パッケージマネージャー | npm (推奨) または pnpm |
オペレーティングシステム | macOS、Linux、または Windows |
Code Context Hologres は Node.js 20.x および 22.x とのみ互換性があります。21.x、23.x、24.x などの他のバージョンを使用している場合は、サポートされているバージョンに切り替える必要があります。
DashScope と Bailian の設定
埋め込みモデルを使用するには、DashScope API キーが必要です。
Alibaba Cloud アカウントにサインアップします。
Model Studio (Bailian) サービスを有効化します。
Model Studio (Bailian) コンソールで API キーを作成します。キーは
sk-で始まります。
利用可能な DashScope 埋め込みモデル:
モデル名 | ベクトル次元 | 説明 | バッチサイズ制限 |
text-embedding-v4 | 1024 | 最新の推奨モデル | 10 |
text-embedding-v3 | 1024 | 複数の次元 (1024、768、または 512) をサポート | 25 |
text-embedding-v2 | 1536 | レガシーモデル | 25 |
text-embedding-v1 | 1536 | レガシーモデル | 25 |
最良の結果を得るには、text-embedding-v4 モデルの使用を推奨します。このモデルのバッチサイズ (EMBEDDING_BATCH_SIZE) は 10 を超えてはなりません。
Hologres インスタンスの設定
ベクトルデータを保存するには、Hologres インスタンスが必要です。次の接続詳細に注意してください:
項目 | 説明 | 例 |
エンドポイント | ご利用の Hologres インスタンスの接続エンドポイント。 |
|
ポート | 接続ポート。 |
|
データベース名 | 作成したデータベースの名前。 |
|
AccessKey ID | ご利用の Alibaba Cloud AccessKey ID。 | AccessKey 管理から取得します。 |
AccessKey Secret | ご利用の Alibaba Cloud AccessKey Secret。 | 上記と同じ。 |
ご利用の Hologres インスタンスは V4.0 以降である必要があります。
AI コーディングアシスタントのインストール
使用している AI コーディングアシスタントのインストール手順に従ってください:
Qwen Code:公式の Qwen Code ドキュメントを参照して、インストールを完了してください。
Claude Code:Claude Code ドキュメントを参照して、インストールを完了してください。
インストール
Code Context Hologres は手動でのインストールは不要です。最新バージョンの MCP プラグインは npx を通じて自動的にダウンロードされます。
コマンド npx code-context-mcp-hologres@latest を初めて実行すると、npm からパッケージが自動的にダウンロードされ、実行されます。
次のコマンドを実行して、ツールが利用可能であることを確認できます:
npx code-context-mcp-hologres@latest --helpこのコマンドは、サポートされているすべての環境変数と設定オプションを表示します。
認証情報の設定
Claude Code の設定
CLI メソッド
ターミナルで次のコマンドを実行して、Code Context Hologres を Claude Code の MCP サーバーとして登録します:
claude mcp add code-context-hologres \
-e EMBEDDING_PROVIDER=DashScope \
-e DASHSCOPE_API_KEY=sk-your-dashscope-api-key \
-e EMBEDDING_MODEL=text-embedding-v4 \
-e EMBEDDING_BATCH_SIZE=10 \
-e HOLOGRES_HOST=your-hologres-instance.hologres.aliyuncs.com \
-e HOLOGRES_PORT=80 \
-e HOLOGRES_DATABASE=your-database-name \
-e HOLOGRES_USER=your-access-id \
-e HOLOGRES_PASSWORD=your-access-secret \
-- npx code-context-mcp-hologres@latest次のプレースホルダーを実際の値に置き換えてください:
プレースホルダー | 置換 |
| Model Studio (Bailian) から取得した DashScope API キー。 |
| ご利用の Hologres インスタンスのエンドポイント。 |
| ご利用の Hologres データベース名。 |
| ご利用の AccessKey ID。 |
| ご利用の AccessKey Secret。 |
JSON ファイルによる設定
または、Claude Code の設定ファイルを編集して MCP サーバーを追加することもできます。
~/.claude.json ファイルを作成または編集し、次の内容を追加します:
{
"mcpServers": {
"code-context-hologres": {
"command": "npx",
"args": ["-y", "code-context-mcp-hologres@latest"],
"env": {
"EMBEDDING_PROVIDER": "DashScope",
"DASHSCOPE_API_KEY": "sk-your-dashscope-api-key",
"EMBEDDING_MODEL": "text-embedding-v4",
"EMBEDDING_BATCH_SIZE": "10",
"HOLOGRES_HOST": "your-hologres-instance.hologres.aliyuncs.com",
"HOLOGRES_PORT": "80",
"HOLOGRES_DATABASE": "your-database-name",
"HOLOGRES_USER": "your-access-id",
"HOLOGRES_PASSWORD": "your-access-secret"
}
}
}
}検証
次のコマンドを実行して、MCP サーバーが登録されていることを確認します:
claude mcp list出力には code-context-hologres サーバーがリストアップされるはずです。
Qwen Code の設定
CLI メソッド
ターミナルで次のコマンドを実行します:
qwen mcp add \
-t stdio \
-e EMBEDDING_PROVIDER=DashScope \
-e DASHSCOPE_API_KEY=sk-your-dashscope-api-key \
-e EMBEDDING_MODEL=text-embedding-v4 \
-e EMBEDDING_BATCH_SIZE=10 \
-e HOLOGRES_HOST=your-hologres-instance.hologres.aliyuncs.com \
-e HOLOGRES_PORT=80 \
-e HOLOGRES_DATABASE=your-database-name \
-e HOLOGRES_USER=your-access-id \
-e HOLOGRES_PASSWORD=your-access-secret \
code-context-hologres \
npx -y code-context-mcp-hologres@latestJSON ファイルによる設定
~/.qwen/settings.json ファイルを作成または編集し、次の内容を追加します:
{
"mcpServers": {
"code-context-hologres": {
"type": "stdio",
"command": "npx",
"args": ["-y", "code-context-mcp-hologres@latest"],
"env": {
"EMBEDDING_PROVIDER": "DashScope",
"DASHSCOPE_API_KEY": "sk-your-dashscope-api-key",
"EMBEDDING_MODEL": "text-embedding-v4",
"EMBEDDING_BATCH_SIZE": "10",
"HOLOGRES_HOST": "your-hologres-instance.hologres.aliyuncs.com",
"HOLOGRES_PORT": "80",
"HOLOGRES_DATABASE": "your-database-name",
"HOLOGRES_USER": "your-access-id",
"HOLOGRES_PASSWORD": "your-access-secret"
}
}
}
}検証
Qwen Code の MCP サーバーのリストを確認し、code-context-hologres がリストされていることを確認します。
グローバル設定ファイル
複数の MCP クライアントで Code Context Hologres を使用する場合、各クライアントで環境変数を設定する代わりに、単一のグローバル設定ファイルで認証情報を管理できます。
次の内容で ~/.context/.env ファイルを作成します:
# DashScope 埋め込みモデルの設定
EMBEDDING_PROVIDER=DashScope
DASHSCOPE_API_KEY=sk-your-dashscope-api-key
EMBEDDING_MODEL=text-embedding-v4
EMBEDDING_BATCH_SIZE=10
# Hologres データベースの設定
HOLOGRES_HOST=your-hologres-instance.hologres.aliyuncs.com
HOLOGRES_PORT=80
HOLOGRES_DATABASE=your-database-name
HOLOGRES_USER=your-access-id
HOLOGRES_PASSWORD=your-access-secretグローバル設定ファイルを作成した後、MCP 登録コマンドを簡略化できます:
Claude Code:
claude mcp add code-context-hologres -- npx code-context-mcp-hologres@latestQwen Code:
qwen mcp add \
-t stdio \
code-context-hologres \
npx -y code-context-mcp-hologres@latest環境変数は次の順序で優先されます:1. プロセス環境変数 (-e フラグで設定)。2. ~/.context/.env ファイル内の変数。3. デフォルト値。
環境変数
DashScope 埋め込みモデルの設定
変数 | 必須 | デフォルト | 説明 |
| いいえ |
| 埋め込みモデルプロバイダー。これを |
| はい (DashScope を使用する場合) | なし | Model Studio (Bailian) から取得した DashScope API キー。 |
| いいえ |
| 埋め込みモデルの名前。 |
| いいえ |
| 埋め込みバッチサイズ。 |
| いいえ |
| DashScope API エンドポイント。通常、これを変更する必要はありません。 |
Hologres データベースの設定
変数 | 必須 | デフォルト | 説明 |
| はい | なし | Hologres インスタンスのエンドポイント。 |
| いいえ |
| 接続ポート。 |
| はい | なし | データベース名。 |
| はい | なし | ご利用の AccessKey ID。 |
| はい | なし | ご利用の AccessKey Secret。 |
高度な設定
変数 | 必須 | デフォルト | 説明 |
| いいえ |
| ハイブリッド検索 (BM25 + 密ベクトル) を有効にします。 |
| いいえ | なし | 追加のファイル拡張子をカンマ区切りで指定します。例: |
| いいえ | なし | 追加の無視パターンをカンマ区切りで指定します。例: |
使用方法
基本的なワークフロー
プロジェクトのディレクトリで AI コーディングアシスタント (Qwen Code または Claude Code) を開きます。
AI にコードベースのインデックス作成を依頼します。
インデックス作成のステータスを確認し、完了するのを待ちます。
自然言語を使用してコードを検索します。
コードベースのインデックス作成
コードベースのインデックス作成には、プロジェクトファイルをチャンクに分割し、ベクトル埋め込みを生成し、それらを Hologres に保存する処理が含まれます。このプロセスは非同期で実行され、開始後すぐにレスポンスを返します。
AI に自然言語で依頼するだけです:
> このコードベースのインデックスを作成してAI は自動的に index_codebase ツールを呼び出します。このツールは次のパラメーターをサポートします:
パラメーター | 必須 | デフォルト | 説明 |
| はい | なし | コードベースへの絶対パス。AI は自動的に現在の作業ディレクトリを使用します。 |
| いいえ |
| 強制的に再インデックスを作成するかどうか。 |
| いいえ |
| コードスプリッター: |
| いいえ | なし | 追加のファイル拡張子のリスト。例: |
| いいえ | なし | 追加の無視パターンのリスト。 |
例:インデックス作成時に追加のファイルタイプを含める。
> このコードベースのインデックスを作成し、.vue と .svelte ファイルを含めて例:強制的に再インデックスを作成する。
> 現在のコードベースのインデックスを強制的に再作成してインデックス作成ステータス
バックグラウンドで実行されている間、いつでもインデックス作成の進捗を確認できます。AI は get_indexing_status ツールを呼び出します。
> インデックス作成のステータスを確認して考えられるステータス:
ステータス | 説明 |
| インデックス作成が完了し、コードベースは検索可能です。インデックス化されたファイルとチャンクの数が表示されます。 |
| インデックス作成が進行中です。完了率が表示されます。 |
| インデックス作成が失敗しました。エラーメッセージが表示されます。インデックス作成コマンドを再実行できます。 |
| コードベースはまだインデックスされていません。最初にインデックスコマンドを実行する必要があります。 |
コード検索
自然言語クエリを使用して、インデックス化されたコードベースを検索します。AI は search_code ツールを呼び出します。
> ユーザー認証を処理する関数を検索してsearch_code ツールは次のパラメーターをサポートします:
パラメーター | 必須 | デフォルト | 説明 |
| はい | なし | コードベースへの絶対パス。AI はこれを自動的に取得します。 |
| はい | なし | 自然言語クエリ。 |
| いいえ |
| 返す結果の数 (最大 50)。 |
| いいえ | なし | ファイル拡張子でフィルターします。例: |
その他の検索例:
> データベース接続に関連するすべてのコードを検索して> エラー処理ロジックを検索して、ただし .py ファイルのみ> 支払いプロセスに関連するコードスニペットを検索して> Hologres ベクトル検索の実装コードを検索してインデックス作成中に検索できますが、結果が不完全になる場合があります。インデックス作成が完了すると、結果はより正確になります。
インデックスのクリア
コードベースのインデックスデータをクリアする必要がある場合 (例えば、埋め込みモデルを切り替えた後など)、次のように依頼できます:
> 現在のコードベースのインデックスをクリアするAI は clear_index ツールを呼び出して、Hologres からインデックスデータを削除します。
例 (Claude Code)
$ cd /path/to/your-project
$ claude
> このコードベースのインデックスを作成して
code-context-hologres: コードベース '/path/to/your-project' のバックグラウンドインデックス作成を開始しました
AST スプリッターを使用しています。インデックス作成はバックグラウンドで実行中です。
> インデックス作成のステータスを確認して
code-context-hologres: コードベース '/path/to/your-project' は現在インデックス作成中です。
進捗:45.2% (ファイルを処理し、埋め込みを生成中...)
> インデックス作成のステータスを確認して
code-context-hologres: コードベース '/path/to/your-project' は完全にインデックス化され、検索
可能です。統計:128 ファイル、1,536 チャンク。
> ユーザーログイン認証を処理する関数を検索して
code-context-hologres: クエリ "ユーザーログイン認証" に対して 5 件の結果が見つかりました:
1. コードスニペット (TypeScript) [your-project]
場所:src/auth/login.ts:15-42
...例 (Qwen Code)
$ cd /path/to/your-project
$ qwen
> このコードベースのインデックスを作成して
code-context-hologres: コードベース '/path/to/your-project' のバックグラウンドインデックス作成を開始しました
AST スプリッターを使用しています。インデックス作成はバックグラウンドで実行中です。
> インデックス作成のステータスを確認して
code-context-hologres: コードベース '/path/to/your-project' は完全にインデックス化され、検索
可能です。統計:128 ファイル、1,536 チャンク。
> ユーザーログイン認証を処理する関数を検索して
code-context-hologres: クエリ "ユーザーログイン認証" に対して 5 件の結果が見つかりました:
1. コードスニペット (TypeScript) [your-project]
場所:src/auth/login.ts:15-42
...高度な設定
モデルの切り替え
EMBEDDING_MODEL 環境変数を変更することで、DashScope 埋め込みモデルを切り替えることができます。
例えば、text-embedding-v3 モデルを使用する場合:
# MCP 登録コマンドで変更
-e EMBEDDING_MODEL=text-embedding-v3または ~/.context/.env で変更します:
EMBEDDING_MODEL=text-embedding-v3モデルによってベクトル次元が異なる場合があります (例えば、text-embedding-v4 は 1024 次元、text-embedding-v2 は 1536 次元)。モデルを切り替えた後は、既存のインデックスをクリアし、コードベースのインデックスを再作成する必要があります。
カスタムファイル拡張子
デフォルトでは、Code Context Hologres は一般的なプログラミング言語ファイルをサポートしています。追加のファイルタイプ (例えば .vue、.svelte、.astro) のインデックスを作成する必要がある場合は、2つのオプションがあります:
方法 1:CUSTOM_EXTENSIONS 環境変数でグローバルに設定します。
CUSTOM_EXTENSIONS=.vue,.svelte,.astro方法 2:インデックス作成時に自然言語を使用して指定します。
> このコードベースのインデックスを作成し、.vue と .svelte ファイルを含めてカスタム無視パターン
Code Context Hologres は、プロジェクト内の .gitignore と .contextignore ファイル、およびグローバルな ~/.context/.contextignore ファイルを自動的に読み取ります。次の方法で追加の無視ルールを追加することもできます:
方法 1:CUSTOM_IGNORE_PATTERNS 環境変数を使用します。
CUSTOM_IGNORE_PATTERNS=*.test.ts,__mocks__,*.generated.ts方法 2:インデックス作成時に自然言語を使用して指定します。
> このコードベースのインデックスを作成し、.test.ts と __mocks__ ディレクトリを無視してコードスプリッター
Code Context Hologres は 2 つのコードスプリッターをサポートしています:
スプリッター | 説明 | ユースケース |
| AST に基づくセマンティックなチャンク化で、コード構造を保持します。 | 推奨。より高品質なチャンクを生成します。 |
| 文字数に基づくチャンク化。 | AST スプリッターが利用できない場合のフォールバックオプション。 |
通常、これを手動で指定する必要はありません。システムはデフォルトで ast スプリッターを使用し、必要に応じて自動的にフォールバックします。
ハイブリッド検索の設定
Code Context Hologres は、より高い検索精度を実現するために、デフォルトでハイブリッド検索 (BM25 疎ベクトル + 密ベクトル) を有効にしています。これを無効にして密ベクトルのみを使用する必要がある場合は、次のように設定します:
HYBRID_MODE=false最良の検索結果を得るには、ハイブリッド検索を有効にしておくこと (デフォルト設定) を推奨します。
よくある質問
Q1:インデックス作成中に DASHSCOPE_API_KEY が設定されていないというエラーが発生した場合はどうすればよいですか?
以下を確認してください:
MCP 登録コマンドで
-e DASHSCOPE_API_KEY=sk-xxxが正しく設定されていることを確認します。グローバル設定ファイルを使用している場合は、
~/.context/.envファイルが存在し、DASHSCOPE_API_KEYが含まれていることを確認します。API キーのフォーマットは
sk-で始まる必要があります。
Q2:失敗したインデックス作成ジョブのトラブルシューティング方法は?
[インデックス作成ステータスの確認] を使用して、エラーメッセージを表示します。
一般的な原因には、Hologres 接続の失敗 (
HOLOGRES_HOST、HOLOGRES_USER、HOLOGRES_PASSWORDを確認) や、無効な DashScope API キーまたは残高不足などがあります。インデックス作成が失敗した場合、手動でデータをクリアすることなく、インデックス作成コマンドを再実行できます。
Q3:複数のプロジェクトやコードベースをサポートしていますか?
はい。Code Context Hologres は現在の作業ディレクトリを自動的に検出するため、手動でパスを指定する必要はありません。それぞれのディレクトリで異なるプロジェクトのインデックス作成と検索を行うことができ、システムはコードベースごとに個別のインデックスを自動的に管理します。さらに、バックグラウンド同期プロセスが 5 分ごとに実行され、ファイルの変更を検出して差分更新を実行します。
Q4:強制的に再インデックスを作成するにはどうすればよいですか?
AI に「現在のコードベースのインデックスを強制的に再作成して」と指示するだけです。または、インデックス作成時に force=true パラメーターを指定することもできます。
Q5:DashScope API のレート制限に達した場合はどうすればよいですか?
text-embedding-v4 モデルのバッチサイズ制限は 10 です。大規模なコードベースのインデックス作成時にレート制限に達した場合は、EMBEDDING_BATCH_SIZE の値を小さくしてみてください。
Q6:Claude Code で MCP サーバーに再接続するにはどうすればよいですか?
MCP サーバーが切断されたり、その設定が更新されたりした場合は、次のコマンドを使用します:
/mcp reconnect code-context-hologresQ7:別の埋め込みモデルプロバイダーに切り替えるにはどうすればよいですか?
EMBEDDING_PROVIDER 環境変数を変更します。例えば、ローカルモデル用に Ollama に切り替える場合:
EMBEDDING_PROVIDER=Ollama
OLLAMA_HOST=http://127.0.0.1:11434
OLLAMA_MODEL=nomic-embed-text切り替えた後は、既存のインデックスをクリアし、コードベースのインデックスを再作成する必要があります。
Q8:インデックスできるチャンクの最大数はいくつですか?
1 つのコードベースでインデックスできるチャンクの最大数は 450,000 です。この制限に達すると、インデックス作成は自動的に停止し、通知が表示されます。
注意事項
Node.js のバージョン制限:Node.js 20.x と 22.x のみがサポートされています。21.x、23.x、24.x などのバージョンは互換性がありません。
API キーのセキュリティ:API キーをコードベースにハードコーディングしないでください。
~/.context/.envのグローバル設定ファイルを使用するか、MCP クライアントの環境変数メカニズムを通じて認証情報を渡すことを推奨します。データセキュリティ:ベクトルデータは、ご利用の Alibaba Cloud アカウント下にある Hologres インスタンスに保存されます。Code Context Hologres は、お客様のコードコンテンツを保存または送信しません。
モデルの切り替え:埋め込みモデルを変更した後は、ベクトル次元が異なる可能性があるため、インデックスをクリアしてコードベースのインデックスを再作成する必要があります。
バージョンの更新:MCP サーバーのバージョンを更新した後は、再接続してください。Claude Code では
/mcp reconnect code-context-hologresコマンドを使用し、Qwen Code ではサーバーを再起動します。初回インデックス作成時間:大規模なコードベースを初めてインデックス作成する場合、コードベースのサイズと DashScope API の応答速度によっては、かなりの時間がかかることがあります。インデックス作成はバックグラウンドで実行され、このプロセス中に検索を開始できますが、結果は不完全な場合があります。