
Gemini Researcher
io.github.capyBearistaPublished by GitHub account capyBearistav1.0.2Updated Oct 24, 2026
Stateless MCP server that proxies research queries to Gemini CLI, reducing agent context/model usage
Overview
A local, read-only MCP server that hands codebase research queries to the Gemini CLI and returns structured JSON, saving the calling agent's context and tokens.
- What you can do
- Run quick or deep research queries over local project files, with focus and response-style options and model fallback chains (flash, pro, auto). Map a directory's structure and generate project overviews. Pre-check file paths before running expensive queries. Check server and Gemini CLI health, including auth diagnostics. Retrieve remaining parts of large chunked responses from a one-hour cache.
- When to use it
- Useful when an agent needs to analyze a large local codebase, review architecture, or audit security across many files without copying whole files into its own context. Also handy for mapping unfamiliar repositories and answering quick questions about specific files.
- Requirements
- Runs locally over stdio via npx (Node.js 18+) or a Docker image. Requires the Gemini CLI installed and authenticated, either through interactive Google login or a GEMINI_API_KEY. Optional Vertex AI auth uses GOOGLE_APPLICATION_CREDENTIALS, GOOGLE_CLOUD_PROJECT and VERTEX_AI_PROJECT. PROJECT_ROOT overrides the project directory; native Windows hosts may need Docker or WSL.
Installation
In SourceWeft
- Open Gemini Researcher in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Gemini Researcher
[NPM Version] [NPM Downloads] [License: BSD-3 Claude]
[Image]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:
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.
health_check.status values:
ok: Gemini CLI is available, auth is working, and safety policy is enforceddegraded: 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 setGEMINI_API_KEY
Quick checks:
Quickstart
Step 1: Validate environment
Run the setup wizard to verify Gemini CLI is installed and authenticated:
Step 2: Configure your MCP client
Standard config works in most of the tools:
[!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_FAILEDdespite working in PowerShell), prefer Docker or WSL for immediate reliability. See the full remediation tree indocs/platforms/windows.md.
VS Code
Add to your VS Code MCP settings (create .vscode/mcp.json if needed):
Claude Code
Option 1: Command line (recommended)
Local (user-wide) scope
Project scope
Navigate to your project directory, then run:
Option 2: Manual configuration
Add to .mcp.json in your project root (project scope):
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:
[!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
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.
Query tool fallback chains are family-aware:
quick_query:flash -> flash_lite -> autodeep_research:pro -> flash -> flash_lite -> autoanalyze_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:
Quick code explanation:
Mapping an unfamiliar codebase:
Full tool schemas (for reference)
quick_query
deep_research
analyze_directory
validate_paths
health_check
fetch_chunk
Docker
A pre-built multi-platform Docker image is available on Docker Hub:
For MCP client configuration with Docker:
[!NOTE]
- The
-iflag is required for stdio transport- The container mounts your project to
/workspace(the project root)- Replace
/path/to/your/projectwith your actual project path- Replace
your-api-keywith your actual Gemini API key (this is required for Docker usage)
Platform guides
- Native Windows launch model and remediation:
docs/platforms/windows.md
Troubleshooting (common issues)
- Remediation decision tree:
GEMINI_CLI_NOT_FOUND: Install Gemini CLI:npm install -g @google/gemini-cliGEMINI_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. Validategemini --helpandnpx --versioninteractively, 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_checkdiagnostics redact sensitive token-like values in configured args prefix output.AUTH_MISSING: Rungemini, and authenticate or setGEMINI_API_KEYAUTH_UNKNOWN: Auth could not be confirmed (often network/CLI probe failure). If launch errors are present, fix launch-path first; otherwise verifygeminiworks interactively, then retry.ADMIN_POLICY_MISSING: Reinstall package or verifypolicies/read-only-enforcement.tomlexists in installed package.ADMIN_POLICY_UNSUPPORTED: Upgrade Gemini CLI to v0.36.0+ (gemini --helpshould include--admin-policy).- Capability errors (
ADMIN_POLICY_UNSUPPORTED, output format unsupported) should be interpreted only after a successfulgemini --helpprobe. 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..gitignoreblocking files: Gemini respects.gitignoreby default; togglefileFiltering.respectGitIgnoreingemini /settingsif you intentionally want ignored files included (note: this changes Gemini behavior globally)PATH_NOT_ALLOWED: All@pathreferences must resolve inside the configured project root (process.cwd()by default). Usevalidate_pathsto pre-check paths.QUOTA_EXCEEDED: Server retries with fallback models; if all options are exhausted, reduce scope (usequick_query) or wait for quota reset.
Contributing
Read the Contributing Guide to get started.
Quick links:
License
Made with ♡ for the AI-assisted dev community
Source: README.md at commit a9c555f
Tools
0Version history
1- v1.0.2LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts