MCP Gemini Web Search
Provides web search and research capabilities using Google's Gemini models with Google Search grounding, enabling AI agents to perform grounded searches, multi-step research, and batch queries.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Gemini Web Searchsearch for Node.js 22 LTS release notes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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_searchtool with dual modes:normal: Fast, single-step grounded searchresearch: Multi-step research with query planning → execution → synthesis
web_search_batchtool to run up to 20 independent searches in parallelhealth_checktool 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
Via npx (Recommended)
npx -y mcp-gemini-webVia npm install
npm install -g mcp-gemini-web
mcp-gemini-webEnvironment Variables
GEMINI_API_KEYorGOOGLE_API_KEY(required): Google AI API keyGENAI_BASE_URLorGEMINI_BASE_URL(optional): Custom API endpoint base URLMODEL(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-webUsage 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
web_search
q(string, required): Search querymode("normal"|"research", optional): Default"normal"model(string, optional): Model to use (default:MODELenv orgemini-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 inresearchmode)research_concurrency("parallel"|"sequential", optional): Default"parallel"(only inresearchmode)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 queriesmodel,verbosity,max_tokens,include_sources,timeout: Same meaning asweb_search(applies per query)
health_check
include_metrics(boolean, optional): Defaulttrueprobe(boolean, optional): If true, performs a lightweight API call (defaultfalse)probe_timeout(number, optional): Probe timeout in ms (1000–30000, default10000)
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 startLicense
MIT
Contributing
Pull requests welcome! Please ensure tests pass and follow the existing code style.
Available Tools
3 toolshealth_checkCheck MCP server healthA
Returns health status and metrics including request counts, rate limit status, and error information.
| Name | Required | Description | Default |
|---|---|---|---|
| probe | No | Perform a real API probe (lightweight request) | |
| probe_timeout | No | Timeout for probe request in milliseconds | |
| include_metrics | No | Include detailed metrics in response |
TDQS
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.
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.
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.
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.
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.
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_searchGrounded web search (Gemini + Google Search)A
Grounded search with citations. mode='normal' for a single pass; mode='research' for a multi-step, deeper approach. Use verbosity to control output length.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | User query | |
| mode | No | Search mode: 'normal' (fast) or 'research' (deeper multi-step) | normal |
| model | No | Model to use. Options: gemini-3-flash-preview (default), gemini-3-pro-preview, gemini-2.5-flash, gemini-2.5-pro | gemini-3-flash-preview |
| timeout | No | Request timeout in milliseconds | |
| max_steps | No | Only used in research mode: number of sub-queries to run (1-6) | |
| verbosity | No | Output length: 'concise' (~4096 tokens), 'normal' (~16384 tokens), 'detailed' (~65535 tokens) | normal |
| max_tokens | No | Override verbosity with exact token limit | |
| include_sources | No | Include source citations and metadata in response | |
| research_concurrency | No | In research mode: run sub-queries in parallel or sequentially | parallel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the core behavior (grounded search with citations) and the difference between modes. However, it does not state read-only/side-effect behavior, auth needs, or rate/cost characteristics, and it leaves ambiguity about whether citations are always present given include_sources defaults to false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight, front-loaded sentences. It establishes the core result ('grounded search with citations') first, then covers the two key controls: mode and verbosity. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, no output schema, and no annotations, the description is thin. It orients the agent to mode and verbosity but says nothing about research_concurrency, max_steps, model choice, timeout, the shape of returned content, or when the citations actually appear. The schema mitigates this, but the description alone does not fully contextualize a configurable tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds only light clarification that mode='normal' is a single pass and mode='research' is multi-step, which the schema already conveys. It does not add meaningful parameter guidance beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly conveys that the tool performs a grounded web search and returns citations, and it names the two modes ('normal' vs 'research'). However, it does not explicitly distinguish itself from the sibling web_search_batch, so it falls just short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives useful mode-level guidance ('normal' for a single pass, 'research' for a deeper multi-step approach) and points to verbosity for output-length control. But it never says when to prefer this tool over web_search_batch or health_check, and offers no exclusion criteria.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model to use. Options: gemini-3-flash-preview (default), gemini-3-pro-preview, gemini-2.5-flash, gemini-2.5-pro | gemini-3-flash-preview |
| queries | Yes | Array of queries to run in parallel (max 20) | |
| timeout | No | Per-request timeout in milliseconds | |
| verbosity | No | Output length: 'concise' (~4096 tokens), 'normal' (~16384 tokens), 'detailed' (~65535 tokens) | normal |
| max_tokens | No | Override verbosity with exact token limit | |
| include_sources | No | Include source citations and metadata in response |
TDQS
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.
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.
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.
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.
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.
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.
3 tool updates
v0.3.3- First observed
health_check - First observed
web_search - First observed
web_search_batch
TDQS
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.
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.
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.
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
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
Web research for agents: quality-scored Google search, webpage extraction, and deep research.
Search Google straight from your AI agent. Web results, images, videos, news, products, scholarly ar
Provides AI assistants with access to Seltz's powerful Web Search capabilities.
LLM-ready web search + instant answers + URL-to-clean-text fetch for agents and RAG.
Related MCP Servers
- AlicenseBqualityCmaintenanceProvides 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.16082Apache 2.0
- AlicenseBqualityDmaintenanceEnables 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.1162MIT
- FlicenseNot gradedqualityDmaintenanceProvides 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-
- AlicenseNot gradedqualityDmaintenanceEnables web search using Google Gemini with search grounding and question-answering on local documents, with support for chunked document reading.261MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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