Skip to main content
Glama
zoharbabin

Google Researcher MCP

google-researcher-mcp — DEPRECATED

⚠️ This project has been superseded by web-researcher-mcp.

A complete rewrite in Go: same tools, but it cites real sources and stays honest — citation verification, retraction flagging, eight search providers behind one interface, and a single signed static binary. No Node.js, no npm.


Migrate in one line

Your API keys and tool calls don't change — only how the server is launched. Pick whichever you prefer (no Node required):

# macOS / Linux — installs the binary and registers it with Claude Code automatically:
curl -fsSL https://raw.githubusercontent.com/zoharbabin/web-researcher-mcp/main/install.sh | sh

# Windows (PowerShell):
powershell -ExecutionPolicy Bypass -c "irm https://raw.githubusercontent.com/zoharbabin/web-researcher-mcp/main/install.ps1 | iex"

# Python users (uv) — run with no install:
uvx web-researcher-mcp

Before / after (MCP client config)

The config keeps the same shape — swap the command/args, keep your env:

// BEFORE — google-researcher-mcp (npx / Node)
{
  "mcpServers": {
    "google-researcher": {
      "command": "npx",
      "args": ["-y", "google-researcher-mcp"],
      "env": { "GOOGLE_CUSTOM_SEARCH_API_KEY": "…", "GOOGLE_CUSTOM_SEARCH_ID": "…" }
    }
  }
}

// AFTER — web-researcher-mcp (installed binary; or use "uvx" + args ["web-researcher-mcp"])
{
  "mcpServers": {
    "web-researcher": {
      "command": "web-researcher-mcp",
      "env": { "GOOGLE_CUSTOM_SEARCH_API_KEY": "…", "GOOGLE_CUSTOM_SEARCH_ID": "…" }
    }
  }
}

Don't run both at once — they register identical tool names. Remove the google-researcher entry before adding web-researcher.

Full migration guide

Your existing GOOGLE_CUSTOM_SEARCH_API_KEY and GOOGLE_CUSTOM_SEARCH_ID work unchanged.


Related MCP server: Web Research Assistant

Why the Rewrite?

Open Issue

Resolution in web-researcher-mcp

#108 — Orphan detection fails via npx

Go binary has native process lifecycle (EOF/SIGPIPE) — no npm wrapper

#107 — Google discontinuing 'entire web' search

Eight providers (Brave, Serper, SearXNG, SearchAPI, Tavily, Exa, DuckDuckGo + Google PSE for lenses) with automatic fallback

#55 — Support alternative search engines

Multiple engines behind one interface, plus a zero-config DuckDuckGo default

#72 — Add Redis caching

Hybrid cache: memory + AES-encrypted disk + optional Redis

#40 — Split server.ts into modules

Fully modular Go architecture (one package per concern)

Plus what's new: verify_citation and audit_bibliography (catch fabricated/retracted citations), academic / patent / SEC-filing / US-case-law / economic / clinical-trial search, and authority-weighted search lenses.


Available Tools

8 tools
scrape_pageScrape Page (+ YouTube, PDF, DOCX, PPTX)A
Read-only

Extract text content from a URL. Automatically handles: web pages (static + JavaScript-rendered), YouTube videos (extracts transcript), and documents (PDF, DOCX, PPTX).

When to use:

  • You already have a specific URL to extract content from

  • Need content from YouTube videos, PDFs, or Office documents

  • Want to check page structure before fetching full content (preview mode)

When to use search_and_scrape instead:

  • Researching a topic across multiple sources

Content size control:

  • max_length: Limit response size (default: server max of 50KB)

  • mode: 'full' returns content, 'preview' returns metadata + structure only

Preview mode benefits:

  • Check content size before fetching full content

  • Get page structure (headings) to decide which sections to read

  • Avoid context exhaustion with very large pages

Caching: Results cached for 1 hour.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to scrape. Supports: web pages (static HTML and JavaScript-rendered SPAs), YouTube videos (extracts transcript automatically), and documents (PDF, DOCX, PPTX - extracts text content).
max_lengthNoMaximum content length in characters. Content exceeding this will be truncated at natural breakpoints. Default: server max (50KB).
modeNo'full' returns content (default), 'preview' returns metadata and structure without full content.full

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYesThe URL that was scraped
contentYesThe extracted text content from the page
contentTypeYesThe type of content that was extracted
contentLengthYesLength of the extracted content in characters
truncatedYesWhether the content was truncated due to size limits
estimatedTokensYesEstimated token count (~4 chars/token)
sizeCategoryYesSize category based on content length
originalLengthNoOriginal content length before truncation
metadataNoAdditional metadata for documents
citationNoCitation information with metadata and formatted strings
previewNoContent preview with structure (when mode=preview)

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses caching (1 hour), preview vs full mode behavior, and automatic handling of JS-rendered pages. Contradicts no annotations; adds context beyond readOnly and openWorld hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear sections, front-loaded purpose, and no fluff. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given complexity (multiple content types, modes, caching) and presence of output schema, the description covers all needed aspects for correct tool use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds useful details like default max_length (50KB) and preview mode benefits, slightly exceeding the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool extracts text content from URLs and lists supported types (web pages, YouTube, PDF, DOCX, PPTX). It distinguishes from siblings like search_and_scrape by focusing on single URL extraction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides when to use (specific URL, YouTube/documents, preview) and when not (use search_and_scrape for multi-source research). This helps the agent choose correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_and_scrapeSearch and ScrapeA
Read-only

Search Google AND retrieve content from top results in one call. Returns combined, deduplicated content with source attribution.

When to use:

  • Primary tool for answering questions that need web research

  • Need content from multiple sources combined

  • More efficient than calling google_search + scrape_page separately

When to use other tools instead:

  • google_search: When you only need URLs without content

  • scrape_page: When you already have a specific URL

Content size control:

  • max_length_per_source: Limit content per source (default: 50KB)

  • total_max_length: Limit total combined content (default: 300KB)

  • filter_by_query: Only include paragraphs containing query keywords

Caching: Search results cached for 30 minutes, scraped pages for 1 hour.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesYour research question or topic. Be specific for better results. Example: 'Python async best practices 2024' rather than just 'Python'.
num_resultsNoNumber of sources to fetch (1-10). Default 3 is good for most queries. Use 5-8 for comprehensive research, 1-2 for quick factual lookups.
include_sourcesNoInclude source URLs at the end for citation. Default true - recommended for transparency.
deduplicateNoRemove duplicate content across sources. Default true - recommended to reduce noise when sources quote each other.
max_length_per_sourceNoMaximum content length per source in characters. Default: 50KB.
total_max_lengthNoMaximum total combined content length. Default: 300KB.
filter_by_queryNoFilter to only include paragraphs containing query keywords. Reduces noise but may exclude relevant context.

Output Schema

ParametersJSON Schema
NameRequiredDescription
queryYesThe search query that was executed
sourcesYesList of sources that were processed
combinedContentYesCombined and optionally deduplicated content from all sources
summaryYesSummary statistics for the operation
sizeMetadataYesSize information for the combined content

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations mark readOnlyHint and openWorldHint; description adds: combined deduplicated content with attribution, caching (30min search, 1hr scraped), content size limits. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with markdown sections (When to use, alternatives, content control, caching). Every sentence is informative, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, 100% schema coverage, and output schema, description covers all key aspects: purpose, usage, parameters, caching, and behavior. Complete for effective agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage 100% with detailed descriptions. Description adds default values, usage examples, and behavioral context for each parameter, exceeding baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it searches Google and retrieves content from top results. Distinguished from siblings: google_search (URLs only) and scrape_page (specific URL).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides when to use (web research, multiple sources, efficiency) and when to use alternatives (only URLs, specific URL). Includes content size control and caching guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv6.3.1
    • First observedacademic_search
    • First observedgoogle_image_search
    • First observedgoogle_news_search
    • First observedgoogle_search
    • First observedpatent_search
    • First observedscrape_page
    • First observedsearch_and_scrape
    • First observedsequential_search

TDQS

A4.6/5.0
Disambiguation5/5

Each tool targets a distinct type of content or action: academic papers, images, news, general web, patents, page scraping, combined search+scrape, and progress tracking. Their purposes are clearly differentiated by name and description, leaving little ambiguity.

Naming Consistency4/5

Most tools follow a descriptive pattern (e.g., academic_search, google_news_search, patent_search), but there are minor inconsistencies: scrape_page and search_and_scrape break the 'type_search' pattern, and sequential_search uses an adjective. Overall, names are clear and mostly consistent.

Tool Count5/5

With 8 tools, the server is well-scoped for a research assistant. It covers essential search types and content extraction without being overwhelming. Each tool adds distinct value, and the count feels appropriate for the domain.

Completeness5/5

The tool set covers the major facets of web research: various search verticals (web, academic, news, images, patents), page scraping, combined search+scrape, and even a research progress tracker. There are no obvious gaps; it provides a comprehensive workflow.

Maintenance

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    An automated research agent that leverages Google Gemini models and Google Search to perform deep, multi-step web research, generating sophisticated queries and producing citation-rich answers.
    1
    28
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Comprehensive web research toolkit with 13 tools for searching (via SearXNG), crawling, package discovery, GitHub metrics, error translation, API documentation lookup, data extraction, technology comparison, and service status checking.
    14
    9
    MIT
  • F
    license
    A
    quality
    Not graded
    maintenance
    Enables AI assistants to perform comprehensive research by searching Google, mining Reddit discussions, scraping web content with JS rendering, and synthesizing findings with citations into structured context.
    5
    165
    3
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to perform comprehensive web research through tiered search, secure URL fetching with markdown conversion, and automated multi-source synthesis pipelines. Provides read-only tools with configurable caching, SSRF protection, and optional LLM-powered summarization for search results and content analysis.
    8
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zoharbabin/google-researcher-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server