Gemini Researcher

io.github.capyBearista由 GitHub 帳號 capyBearista 發布v1.0.2更新於 Oct 24, 2026

Stateless MCP server that proxies research queries to Gemini CLI, reducing agent context/model usage

已驗證STDIO僅桌面開發者工具AI 與機器學習

概覽

AI 產生的概覽

一個本機、唯讀的 MCP 伺服器,把程式碼庫研究查詢交給 Gemini CLI 處理並回傳結構化 JSON,節省呼叫端代理的上下文與 token。

可以做什麼
對本機專案檔案執行快速或深度研究查詢,支援關注方向、回答風格選項以及模型回退鏈(flash、pro、auto)。梳理目錄結構並產生專案概覽。在執行成本較高的查詢前預先驗證檔案路徑。檢查伺服器與 Gemini CLI 的健康狀態,包括驗證診斷。從一小時快取中取得大型分塊回應的其餘部分。
適用情境
適合代理需要分析大型本機程式碼庫、審查架構或跨多個檔案做安全稽核,又不想把整個檔案複製進自身上下文的情境。也適合梳理陌生儲存庫和回答關於特定檔案的快速問題。
執行需求
透過 npx(Node.js 18+)或 Docker 映像以 stdio 在本機執行。需要安裝並驗證 Gemini CLI,可透過互動式 Google 登入或 GEMINI_API_KEY。選用的 Vertex AI 驗證使用 GOOGLE_APPLICATION_CREDENTIALS、GOOGLE_CLOUD_PROJECT 和 VERTEX_AI_PROJECT。PROJECT_ROOT 可覆寫專案目錄;原生 Windows 主機可能需要 Docker 或 WSL。
安裝前請注意
伺服器會把專案檔案和提示詞傳送給 Google 的 Gemini 服務,程式碼會離開本機。需要 Gemini API 金鑰或 Google 登入,若使用 Vertex AI 驗證還需服務帳戶憑證檔。預設唯讀並阻擋寫檔與 shell 工具,但設定 GEMINI_RESEARCHER_ENFORCE_ADMIN_POLICY=0 會削弱這些保障。路徑被限制在專案根目錄內。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Gemini Researcher,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Gemini Researcher

[NPM Version] [NPM Downloads] [License: BSD-3 Claude]

[圖片]

A lightweight, stateless MCP (Model Context Protocol) server that lets developer agents (Claude Code, GitHub Copilot) hand off deep repository analysis to the Gemini CLI. The server is read-only, returns structured JSON (as text content), and is designed to reduce the calling agent's context and model usage.

Status: v1 complete. Core features are stable, but still early days. Feedback welcome!

If this saved you tokens, ⭐ please consider giving it a star! :)

The primary goals:

  • Reduce agent context usage by letting Gemini CLI read large codebases locally and do its own research
  • Reduce calling-agent model usage by offloading heavy analysis to Gemini
  • Keep the server stateless and read-only for safety

Why use this?

Instead of copying entire files into your agent's context (burning tokens and cluttering the conversation), this server lets Gemini CLI read files directly from your project. Your agent sends a research query, Gemini reads and synthesizes using its large context window, and returns structured results. You save tokens, your agent stays focused, and complex codebase analysis becomes practical.

Verified clients: Claude Code, Cursor, VS Code (GitHub Copilot)

[!NOTE] It definitely works with other clients, but I haven't personally tested them yet. Please open an issue if you try it elsewhere!

Table of contents

Overview

Gemini Researcher accepts queries from your AI agent and uses Gemini CLI to analyze your local code files. Results are returned as formatted JSON for your agent to use.

Runtime safety

The server runs Gemini CLI with safety restrictions enabled. See docs/runtime-contract.md for full technical details.

Default invocation pattern:

bash
gemini [ -m <model> ] --output-format json --approval-mode default [--admin-policy <path>] -p "<prompt>"

Key safety points:

  • Uses --approval-mode default (not yolo mode) for controlled execution
  • Enforces read-only policy by default to prevent file changes
  • Policy blocks mutating tools like write_file, replace, run_shell_command
  • Strict enforcement can be disabled with GEMINI_RESEARCHER_ENFORCE_ADMIN_POLICY=0 (not recommended)

Auth and health check

Run health_check with includeDiagnostics: true to see auth status and server health.

authStatusWhat it meansImpact
configuredGemini CLI is authenticatedServer ready to use
unauthenticatedNo valid authentication foundServer marked as degraded
unknownCould not verify auth statusServer marked as degraded

health_check.status values:

  • ok: Gemini CLI is available, auth is working, and safety policy is enforced
  • degraded: Setup incomplete, auth unclear, or safety policy disabled

Prerequisites

  • Node.js 18+ installed
  • Gemini CLI installed: npm install -g @google/gemini-cli
  • Gemini CLI authenticated (recommended: gemini → Login with Google) or set GEMINI_API_KEY

Quick checks:

bash
node --versiongemini --version

Quickstart

Step 1: Validate environment

Run the setup wizard to verify Gemini CLI is installed and authenticated:

bash
npx gemini-researcher init

Step 2: Configure your MCP client

Standard config works in most of the tools:

json
{  "mcpServers": {    "gemini-researcher": {      "command": "npx",      "args": [        "gemini-researcher"      ]    }  }}

[!NOTE] On native Windows, some MCP hosts use shell-less process spawning and may not resolve npm command shims reliably (npx, gemini). If startup fails with launch errors (spawn ... ENOENT / GEMINI_CLI_LAUNCH_FAILED despite working in PowerShell), prefer Docker or WSL for immediate reliability. See the full remediation tree in docs/platforms/windows.md.

VS Code

Add to your VS Code MCP settings (create .vscode/mcp.json if needed):

json
{  "servers": {    "gemini-researcher": {      "command": "npx",      "args": [        "gemini-researcher"      ]    }  }}
Claude Code

Option 1: Command line (recommended)

Local (user-wide) scope

bash
# Add the MCP server via CLIclaude mcp add --transport stdio gemini-researcher -- npx gemini-researcher 
# Verify it was addedclaude mcp list

Project scope

Navigate to your project directory, then run:

bash
# Add the MCP server via CLIclaude mcp add --scope project --transport stdio gemini-researcher -- npx gemini-researcher
# Verify it was addedclaude mcp list

Option 2: Manual configuration

Add to .mcp.json in your project root (project scope):

json
{  "mcpServers": {    "gemini-researcher": {      "command": "npx",      "args": [        "gemini-researcher"      ]    }  }}

Or add to ~/.claude/settings.json for local scope.

After adding the server, restart Claude Code and use /mcp to verify the connection.

Cursor

Go to Cursor Settings -> Tools & MCP -> Add a Custom MCP Server. Add the following configuration:

json
{  "mcpServers": {    "gemini-researcher": {      "type": "stdio",      "command": "npx",      "args": [        "gemini-researcher"      ]    }  }}

[!NOTE] The server automatically uses the directory where the IDE opened your workspace as the project root or where your terminal is. To analyze a different directory, optionally set PROJECT_ROOT:

Example

json
{  "mcpServers": {    "gemini-researcher": {      "command": "npx",      "args": [        "gemini-researcher"      ],      "env": {        "PROJECT_ROOT": "/path/to/your/project"      }    }  }}

Step 3: Restart your MCP client

Step 4: Test it

Ask your agent: "Use gemini-researcher to analyze the project."

Tools

All tools return structured JSON (as MCP text content). Large responses are chunked (~10KB per chunk) and cached for 1 hour.

ToolPurposeWhen to use
quick_queryFast analysis with flash modelQuick questions about specific files or small code sections
deep_researchIn-depth analysis with pro modelComplex multi-file analysis, architecture reviews, security audits
analyze_directoryMap directory structureUnderstanding unfamiliar codebases, generating project overviews
validate_pathsPre-check file pathsVerify files exist before running expensive queries
health_checkDiagnosticsTroubleshooting server/Gemini CLI issues
fetch_chunkGet chunked responsesRetrieve remaining parts of large responses

Query tool fallback chains are family-aware:

  • quick_query: flash -> flash_lite -> auto
  • deep_research: pro -> flash -> flash_lite -> auto
  • analyze_directory: flash -> flash_lite -> auto

When using API-key auth, fallback also handles model-unavailable/unsupported errors (not only quota/capacity errors).

Example workflows

Understanding a security vulnerability:

Agent: Use deep_research to analyze authentication flow across @src/auth and @src/middleware, focusing on security

Quick code explanation:

Agent: Use quick_query to explain the login flow in @src/auth.ts, be concise

Mapping an unfamiliar codebase:

Agent: Use analyze_directory on src/ with depth 3 to understand the project structure
Full tool schemas (for reference)

quick_query

json
{  "prompt": "Explain @src/auth.ts login flow",  "focus": "security",  "responseStyle": "concise"}

deep_research

json
{  "prompt": "Analyze authentication across @src/auth and @src/middleware",  "focus": "architecture",  "citationMode": "paths_only"}

analyze_directory

json
{  "path": "src",  "depth": 3,  "maxFiles": 200}

validate_paths

json
{  "paths": ["src/auth.ts", "README.md"]}

health_check

json
{  "includeDiagnostics": true}

fetch_chunk

json
{  "cacheKey": "cache_abc123",  "chunkIndex": 2}

Docker

A pre-built multi-platform Docker image is available on Docker Hub:

bash
# 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

For MCP client configuration with Docker:

json
{  "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"      }    }  }}

[!NOTE]

  • The -i flag is required for stdio transport
  • The container mounts your project to /workspace (the project root)
  • Replace /path/to/your/project with your actual project path
  • Replace your-api-key with your actual Gemini API key (this is required for Docker usage)

Platform guides

Troubleshooting (common issues)

  • Remediation decision tree:
Error / signalRun this check firstChange this configuration next
GEMINI_CLI_LAUNCH_FAILED or spawn ... ENOENTgemini --help and npx --version in the same terminal profile used by your MCP hostPrefer Docker or WSL config. If staying native, point host command to a stable shim/binary path and restart host.
health_check warning: "resolves only through cmd /c fallback"Run health_check with includeDiagnostics: true and inspect diagnostics.resolutionUpdate host config to launch the reported .cmd shim directly instead of relying on cmd /c fallback.
MCP host cannot launch server via npxnpx --versionChange host server command from npx gemini-researcher to installed binary path (or Docker transport).
ADMIN_POLICY_UNSUPPORTED / output format unsupportedgemini --help and confirm --admin-policy, json, stream-jsonUpgrade Gemini CLI to v0.36.0+
AUTH_MISSING / AUTH_UNKNOWNgemini interactive login and rerun health_checkAuthenticate Gemini CLI or set GEMINI_API_KEY
  • GEMINI_CLI_NOT_FOUND: Install Gemini CLI: npm install -g @google/gemini-cli
  • GEMINI_CLI_LAUNCH_FAILED: This is a launch-path issue, not an auth/capability issue. On Windows, command shims can fail in shell-less spawn contexts. Validate gemini --help and npx --version interactively, then prefer Docker or WSL if host launch mode is strict.
  • GEMINI_RESEARCHER_GEMINI_COMMAND: Override the Gemini command name/path used by the server (for wrappers or pinned binary locations).
  • GEMINI_RESEARCHER_GEMINI_ARGS_PREFIX: Prefix extra Gemini args for every invocation (for example --config <file>).
  • health_check diagnostics redact sensitive token-like values in configured args prefix output.
  • AUTH_MISSING: Run gemini, and authenticate or set GEMINI_API_KEY
  • AUTH_UNKNOWN: Auth could not be confirmed (often network/CLI probe failure). If launch errors are present, fix launch-path first; otherwise verify gemini works interactively, then retry.
  • ADMIN_POLICY_MISSING: Reinstall package or verify policies/read-only-enforcement.toml exists in installed package.
  • ADMIN_POLICY_UNSUPPORTED: Upgrade Gemini CLI to v0.36.0+ (gemini --help should include --admin-policy).
  • Capability errors (ADMIN_POLICY_UNSUPPORTED, output format unsupported) should be interpreted only after a successful gemini --help probe. If probe launch fails, treat it as launch-path failure first.
  • GEMINI_RESEARCHER_ENFORCE_ADMIN_POLICY=0: Disables strict startup policy checks. This reduces safety guarantees.
  • .gitignore blocking files: Gemini respects .gitignore by default; toggle fileFiltering.respectGitIgnore in gemini /settings if you intentionally want ignored files included (note: this changes Gemini behavior globally)
  • PATH_NOT_ALLOWED: All @path references must resolve inside the configured project root (process.cwd() by default). Use validate_paths to pre-check paths.
  • QUOTA_EXCEEDED: Server retries with fallback models; if all options are exhausted, reduce scope (use quick_query) or wait for quota reset.

Contributing

Read the Contributing Guide to get started.

Quick links:

License

BSD-3-Clause License


Made with ♡ for the AI-assisted dev community

來源:README.md,提交 a9c555f

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.0.2最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分