Skip to main content
Glama
deduble

MCP Gemini Web Search

by deduble

MCP Gemini Web Search

A Model Context Protocol (MCP) server that provides grounded web search and research powered by Google's Gemini models + Google Search grounding, with retries, rate limiting, and health checks.

Features

  • web_search tool with dual modes:

    • normal: Fast, single-step grounded search

    • research: Multi-step research with query planning → execution → synthesis

  • web_search_batch tool to run up to 20 independent searches in parallel

  • health_check tool for metrics (and optional live probe)

  • Google Search grounding for accurate, cited results

  • Opinionated system instructions that prioritize official documentation for API/library queries

  • Resilience features: rate limiting, retries (exponential backoff + jitter), and per-request timeouts

  • Configurable models and endpoints (supports custom base URLs via httpOptions.baseUrl)

Related MCP server: Gemini Search MCP

Installation

npx -y mcp-gemini-web

Via npm install

npm install -g mcp-gemini-web
mcp-gemini-web

Environment Variables

  • GEMINI_API_KEY or GOOGLE_API_KEY (required): Google AI API key

  • GENAI_BASE_URL or GEMINI_BASE_URL (optional): Custom API endpoint base URL

  • MODEL (optional): Default model (default: gemini-3-flash-preview)

  • REQUEST_TIMEOUT (optional): Default request timeout in ms (default: 60000)

Rate limiting:

  • RATE_LIMIT_RPM (optional): Requests per minute (default: 60)

  • RATE_LIMIT_MAX_BURST (optional): Max burst capacity (default: 10)

Retries:

  • MAX_RETRIES (optional): Max retry attempts (default: 5)

  • BASE_RETRY_DELAY (optional): Base delay in ms (default: 1000)

  • MAX_RETRY_DELAY (optional): Max delay in ms (default: 60000)

  • JITTER_FACTOR (optional): Jitter factor 0-1 (default: 0.1)

MCP Client Configuration

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "gemini-web": {
      "command": "npx",
      "args": ["-y", "mcp-gemini-web"],
      "env": {
        "GEMINI_API_KEY": "your-api-key-here"
      }
    }
  }
}

Other MCP Clients

The server communicates via stdio using the MCP protocol. Configure your client to run:

npx -y mcp-gemini-web

Usage Examples

Normal Search (Fast)

{
  "tool": "web_search",
  "arguments": {
    "q": "what is Node.js 22 LTS",
    "mode": "normal",
    "verbosity": "normal",
    "include_sources": true
  }
}

Research Mode (Deep)

{
  "tool": "web_search",
  "arguments": {
    "q": "compare axios vs fetch for production Node.js usage",
    "mode": "research",
    "max_steps": 4,
    "research_concurrency": "parallel"
  }
}

Batch Search (Parallel)

{
  "tool": "web_search_batch",
  "arguments": {
    "queries": [
      "Node.js 22 release notes",
      "TypeScript 5.6 new features",
      "Vitest 2 migration guide"
    ],
    "include_sources": false
  }
}

Health Check

{
  "tool": "health_check",
  "arguments": {
    "include_metrics": true,
    "probe": false
  }
}

Health Check (Live Probe)

{
  "tool": "health_check",
  "arguments": {
    "include_metrics": true,
    "probe": true,
    "probe_timeout": 10000
  }
}

Tool Parameters

  • q (string, required): Search query

  • mode ("normal" | "research", optional): Default "normal"

  • model (string, optional): Model to use (default: MODEL env or gemini-3-flash-preview)

  • verbosity ("concise" | "normal" | "detailed", optional): Default "normal"

  • max_tokens (number, optional): Overrides verbosity (64–131072)

  • max_steps (number, optional): Research steps (1–6, default: 3; only in research mode)

  • research_concurrency ("parallel" | "sequential", optional): Default "parallel" (only in research mode)

  • include_sources (boolean, optional): Include sources + metadata footer (default: false)

  • timeout (number, optional): Per-request timeout in ms (5000–300000)

web_search_batch

  • queries (string[], required): 1–20 queries

  • model, verbosity, max_tokens, include_sources, timeout: Same meaning as web_search (applies per query)

health_check

  • include_metrics (boolean, optional): Default true

  • probe (boolean, optional): If true, performs a lightweight API call (default false)

  • probe_timeout (number, optional): Probe timeout in ms (1000–30000, default 10000)

Development

# Clone and install
git clone <repository-url>
cd mcp-gemini-web
npm install

# Development mode
npm run dev

# Build
npm run build

# Test
npm test

# Start built version
npm start

License

MIT

Contributing

Pull requests welcome! Please ensure tests pass and follow the existing code style.

Available Tools

3 tools
health_checkCheck MCP server healthA

Returns health status and metrics including request counts, rate limit status, and error information.

ParametersJSON Schema
NameRequiredDescriptionDefault
probeNoPerform a real API probe (lightweight request)
probe_timeoutNoTimeout for probe request in milliseconds
include_metricsNoInclude detailed metrics in response

TDQS

A3.9/5.0
Behavior3/5

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

The description discloses that the tool returns request counts, rate limit status, and error information, which is useful. However, it does not mention that enabling the 'probe' parameter triggers a real API request, nor does it explain the side effects or network behavior of a probe. With no annotations available, this is a notable gap.

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?

The description is a single focused sentence that front-loads the core purpose and lists the key metrics returned. There is no redundant or filler content.

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

Completeness3/5

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

For a health-check tool with optional parameters and no output schema, the description gives a reasonable overview of return content. However, it omits important contextual details about probe behavior and potential external calls, which are relevant for an agent deciding whether invoking the tool is safe or appropriate.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already documented within the schema. The description adds general context about returned metrics but does not explain how parameters like 'probe' or 'probe_timeout' affect the tool's behavior beyond what the schema already states.

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 returns health status and metrics, identifying a specific resource and action ('Returns health status and metrics'). The domain of health checking is unambiguous and clearly distinct from the sibling search tools.

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

Usage Guidelines4/5

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

The description gives clear context: this tool is used to check server health and retrieve operational metrics. It does not explicitly name alternatives or exclusions, but the sibling tools are unrelated search operations, so there is little risk of misuse.

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

web_search_batchBatch grounded web search (parallel queries)A

Run multiple web search queries in parallel. All queries are executed concurrently for faster results. Returns results for each query with individual success/failure status.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoModel to use. Options: gemini-3-flash-preview (default), gemini-3-pro-preview, gemini-2.5-flash, gemini-2.5-progemini-3-flash-preview
queriesYesArray of queries to run in parallel (max 20)
timeoutNoPer-request timeout in milliseconds
verbosityNoOutput length: 'concise' (~4096 tokens), 'normal' (~16384 tokens), 'detailed' (~65535 tokens)normal
max_tokensNoOverride verbosity with exact token limit
include_sourcesNoInclude source citations and metadata in response

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It openly discloses concurrency ('All queries are executed concurrently') and partial-failure handling ('individual success/failure status'). It doesn't cover rate limits or quota effects, but for a search tool the disclosed behaviors are the most relevant ones.

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?

The description is two sentences with no filler. It front-loads the main purpose, then gives behavioral detail, then the return shape. Every clause earns its place.

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

Completeness4/5

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

For a tool with 6 parameters and no output schema, the description provides the essential context: what it runs, that it runs in parallel, and what kind of result is returned. It doesn't mention the 'grounded' aspect from the title or explain source citation behavior, but that is handled by the include_sources parameter in the schema. Overall sufficient for an agent to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so each of the 6 parameters is already documented in the schema. The description adds no parameter-level detail; it correctly relies on the schema rather than duplicating it, so the baseline 3 applies.

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 states a specific action ('Run multiple web search queries') and the key differentiator ('in parallel' / 'batch'), which clearly separates it from the sibling web_search tool. It also specifies what is returned (per-query success/failure status), making the tool's purpose unambiguous.

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

Usage Guidelines4/5

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

The phrase 'multiple web search queries in parallel' plus 'for faster results' establishes a clear usage context: batch scenarios needing many searches at once. However, it doesn't explicitly say 'use web_search for a single query' or provide exclusion criteria, so it stops short of full alternative 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. 3 tool updatesv0.3.3
    • First observedhealth_check
    • First observedweb_search
    • First observedweb_search_batch

TDQS

A4/5.0
Disambiguation5/5

health_check is clearly distinct from the two search tools, monitoring server status rather than performing searches. web_search and web_search_batch are differentiated by single vs. parallel execution, and the descriptions make their use cases unambiguous.

Naming Consistency4/5

The search tools follow a consistent web_search / web_search_batch pattern, which makes their relationship obvious. health_check is a minor deviation in structure (noun_verb vs. web_search prefix) but still follows a readable naming style.

Tool Count5/5

Three tools cover health monitoring and two search modes, which is well-scoped for a web search server. Every tool serves a distinct, justified purpose without redundancy or unnecessary bloat.

Completeness5/5

The core domain of web search is fully covered with both single and batch search capabilities, plus operational health metrics. No obvious missing operations like result refinement or search customization are implied by the descriptions.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Provides Google Search functionality for AI models using Gemini's built-in Grounding with Google Search feature, returning real-time web search results with source citations.
    1
    60
    82
    Apache 2.0
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI-powered web searches using Google's Gemini 2.5 models with Google Search Grounding. Supports multiple Gemini models (Flash, Flash-Lite, Pro) with configurable thinking budget and web search capabilities.
    1
    16
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time web research and URL summarization capabilities using Gemini 2.5 Flash with native Google Search grounding. It enables users to perform factual searches and summarize web content directly within MCP-compatible clients like Claude Desktop.
    17
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables web search using Google Gemini with search grounding and question-answering on local documents, with support for chunked document reading.
    26
    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/deduble/mcp-gemini-web'

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