gemini-researcher について
Gemini Researcherは、リポジトリの調査クエリをGemini CLIに渡す、ステートレスで読み取り専用のMCPサーバーです。ローカルコードを分析しつつ、呼び出し元エージェントのコンテキストとモデル使用量を抑えたい開発者向けです。
主な機能
- 01高速・詳細なリポジトリ調査
- 02ディレクトリ構造の分析
- 03読み取り専用の安全ポリシー
- 04構造化JSONの結果
- 05ヘルスチェックとパス検証
- 06分割レスポンスの取得
活用シーン
- 01複数ファイルにまたがる設計のレビュー
- 02認証コードのセキュリティ監査
- 03不慣れなコードベースの構成把握
- 04特定ファイルやコード箇所の説明
MCP 対応
リポジトリ調査、ディレクトリ分析、パス検証、ヘルスチェック、分割結果の取得に使うツールを公開します。MCPクライアントからの調査依頼をGemini CLIに渡します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y gemini-researcherGEMINI_API_KEYシークレットGemini API key (optional if you already authenticated Gemini CLI via "gemini" login)PROJECT_ROOTOverride the project root directory used for path validation (defaults to current working directory)RESPONSE_CHUNK_SIZE_KBChunk size threshold (KB) for large responses (default: 10)CACHE_TTL_MSChunk cache TTL in milliseconds (default: 3600000 / 1 hour)DEBUGEnable debug logging (set to "true" or "1")GOOGLE_APPLICATION_CREDENTIALSシークレットVertex AI / Google auth: path to a service account JSON credentials fileGOOGLE_CLOUD_PROJECTVertex AI / Google auth: GCP project ID (used by some auth configurations)VERTEX_AI_PROJECTVertex AI / Google auth: Vertex AI project identifier (used by some auth configurations)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Gemini Researcher
開発者向けエージェント(Claude Code、GitHub Copilot)が、Gemini CLI に詳細なリポジトリ分析を委任できる、軽量でステートレスな MCP(Model Context Protocol)サーバーです。このサーバーは読み取り専用で、構造化された JSON(テキストコンテンツとして)を返し、呼び出し元のエージェントのコンテキストとモデルの使用量を削減するよう設計されています。
ステータス:v1 完了。コア機能は安定していますが、まだ初期段階です。フィードバックをお待ちしています!
トークンの節約に役立った場合は、 ⭐ ぜひスターを付けてください! :)
主な目標:
- Gemini CLI が大規模なコードベースをローカルで読み取り、独自に調査できるようにして、エージェントのコンテキスト使用量を削減する
- 負荷の高い分析を Gemini に委任し、呼び出し元エージェントのモデル使用量を削減する
- 安全性のため、サーバーをステートレスかつ読み取り専用に保つ
これを使う理由
ファイル全体をエージェントのコンテキストにコピーする(トークンを消費し、会話を煩雑にする)のではなく、このサーバーを使えば Gemini CLI がプロジェクトからファイルを直接読み取れます。エージェントが調査クエリを送信すると、Gemini は大きなコンテキストウィンドウを使ってファイルを読み取り、情報を統合して、構造化された結果を返します。トークンを節約でき、エージェントは本来の作業に集中できるため、複雑なコードベースの分析が実用的になります。
動作確認済みのクライアント: Claude Code、Cursor、VS Code(GitHub Copilot)
メモ
ほかのクライアントでも確実に動作しますが、まだ個人的にはテストしていません。ほかの環境で試した場合は、Issue を作成してください!
目次
概要
Gemini Researcher は AI エージェントからのクエリを受け取り、Gemini CLI を使ってローカルのコードファイルを分析します。結果は、エージェントが利用できる形式の JSON として返されます。
実行時の安全性
このサーバーは、安全制限を有効にした状態で Gemini CLI を実行します。詳しい技術情報については、docs/runtime-contract.md を参照してください。
デフォルトの呼び出しパターン:
gemini [ -m <model> ] --output-format json --approval-mode default [--admin-policy <path>] -p "<prompt>"
主な安全対策:
- 制御された実行のために
--approval-mode defaultを使用します(yolo モードではありません) - ファイル変更を防止するため、デフォルトで読み取り専用ポリシーを適用します
- ポリシーにより、
write_file、replace、run_shell_commandなどの変更を伴うツールがブロックされます GEMINI_RESEARCHER_ENFORCE_ADMIN_POLICY=0で厳格な適用を無効にできます(推奨されません)
認証とヘルスチェック
includeDiagnostics: true を指定して health_check を実行すると、認証ステータスとサーバーの健全性を確認できます。
| authStatus | 意味 | 影響 |
|---|---|---|
configured | Gemini CLI は認証済みです | サーバーを使用する準備ができています |
unauthenticated | 有効な認証情報が見つかりません | サーバーは縮退状態としてマークされます |
unknown | 認証ステータスを確認できませんでした | サーバーは縮退状態としてマークされます |
health_check.status の値:
ok:Gemini CLI が利用可能で、認証が機能しており、安全ポリシーが適用されていますdegraded:セットアップが未完了、認証状態が不明、または安全ポリシーが無効です
前提条件
- Node.js 18+ がインストールされていること
- Gemini CLI がインストールされていること:
npm install -g @google/gemini-cli - Gemini CLI で認証済みであること(推奨:
gemini→ Google でログイン)、またはGEMINI_API_KEYを設定していること
簡単な確認:
node --version
gemini --version
クイックスタート
ステップ 1:環境を確認する
セットアップウィザードを実行して、Gemini CLI がインストールされ、認証済みであることを確認します:
npx gemini-researcher init
ステップ 2:MCP クライアントを設定する
標準設定は、ほとんどのツールで使用できます:
{
"mcpServers": {
"gemini-researcher": {
"command": "npx",
"args": [
"gemini-researcher"
]
}
}
}
メモ
Windows ネイティブ環境では、一部の MCP ホストがシェルを介さずにプロセスを起動するため、npm コマンドのシム(
npx、gemini)を正常に解決できない場合があります。 PowerShell では動作するのに起動エラー(spawn ... ENOENT/GEMINI_CLI_LAUNCH_FAILED)が発生する場合は、すぐに安定して利用するために Docker または WSL を推奨します。 対応策の全容については、docs/platforms/windows.mdを参照してください。
VS Code
VS Code の MCP 設定に追加します(必要に応じて .vscode/mcp.json を作成してください):
{
"servers": {
"gemini-researcher": {
"command": "npx",
"args": [
"gemini-researcher"
]
}
}
}
Claude Code
オプション 1:コマンドライン(推奨)
ローカル(ユーザー全体)スコープ
# Add the MCP server via CLI
claude mcp add --transport stdio gemini-researcher -- npx gemini-researcher
# Verify it was added
claude mcp list
プロジェクトスコープ
プロジェクトディレクトリに移動してから、次を実行します:
# Add the MCP server via CLI
claude mcp add --scope project --transport stdio gemini-researcher -- npx gemini-researcher
# Verify it was added
claude mcp list
オプション 2:手動設定
プロジェクトルートの .mcp.json に追加します(プロジェクトスコープ):
{
"mcpServers": {
"gemini-researcher": {
"command": "npx",
"args": [
"gemini-researcher"
]
}
}
}
または、ローカルスコープの場合は ~/.claude/settings.json に追加します。
サーバーを追加したら、Claude Code を再起動し、/mcp を使って接続を確認します。
Cursor
Cursor Settings -> Tools & MCP -> Add a Custom MCP Server に移動します。次の設定を追加してください:
{
"mcpServers": {
"gemini-researcher": {
"type": "stdio",
"command": "npx",
"args": [
"gemini-researcher"
]
}
}
}
メモ
サーバーは、IDE でワークスペースを開いたディレクトリ、またはターミナルの現在のディレクトリをプロジェクトルートとして自動的に使用します。別のディレクトリを分析する場合は、必要に応じて
PROJECT_ROOTを設定してください:
例
{
"mcpServers": {
"gemini-researcher": {
"command": "npx",
"args": [
"gemini-researcher"
],
"env": {
"PROJECT_ROOT": "/path/to/your/project"
}
}
}
}
ステップ 3:MCP クライアントを再起動する
ステップ 4:テストする
エージェントに「gemini-researcher を使ってプロジェクトを分析してください」と依頼します。
ツール
すべてのツールは、構造化された JSON(MCP テキストコンテンツとして)を返します。大きなレスポンスはチャンク(各約 10KB)に分割され、1 時間キャッシュされます。
| ツール | 目的 | 使用する場面 |
|---|---|---|
quick_query | flash モデルによる高速分析 | 特定のファイルや小規模なコードセクションについての簡単な質問 |
deep_research | pro モデルによる詳細な分析 | 複数ファイルにまたがる複雑な分析、アーキテクチャレビュー、セキュリティ監査 |
analyze_directory | ディレクトリ構造のマッピング | 不慣れなコードベースの把握、プロジェクト概要の作成 |
validate_paths | ファイルパスの事前チェック | 負荷の高いクエリを実行する前にファイルの存在を確認 |
health_check | 診断 | サーバー/Gemini CLI の問題のトラブルシューティング |
fetch_chunk | 分割されたレスポンスの取得 | 大きなレスポンスの残りの部分を取得 |
クエリツールのフォールバックチェーンは、モデルファミリーに応じて動作します:
quick_query:flash -> flash_lite -> autodeep_research:pro -> flash -> flash_lite -> autoanalyze_directory:flash -> flash_lite -> auto
API キー認証を使用する場合、フォールバックはクォータ/容量に関するエラーだけでなく、モデルが利用できない/サポートされていないエラーにも対応します。
ワークフローの例
セキュリティ脆弱性の把握:
Agent: Use deep_research to analyze authentication flow across @src/auth and @src/middleware, focusing on security
コードの簡単な解説:
Agent: Use quick_query to explain the login flow in @src/auth.ts, be concise
不慣れなコードベースのマッピング:
Agent: Use analyze_directory on src/ with depth 3 to understand the project structure
ツールスキーマの全容(参考)
quick_query
{
"prompt": "Explain @src/auth.ts login flow",
"focus": "security",
"responseStyle": "concise"
}
deep_research
{
"prompt": "Analyze authentication across @src/auth and @src/middleware",
"focus": "architecture",
"citationMode": "paths_only"
}
analyze_directory
{
"path": "src",
"depth": 3,
"maxFiles": 200
}
validate_paths
{
"paths": ["src/auth.ts", "README.md"]
}
health_check
{
"includeDiagnostics": true
}
fetch_chunk
{
"cacheKey": "cache_abc123",
"chunkIndex": 2
}
Docker
ビルド済みのマルチプラットフォーム Docker イメージを Docker Hub で利用できます:
# Pull the image (works on Intel/AMD and Apple Silicon)
docker pull capybearista/gemini-researcher:latest
# Run the server (mount your project and provide API key)
docker run -i --rm \
-e GEMINI_API_KEY="your-api-key" \
-v /path/to/your/project:/workspace \
capybearista/gemini-researcher:latest
Docker を使った MCP クライアントの設定:
{
"mcpServers": {
"gemini-researcher": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "GEMINI_API_KEY",
"-v", "/path/to/your/project:/workspace",
"capybearista/gemini-researcher:latest"
],
"env": {
"GEMINI_API_KEY": "your-api-key-here"
}
}
}
}
メモ
- stdio トランスポートには
-iフラグが必要です- コンテナはプロジェクトを
/workspace(プロジェクトルート)にマウントします/path/to/your/projectを実際のプロジェクトパスに置き換えてくださいyour-api-keyを実際の Gemini API キーに置き換えてください(Docker の使用には必須です)
プラットフォームガイド
- Windows のネイティブ起動モデルと問題の解決方法:
docs/platforms/windows.md
トラブルシューティング(よくある問題)
- 問題解決の判断ツリー:
| エラー/シグナル | 最初に実行する確認 | 次に変更する設定 |
|---|---|---|
GEMINI_CLI_LAUNCH_FAILED または spawn ... ENOENT | MCP ホストで使用しているものと同じターミナルプロファイルで gemini --help と npx --version を実行します | Docker または WSL の設定を優先します。ネイティブのまま使用する場合は、ホストのコマンドを安定した shim/バイナリパスに指定して、ホストを再起動します。 |
health_check 警告:「cmd /c フォールバックでのみ解決されます」 | includeDiagnostics: true を指定して health_check を実行し、diagnostics.resolution を確認します | cmd /c フォールバックに依存せず、報告された .cmd shim を直接起動するようホストの設定を更新します。 |
MCP ホストが npx 経由でサーバーを起動できない | npx --version | ホストのサーバーコマンドを npx gemini-researcher からインストール済みバイナリのパス(または Docker トランスポート)に変更します。 |
ADMIN_POLICY_UNSUPPORTED /出力形式がサポートされていない | gemini --help を実行し、--admin-policy、json、stream-json があることを確認します | Gemini CLI を v0.36.0 以降にアップグレードします |
AUTH_MISSING / AUTH_UNKNOWN | Gemini に対話形式でログインし、health_check を再実行します | Gemini CLI を認証するか、GEMINI_API_KEY を設定します |
GEMINI_CLI_NOT_FOUND:Gemini CLI をインストールします:npm install -g @google/gemini-cliGEMINI_CLI_LAUNCH_FAILED:これは起動パスの問題であり、認証/機能の問題ではありません。Windows では、シェルを介さない起動コンテキストでコマンド shim が失敗することがあります。対話形式でgemini --helpとnpx --versionが動作することを確認してから、ホストの起動モードに厳しい制約がある場合は Docker または WSL を優先してください。GEMINI_RESEARCHER_GEMINI_COMMAND:サーバーが使用する Gemini コマンド名/パスを上書きします(ラッパーまたは固定したバイナリの場所を指定する場合)。GEMINI_RESEARCHER_GEMINI_ARGS_PREFIX:すべての呼び出しに追加の Gemini 引数を先頭に付加します(例:--config <file>)。health_checkの診断では、設定された引数プレフィックスの出力に含まれる、トークンに類似した機密値がマスキングされます。AUTH_MISSING:geminiを実行して認証するか、GEMINI_API_KEYを設定しますAUTH_UNKNOWN:認証を確認できませんでした(多くの場合、ネットワーク/CLI のプローブに失敗しています)。起動エラーがある場合は、まず起動パスを修正してください。それ以外の場合は、対話形式でgeminiが動作することを確認してから、再試行してください。ADMIN_POLICY_MISSING:パッケージを再インストールするか、インストール済みパッケージにpolicies/read-only-enforcement.tomlが存在することを確認します。ADMIN_POLICY_UNSUPPORTED:Gemini CLI を v0.36.0 以降にアップグレードします(gemini --helpに--admin-policyが含まれている必要があります)。- 機能に関するエラー(
ADMIN_POLICY_UNSUPPORTED、出力形式がサポートされていない)は、gemini --helpのプローブが成功した後にのみ判断してください。プローブの起動に失敗した場合は、まず起動パスの問題として扱います。 GEMINI_RESEARCHER_ENFORCE_ADMIN_POLICY=0:起動時の厳格なポリシーチェックを無効にします。これにより安全性の保証が低下します。.gitignoreによるファイルのブロック:Gemini はデフォルトで.gitignoreを尊重します。無視されたファイルを意図的に含める場合は、gemini /settingsでfileFiltering.respectGitIgnoreを切り替えてください(注:Gemini の動作が全体的に変わります)。PATH_NOT_ALLOWED:すべての@path参照は、設定されたプロジェクトルート(デフォルトではprocess.cwd())内で解決される必要があります。事前にパスを確認するにはvalidate_pathsを使用してください。QUOTA_EXCEEDED:サーバーはフォールバックモデルで再試行します。すべての選択肢を使い切った場合は、範囲を縮小する(quick_queryを使用する)か、クォータがリセットされるまで待ってください。
貢献
はじめに、貢献ガイドをお読みください。
クイックリンク:
ライセンス
AI 支援開発コミュニティのために♡を込めて作成
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。