すべてのプロダクト
Search
ドキュメントセンター

Hologres:Code Context Hologres ユーザーガイド

最終更新日:Apr 11, 2026

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 キーが必要です。

  1. Alibaba Cloud アカウントにサインアップします。

  2. Model Studio (Bailian) サービスを有効化します。

  3. 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 インスタンスの接続エンドポイント。

hgpostcn-cn-xxx.hologres.aliyuncs.com

ポート

接続ポート。

80 (デフォルト)

データベース名

作成したデータベースの名前。

mydb

AccessKey ID

ご利用の Alibaba Cloud AccessKey ID。

AccessKey 管理から取得します。

AccessKey Secret

ご利用の Alibaba Cloud AccessKey Secret。

上記と同じ。

説明

ご利用の Hologres インスタンスは V4.0 以降である必要があります。

AI コーディングアシスタントのインストール

使用している AI コーディングアシスタントのインストール手順に従ってください:

  • Qwen Code:公式の Qwen Code ドキュメントを参照して、インストールを完了してください。

  • Claude CodeClaude 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

次のプレースホルダーを実際の値に置き換えてください:

プレースホルダー

置換

sk-your-dashscope-api-key

Model Studio (Bailian) から取得した DashScope API キー。

your-hologres-instance.hologres.aliyuncs.com

ご利用の Hologres インスタンスのエンドポイント。

your-database-name

ご利用の Hologres データベース名。

your-access-id

ご利用の AccessKey ID。

your-access-secret

ご利用の 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@latest

JSON ファイルによる設定

~/.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@latest

Qwen Code

qwen mcp add \
    -t stdio \
    code-context-hologres \
    npx -y code-context-mcp-hologres@latest
説明

環境変数は次の順序で優先されます:1. プロセス環境変数 (-e フラグで設定)。2. ~/.context/.env ファイル内の変数。3. デフォルト値。

環境変数

DashScope 埋め込みモデルの設定

変数

必須

デフォルト

説明

EMBEDDING_PROVIDER

いいえ

OpenAI

埋め込みモデルプロバイダー。これを DashScope に設定します。

DASHSCOPE_API_KEY

はい (DashScope を使用する場合)

なし

Model Studio (Bailian) から取得した DashScope API キー。

EMBEDDING_MODEL

いいえ

text-embedding-v4

埋め込みモデルの名前。

EMBEDDING_BATCH_SIZE

いいえ

10

埋め込みバッチサイズ。text-embedding-v4 の場合、これを 10 に設定することを推奨します。

DASHSCOPE_BASE_URL

いいえ

https://dashscope.aliyuncs.com/compatible-mode/v1

DashScope API エンドポイント。通常、これを変更する必要はありません。

Hologres データベースの設定

変数

必須

デフォルト

説明

HOLOGRES_HOST

はい

なし

Hologres インスタンスのエンドポイント。

HOLOGRES_PORT

いいえ

80

接続ポート。

HOLOGRES_DATABASE

はい

なし

データベース名。

HOLOGRES_USER

はい

なし

ご利用の AccessKey ID。

HOLOGRES_PASSWORD

はい

なし

ご利用の AccessKey Secret。

高度な設定

変数

必須

デフォルト

説明

HYBRID_MODE

いいえ

true

ハイブリッド検索 (BM25 + 密ベクトル) を有効にします。

CUSTOM_EXTENSIONS

いいえ

なし

追加のファイル拡張子をカンマ区切りで指定します。例:.vue,.svelte

CUSTOM_IGNORE_PATTERNS

いいえ

なし

追加の無視パターンをカンマ区切りで指定します。例:*.test.ts,__mocks__

使用方法

基本的なワークフロー

  1. プロジェクトのディレクトリで AI コーディングアシスタント (Qwen Code または Claude Code) を開きます。

  2. AI にコードベースのインデックス作成を依頼します。

  3. インデックス作成のステータスを確認し、完了するのを待ちます。

  4. 自然言語を使用してコードを検索します。

コードベースのインデックス作成

コードベースのインデックス作成には、プロジェクトファイルをチャンクに分割し、ベクトル埋め込みを生成し、それらを Hologres に保存する処理が含まれます。このプロセスは非同期で実行され、開始後すぐにレスポンスを返します。

AI に自然言語で依頼するだけです:

> このコードベースのインデックスを作成して

AI は自動的に index_codebase ツールを呼び出します。このツールは次のパラメーターをサポートします:

パラメーター

必須

デフォルト

説明

path

はい

なし

コードベースへの絶対パス。AI は自動的に現在の作業ディレクトリを使用します。

force

いいえ

false

強制的に再インデックスを作成するかどうか。

splitter

いいえ

ast

コードスプリッター:ast (AST ベース) または langchain (文字ベース)。

customExtensions

いいえ

なし

追加のファイル拡張子のリスト。例:[".vue", ".svelte"]

ignorePatterns

いいえ

なし

追加の無視パターンのリスト。

:インデックス作成時に追加のファイルタイプを含める。

> このコードベースのインデックスを作成し、.vue と .svelte ファイルを含めて

:強制的に再インデックスを作成する。

> 現在のコードベースのインデックスを強制的に再作成して

インデックス作成ステータス

バックグラウンドで実行されている間、いつでもインデックス作成の進捗を確認できます。AI は get_indexing_status ツールを呼び出します。

> インデックス作成のステータスを確認して

考えられるステータス:

ステータス

説明

indexed

インデックス作成が完了し、コードベースは検索可能です。インデックス化されたファイルとチャンクの数が表示されます。

indexing

インデックス作成が進行中です。完了率が表示されます。

indexfailed

インデックス作成が失敗しました。エラーメッセージが表示されます。インデックス作成コマンドを再実行できます。

not_found

コードベースはまだインデックスされていません。最初にインデックスコマンドを実行する必要があります。

インデックスのクリア

コードベースのインデックスデータをクリアする必要がある場合 (例えば、埋め込みモデルを切り替えた後など)、次のように依頼できます:

> 現在のコードベースのインデックスをクリアする

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つのオプションがあります:

方法 1CUSTOM_EXTENSIONS 環境変数でグローバルに設定します。

CUSTOM_EXTENSIONS=.vue,.svelte,.astro

方法 2:インデックス作成時に自然言語を使用して指定します。

> このコードベースのインデックスを作成し、.vue と .svelte ファイルを含めて

カスタム無視パターン

Code Context Hologres は、プロジェクト内の .gitignore.contextignore ファイル、およびグローバルな ~/.context/.contextignore ファイルを自動的に読み取ります。次の方法で追加の無視ルールを追加することもできます:

方法 1CUSTOM_IGNORE_PATTERNS 環境変数を使用します。

CUSTOM_IGNORE_PATTERNS=*.test.ts,__mocks__,*.generated.ts

方法 2:インデックス作成時に自然言語を使用して指定します。

> このコードベースのインデックスを作成し、.test.ts と __mocks__ ディレクトリを無視して

コードスプリッター

Code Context Hologres は 2 つのコードスプリッターをサポートしています:

スプリッター

説明

ユースケース

ast (デフォルト)

AST に基づくセマンティックなチャンク化で、コード構造を保持します。

推奨。より高品質なチャンクを生成します。

langchain

文字数に基づくチャンク化。

AST スプリッターが利用できない場合のフォールバックオプション。

通常、これを手動で指定する必要はありません。システムはデフォルトで ast スプリッターを使用し、必要に応じて自動的にフォールバックします。

よくある質問

Q1:インデックス作成中に DASHSCOPE_API_KEY が設定されていないというエラーが発生した場合はどうすればよいですか?

以下を確認してください:

  1. MCP 登録コマンドで -e DASHSCOPE_API_KEY=sk-xxx が正しく設定されていることを確認します。

  2. グローバル設定ファイルを使用している場合は、~/.context/.env ファイルが存在し、DASHSCOPE_API_KEY が含まれていることを確認します。

  3. API キーのフォーマットは sk- で始まる必要があります。

Q2:失敗したインデックス作成ジョブのトラブルシューティング方法は?

  1. [インデックス作成ステータスの確認] を使用して、エラーメッセージを表示します。

  2. 一般的な原因には、Hologres 接続の失敗 (HOLOGRES_HOSTHOLOGRES_USERHOLOGRES_PASSWORD を確認) や、無効な DashScope API キーまたは残高不足などがあります。

  3. インデックス作成が失敗した場合、手動でデータをクリアすることなく、インデックス作成コマンドを再実行できます。

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-hologres

Q7:別の埋め込みモデルプロバイダーに切り替えるにはどうすればよいですか?

EMBEDDING_PROVIDER 環境変数を変更します。例えば、ローカルモデル用に Ollama に切り替える場合:

EMBEDDING_PROVIDER=Ollama
OLLAMA_HOST=http://127.0.0.1:11434
OLLAMA_MODEL=nomic-embed-text

切り替えた後は、既存のインデックスをクリアし、コードベースのインデックスを再作成する必要があります。

Q8:インデックスできるチャンクの最大数はいくつですか?

1 つのコードベースでインデックスできるチャンクの最大数は 450,000 です。この制限に達すると、インデックス作成は自動的に停止し、通知が表示されます。

注意事項

  1. Node.js のバージョン制限:Node.js 20.x と 22.x のみがサポートされています。21.x、23.x、24.x などのバージョンは互換性がありません。

  2. API キーのセキュリティ:API キーをコードベースにハードコーディングしないでください。~/.context/.env のグローバル設定ファイルを使用するか、MCP クライアントの環境変数メカニズムを通じて認証情報を渡すことを推奨します。

  3. データセキュリティ:ベクトルデータは、ご利用の Alibaba Cloud アカウント下にある Hologres インスタンスに保存されます。Code Context Hologres は、お客様のコードコンテンツを保存または送信しません。

  4. モデルの切り替え:埋め込みモデルを変更した後は、ベクトル次元が異なる可能性があるため、インデックスをクリアしてコードベースのインデックスを再作成する必要があります。

  5. バージョンの更新:MCP サーバーのバージョンを更新した後は、再接続してください。Claude Code では /mcp reconnect code-context-hologres コマンドを使用し、Qwen Code ではサーバーを再起動します。

  6. 初回インデックス作成時間:大規模なコードベースを初めてインデックス作成する場合、コードベースのサイズと DashScope API の応答速度によっては、かなりの時間がかかることがあります。インデックス作成はバックグラウンドで実行され、このプロセス中に検索を開始できますが、結果は不完全な場合があります。

関連リソース