mcpField
G
gemini-researcher

gemini-researcher

本地服务
github.com/capyBearista开发工具028 周前更新

关于 gemini-researcher

Gemini Researcher 是无状态、只读的 MCP 服务,将代码库研究请求交给 Gemini CLI。它面向需要分析本地代码的开发者 Agent,并帮助减少调用 Agent 的上下文和模型用量。

主要功能

  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 配图

一款轻量、无状态的 MCP(模型上下文协议)服务,可让开发者 Agent(Claude Code、GitHub Copilot)将深度代码仓库分析交由 Gemini CLI 处理。该服务为只读模式,以文本形式返回结构化 JSON,旨在减少调用方 Agent 的上下文和模型用量。

状态:v1 已完成。核心功能稳定,但项目仍处于早期阶段。欢迎反馈!

如果它帮你节省了令牌, ⭐ 请考虑点个星!:)

主要目标:

  • 让 Gemini CLI 在本地读取大型代码库并自行研究,从而减少 Agent 的上下文用量
  • 将繁重的分析工作交给 Gemini,从而减少调用方 Agent 的模型用量
  • 保持服务无状态且只读,以确保安全

为什么要使用它?

无需将整个文件复制到 Agent 的上下文中(浪费令牌并让对话变得杂乱),此服务可让 Gemini CLI 直接读取项目中的文件。你的 Agent 发送研究查询,Gemini 利用其大型上下文窗口读取并综合信息,然后返回结构化结果。这样既能节省令牌,也能让 Agent 保持专注,并让复杂的代码库分析变得切实可行。

已验证的客户端: Claude Code、Cursor、VS Code(GitHub Copilot)

说明

它肯定也能与其他客户端配合使用,但我还没有亲自测试过。如果你在其他客户端上试用,请提交 issue!

目录

概览

Gemini Researcher 接收 AI Agent 的查询,并使用 Gemini CLI 分析本地代码文件。结果将以格式化的 JSON 返回,供 Agent 使用。

运行时安全

该服务在启用安全限制的情况下运行 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 禁用严格强制(不推荐)
身份验证和运行状况检查

运行 health_check 并设置 includeDiagnostics: true,即可查看身份验证状态和服务运行状况。

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 主机使用不带 shell 的进程启动方式,可能无法可靠地解析 npm 命令 shim(npx、gemini)。 如果启动时出现错误(spawn ... ENOENT / GEMINI_CLI_LAUNCH_FAILED,但在 PowerShell 中运行正常),建议使用 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:测试

向 Agent 提问:“使用 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 -> 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 Hub 获取预构建的多平台 Docker 镜像:

# 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 ... ENOENT在 MCP 宿主使用的同一终端配置文件中运行 gemini --help 和 npx --version优先使用 Docker 或 WSL 配置。如果坚持使用原生模式,请将宿主命令指向稳定的 shim / 二进制文件路径,然后重启宿主。
health_check 警告:“仅通过 cmd /c 回退解析”使用 includeDiagnostics: true 运行 health_check,并检查 diagnostics.resolution更新宿主配置,直接启动报告的 .cmd shim,而不是依赖 cmd /c 回退。
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-cli
  • GEMINI_CLI_LAUNCH_FAILED:这是启动路径问题,而非身份验证 / 功能问题。在 Windows 上,命令 shim 在无 shell 的启动上下文中可能会失败。以交互方式验证 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)。
  • 只有在成功探测 gemini --help 后,才应解读功能错误(ADMIN_POLICY_UNSUPPORTED、不支持输出格式)。如果探测启动失败,应先将其视为启动路径故障。
  • 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 辅助开发社区倾心打造 ♡

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。