mcpField
G
gemini-researcher

gemini-researcher

ローカル
github.com/capyBearista開発ツール028 週間前に更新

gemini-researcher について

Gemini Researcherは、リポジトリの調査クエリをGemini CLIに渡す、ステートレスで読み取り専用のMCPサーバーです。ローカルコードを分析しつつ、呼び出し元エージェントのコンテキストとモデル使用量を抑えたい開発者向けです。

主な機能

  1. 01高速・詳細なリポジトリ調査
  2. 02ディレクトリ構造の分析
  3. 03読み取り専用の安全ポリシー
  4. 04構造化JSONの結果
  5. 05ヘルスチェックとパス検証
  6. 06分割レスポンスの取得

活用シーン

  1. 01複数ファイルにまたがる設計のレビュー
  2. 02認証コードのセキュリティ監査
  3. 03不慣れなコードベースの構成把握
  4. 04特定ファイルやコード箇所の説明

MCP 対応

リポジトリ調査、ディレクトリ分析、パス検証、ヘルスチェック、分割結果の取得に使うツールを公開します。MCPクライアントからの調査依頼をGemini CLIに渡します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"capybearista-gemini-researcher": {
"command": "npx",
"args": [
"-y",
"gemini-researcher"
],
"env": {
"GEMINI_API_KEY": "<GEMINI_API_KEY>",
"PROJECT_ROOT": "<PROJECT_ROOT>",
"RESPONSE_CHUNK_SIZE_KB": "<RESPONSE_CHUNK_SIZE_KB>",
"CACHE_TTL_MS": "<CACHE_TTL_MS>",
"DEBUG": "<DEBUG>",
"GOOGLE_APPLICATION_CREDENTIALS": "<GOOGLE_APPLICATION_CREDENTIALS>",
"GOOGLE_CLOUD_PROJECT": "<GOOGLE_CLOUD_PROJECT>",
"VERTEX_AI_PROJECT": "<VERTEX_AI_PROJECT>"
}
}
}
}
起動コマンドnpx -y gemini-researcher
設定が必要な環境変数
GEMINI_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 file
GOOGLE_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmgemini-researcher1.0.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Gemini Researcher

NPM Version NPM Downloads License: BSD-3 Claude

README の画像

開発者向けエージェント(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意味影響
configuredGemini 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_queryflash モデルによる高速分析特定のファイルや小規模なコードセクションについての簡単な質問
deep_researchpro モデルによる詳細な分析複数ファイルにまたがる複雑な分析、アーキテクチャレビュー、セキュリティ監査
analyze_directoryディレクトリ構造のマッピング不慣れなコードベースの把握、プロジェクト概要の作成
validate_pathsファイルパスの事前チェック負荷の高いクエリを実行する前にファイルの存在を確認
health_check診断サーバー/Gemini CLI の問題のトラブルシューティング
fetch_chunk分割されたレスポンスの取得大きなレスポンスの残りの部分を取得

クエリツールのフォールバックチェーンは、モデルファミリーに応じて動作します:

  • quick_query:flash -> flash_lite -> auto
  • deep_research:pro -> flash -> flash_lite -> auto
  • analyze_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 の使用には必須です)

プラットフォームガイド

トラブルシューティング(よくある問題)

  • 問題解決の判断ツリー:
エラー/シグナル最初に実行する確認次に変更する設定
GEMINI_CLI_LAUNCH_FAILED または spawn ... ENOENTMCP ホストで使用しているものと同じターミナルプロファイルで 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_UNKNOWNGemini に対話形式でログインし、health_check を再実行しますGemini CLI を認証するか、GEMINI_API_KEY を設定します
  • GEMINI_CLI_NOT_FOUND:Gemini CLI をインストールします:npm install -g @google/gemini-cli
  • GEMINI_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 を使用する)か、クォータがリセットされるまで待ってください。

貢献

はじめに、貢献ガイドをお読みください。

クイックリンク:

ライセンス

BSD-3-Clause ライセンス


AI 支援開発コミュニティのために♡を込めて作成

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。