# Reported issues for google-researcher

Pod holds 20 of 85 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [google-researcher](/mcp/google-researcher).

## Most discussed

### Enhance MCP Testing Suite with Best Practices

## Summary

Implement comprehensive MCP testing best practices to improve test coverage, reliability, and protocol compliance based on official MCP documentation and industry standards.

## Background

Research into MCP testing best practices from [modelcontextprotocol.info](https://modelcontextprotocol.info/docs/best-practices/) and related resources reveals several opportunities to enhance our testing infrastructure.

## Recommended Improvements

### 1. Multi-Layer Testing Architecture

**Unit

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/77) · 2026-02-09 · closed · 4 comments

### Test MCP Inspector compatibility

## Summary
Verify the server works correctly with the official [MCP Inspector](https://inspector.modelcontextprotocol.io/) tool.

## Why This Matters
MCP Inspector is the official testing/debugging tool for MCP servers. Ensuring compatibility:
- Validates MCP spec compliance
- Provides confidence in interoperability
- Identifies issues before users encounter them
- Serves as documentation for expected behavior

## Test Checklist

### Tools Discovery
- [ ] All 5 tools listed in Inspector's tool p

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/62) · 2026-02-08 · closed · 4 comments

### google discontinuing "entire web" search

### Area

New MCP tool

### Problem or motivation

I think this will effect the mcp.
https://support.google.com/programmable-search/answer/12397162

> Full web search via the "Search the entire web" feature will be discontinued on January 1, 2027. Please update your search engine to specify specific sites to search.

### Proposed solution

don't know

### Alternatives considered

perplexity

### Would you be willing to contribute this?

None

### Additional context

_No response_

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/107) · 2026-04-30 · closed · outside contributor · 3 comments

### Split server.ts into modules

## Summary
Split the monolithic `server.ts` (2,677 lines / 111KB) into focused modules for better maintainability, testability, and extensibility.

> **Note (2026-02-09):** This file has grown significantly since the issue was created. Originally 1200+ lines, it is now 2,677 lines, making modularization increasingly important.

## Current State
`src/server.ts` handles:
- MCP server configuration
- Cache initialization
- HTTP routing and middleware
- OAuth validation
- Tool registration (8 tools:

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/40) · 2026-02-08 · closed · 3 comments

### scrape tool fail

Using latest version in npx. Getting this.

⏺ The scrape tool isn't returning visible content. Let me use analyze_with_gemini with the search context, and also try the research tool with a more specific query.

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/91) · 2026-02-11 · closed · outside contributor · 2 comments

### Add content size optimization and smart truncation

## Problem

When using `scrape_page` or `search_and_scrape`, responses often exceed 50-100k tokens:

```
⚠ Large MCP response (~65.3k tokens), this can fill up context quickly
```

This creates several issues:
- **Context exhaustion**: A single tool call can consume 50%+ of available context
- **Reduced reasoning capacity**: Less room for the LLM to analyze and respond
- **Wasted tokens**: Much of the scraped content may be irrelevant to the query
- **Poor UX**: Users hit context limits mid-conv

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/79) · 2026-02-09 · closed · 2 comments

### Add distributed Redis caching support

## Description
Support Redis as an optional cache backend for multi-instance deployments. The cache interface (IPersistenceManager) already exists — implement a Redis adapter.

## What to do
- Implement RedisIPersistenceManager adapter
- Configure via REDIS_URL environment variable
- Fall back to disk persistence when Redis is unavailable
- Support all existing cache operations (get, set, invalidate, clear)

## Priority
Low — only needed for multi-instance/horizontal scaling

## References
- TOD

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/72) · 2026-02-08 · closed · 2 comments

### Support alternative search engines (Brave, Exa, Tavily)

## Description
Add a pluggable search backend architecture supporting multiple search engines with fallback.

## What to do
- Define a search provider interface
- Implement adapters for: Brave Search API, Exa API, Tavily API
- Fallback chain: if primary engine fails or rate limits, try next
- Configurable via environment variables

## Priority
Low — nice-to-have for resilience and flexibility

## References
- TODO.md item P4.4

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/55) · 2026-02-08 · closed · 2 comments

## Most recent

### Orphan detection fails when spawned via npx — all three health checks defeated by intermediate npm process

## Summary

Orphaned `google-researcher-mcp` processes spin at 100% CPU indefinitely after the parent MCP client (Claude Code) exits. The health check introduced in v6.2.0-v6.2.3 does not detect the orphan state when the server is launched via `npx` (which interposes an `npm` wrapper process between the MCP client and the `node` worker).

## Environment

- google-researcher-mcp 6.2.3 (npm)
- Node v25.9.0
- macOS Darwin arm64 (launchd as PID 1)
- MCP client: Claude Code (spawns server via `npx go

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/108) · 2026-05-06 · closed · outside contributor · 1 comment

### v6.2.0 PID lock kills concurrent healthy instances

The PID lock added in v6.2.0 (commit `5405b24d`) assumes only one MCP server instance can exist per install. When a client like Claude Code spawns two instances within a few seconds, the newer one reads `storage/.server.pid`, finds the earlier PID sitting there, and kills it with SIGTERM — even though that earlier process is alive and happily serving its own client. The victim's stdio pipe goes dead and its client drops the server from its registry. Looks like a mystery disconnect from the outsi

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/104) · 2026-04-20 · closed · outside contributor · 0 comments

### 🔒 OAuth middleware not applied to /mcp endpoint in HTTP mode

## Security Finding — MEDIUM Severity

**Category:** Authentication Bypass
**Confidence:** 9/10
**Found by:** Security audit (2026-03-30)

### Description

When the HTTP/SSE transport is configured with OAuth (`OAUTH_ISSUER_URL` and `OAUTH_AUDIENCE` set), `oauthMiddleware` is created but **never applied** to the main `/mcp` endpoint routes:

- `app.post("/mcp", ...)` — no auth
- `app.get("/mcp", ...)` — no auth
- `app.delete("/mcp", ...)` — no auth

The only route using `oauthMiddleware` is `/mc

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/102) · 2026-03-31 · closed · 1 comment

### 🔒 SSRF via redirect bypass in document parser fetchDocument()

## Security Finding — HIGH Severity

**Category:** SSRF
**Confidence:** 9/10
**Found by:** Security audit (2026-03-30)

### Description

`fetchDocument()` in `src/documents/documentParser.ts` validates the initial URL via `validateUrlForSSRF(url)`, but the subsequent `fetch()` call uses Node.js native fetch which follows HTTP redirects by default (`redirect: 'follow'`). No redirect validation is performed.

An attacker-controlled URL ending in `.pdf` (to pass `isDocumentUrl()`) can redirect to a

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/101) · 2026-03-31 · closed · 1 comment

### 🔒 SSRF via Playwright redirect bypass in scrapeWithPlaywright()

## Security Finding — HIGH Severity

**Category:** SSRF
**Confidence:** 9/10
**Found by:** Security audit (2026-03-30)

### Description

`scrapeWithPlaywright()` in `src/server.ts` does **not** validate redirect URLs for SSRF. While `scrapeWithCheerio()` has `preNavigationHooks` that call `validateUrlForSSRF()` on every redirect, the Playwright crawler follows redirects at the browser level with zero SSRF checks.

The initial URL is validated before scraping begins, but an attacker-controlled pu

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/100) · 2026-03-31 · closed · 1 comment

### npm registry version mismatch: v6.0.0 on npm vs v1.2.1 in repo

## Problem

The npm package `google-researcher-mcp` shows version **6.0.0** published today (2026-02-10), but the repo's `package.json` on `main` still shows **1.2.1**. The latest GitHub release tag is also `v1.2.1` from July 2025.

## Observed behavior

- `npx -y google-researcher-mcp` pulls **6.0.0** from npm
- MCP tools execute without errors but return **empty content** — metadata (URLs, processing time, character counts) comes back, but no actual scraped/analyzed text
- `npx -y github:zohar

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/92) · 2026-02-11 · closed · outside contributor · 1 comment

### MCP Distribution Channels - Comprehensive Guide

# MCP Distribution Channels

This issue documents all available channels for distributing MCP servers, including submission processes and best practices.

## Overview

| Channel | Type | Submission | Status |
|---------|------|------------|--------|
| **npm** | Package Registry | `npm publish` | ✅ Published |
| **MCP Registry** | Official Registry | `mcp-publisher` CLI | ✅ Published |
| **MCPB / GitHub Releases** | One-click Install | GitHub Actions | ✅ Automated |
| **awesome-mcp-servers** | Cu

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/89) · 2026-02-10 · closed · 1 comment

### Simplify Installation Experience

## Summary

Improve the installation experience for google-researcher-mcp by providing copy-paste configurations, platform-specific guides, and optional setup wizards.

## Background

User research and community feedback indicate common pain points:
1. Manual JSON config editing is error-prone
2. Environment variable setup confuses non-developers
3. Path differences between macOS/Windows/WSL cause issues
4. API key acquisition process is unclear

## Implementation Steps

### 1. Add Copy-Paste Re

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/86) · 2026-02-10 · closed · 0 comments

### List on Smithery MCP Marketplace

## Summary

List google-researcher-mcp on [Smithery](https://smithery.ai), the largest third-party MCP marketplace, to increase visibility and provide users with one-click installation.

## Background

Smithery is a popular MCP marketplace featuring:
- One-click terminal installation commands
- Built-in observability and distribution
- Featured servers on homepage carousel
- Large user base of AI developers

## Implementation Steps

### 1. Create `smithery.yaml` in repository root

```yaml
runti

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/84) · 2026-02-10 · closed · 0 comments

### Publish to Official MCP Registry

## Summary

Submit google-researcher-mcp to the official Model Context Protocol Registry to increase discoverability and enable one-click installation for users.

## Background

The [MCP Registry](https://github.com/modelcontextprotocol/registry) is the official "app store" for MCP servers, currently in preview with API freeze at v0.1. It's backed by GitHub and provides:
- Centralized discovery for MCP clients
- One-click installation in VS Code
- Automatic updates to downstream registries

## I

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/83) · 2026-02-10 · closed · 0 comments

### Add patent portfolio analysis capabilities (tools + prompt)

## Summary

Enable comprehensive patent portfolio analysis for companies and their subsidiaries. This enhancement follows MCP best practices by:
1. Adding focused, atomic tools that complement the existing `patent_search`
2. Creating a prompt to guide LLMs on orchestrating the workflow
3. Letting the LLM handle business logic (iteration, aggregation, reporting)

---

## Architecture: MCP vs LLM Responsibilities

### MCP Server Provides (Atomic Tools)

| Component | Type | Purpose |
|-----------|

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/80) · 2026-02-09 · closed · 0 comments

### Add Patent Search Tool

## Summary

Implement a new `patent_search` tool to enable comprehensive patent research capabilities, supporting both broad prior art searches and deep specific patent analysis.

## Background

Patent research is critical for:
- **Prior Art Search**: Finding existing patents/publications before filing
- **Freedom to Operate (FTO)**: Ensuring products don't infringe existing patents
- **Patent Landscaping**: Understanding competitive patent portfolios
- **Technology Monitoring**: Tracking innova

[Read the thread](https://github.com/zoharbabin/google-researcher-mcp/issues/78) · 2026-02-09 · closed · 1 comment

The remaining reports are on [the project's issue tracker](https://github.com/zoharbabin/google-researcher-mcp/issues).
