serper-search-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| EXA_API_KEY | No | Exa neural search fallback key (exa.ai — semantic search & highlights) | |
| GEMINI_MODEL | No | Gemini model override | gemini-3.1-flash-lite |
| BRAVE_API_KEY | No | Brave Search fallback provider key (brave.com/search/api — independent index) | |
| GEMINI_API_KEY | No | LLM key for deep_research synthesis (free tier at ai.google.dev) | |
| SERPER_API_KEY | Yes | Primary search provider key (serper.dev — 2,500 free queries/mo) | |
| SERPER_RETRIES | No | Retries on 429 / 5xx / network errors (honors Retry-After) | 2 |
| TAVILY_API_KEY | No | Tavily fallback provider key (tavily.com — AI-reranked search) | |
| SEARCH_FALLBACK | No | Auto-failover on 402/429/5xx/empty response (true or false) | true |
| SERPER_MCP_HOST | No | Host interface to bind for HTTP mode | 0.0.0.0 |
| SERPER_MCP_PORT | No | Port for HTTP transport mode (1–65535) | 8080 |
| OPENROUTER_MODEL | No | OpenRouter model override | google/gemini-3.1-flash-lite:free |
| SERPER_CACHE_MAX | No | Maximum cached responses (LRU eviction) | 200 |
| FIRECRAWL_API_KEY | No | Firecrawl JS-rendered scraping & search upgrade key (firecrawl.dev) | |
| SERPER_TIMEOUT_MS | No | Per-request timeout for Serper calls in ms | 30000 |
| OPENROUTER_API_KEY | No | LLM key for deep_research synthesis (free tier at openrouter.ai) | |
| SERPER_LLM_RETRIES | No | Retries for LLM calls on rate-limit or network errors | 2 |
| SERPER_CACHE_TTL_MS | No | Search-result cache TTL in ms (0 disables the cache) | 600000 |
| SERPER_MCP_LOG_LEVEL | No | Logging verbosity: error · warn · info · debug · silent | info |
| SERPER_MCP_TRANSPORT | No | MCP transport mode: stdio (local AI clients) or http (stateless Streamable HTTP) | stdio |
| SERPER_RETRY_BASE_MS | No | Base backoff delay in ms (exponential backoff + jitter) | 500 |
| SEARCH_PROVIDER_ORDER | No | Comma-separated failover priority chain (serper,tavily,brave,exa,firecrawl) | serper,tavily,brave |
| SERPER_LLM_TIMEOUT_MS | No | Per-request timeout for LLM synthesis calls in ms | 120000 |
| SERPER_MCP_AUTH_TOKEN | No | If set, HTTP /mcp requires Authorization: Bearer <token> |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| searchA | Unified search — one tool for all types (loads ~700 tokens instead of ~7k for 11 tools). Pick type=web|images|videos|news|shopping|places|scholar|patents|autocomplete and provider=auto|serper|tavily|brave|exa|firecrawl. Credit budget: basic 3 / standard 5 / deep 8 credits for deep_research; 1 credit per search; cache hits cost 0. |
| search_webB | Google web search via Serper API. Returns organic results plus Knowledge Graph, Answer Box, People Also Ask, and related searches. |
| search_imagesA | Google Image search via Serper API. Returns image URLs, thumbnails, dimensions, and source pages. Use layout=gallery for a renderable visual grid (designers/moodboards). Always rich — never compacted. |
| search_videosB | Google Video search via Serper API. Returns titles, channels, durations, and links. |
| search_newsB | Google News search via Serper API. Returns headlines, sources, and publication dates. |
| search_shoppingA | Google Shopping search via Serper API. Returns products with prices, ratings, and delivery info. |
| search_placesB | Google Places / Maps search via Serper API. Returns local businesses with address, phone, full 7-day hours, ratings, GPS + Directions links. Always rich — never compacted. |
| search_scholarA | Google Scholar search via Serper API. Returns academic publications with authors, journal, year, and citation counts. Ideal for research papers and literature reviews. |
| search_patentsB | Google Patents search via Serper API. Returns patents with publication number, assignee, inventor, and dates. Always rich. |
| autocompleteB | Google Autocomplete suggestions via Serper API. Returns query completions — cheap, no LLM needed. |
| scrapeA | Fetch and extract the full contents of a single URL via Serper Scrape API. Returns the page content as markdown (or plain text). Use after a search to read a promising page in full. Costs ~2 credits per page. |
| search_manyB | Run multiple web searches in one call (parallel). Duplicate URLs across queries are removed automatically. Great for comparing topics, gathering multi-angle context, or fanning out sub-queries. Each query costs 1 credit. |
| deep_researchA | AI-powered deep research tool. Breaks your question into sub-queries, runs multiple Google searches, then synthesizes a cited research report using your LLM (OpenRouter or Gemini). Requires OPENROUTER_API_KEY or GEMINI_API_KEY environment variable. |
| search_rag_contextA | Returns Google search results as clean, chunked, metadata-rich text optimized for embedding pipelines and vector databases. No LLM required. Each chunk includes: text, source URL, domain, title, date, word count, and chunk index. Perfect for RAG pipelines, semantic search, and AI grounding. |
| resolve_linksA | Turn google.com/goto redirect links from a recent search into real URLs via Serper /resolve (free, 0 credits). Pass the search_id a search result asked for, or a list of goto links. Right after a search one call takes ~20–30 s. Links not ready yet stay goto links; Serper then suggests a wait (often 90 s), which is only honoured if it fits in max_wait_seconds — otherwise call again later. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
The unified `search` tool with type=web|images|videos|news|shopping|places|scholar|patents|autocomplete directly duplicates eight dedicated sibling tools (search_web, search_images, etc.), so an agent must guess which of two identical capabilities to call. `search_many` overlaps with `search`, `search_rag_context` is `search` with different formatting, and `search`'s deep mode overlaps `deep_research`. Only `scrape`, `autocomplete`, and `resolve_links` have clearly unique boundaries.
All names are snake_case and the dominant pattern is a `search_` prefix plus resource noun, which is easy to scan. The handful of deviations (`search`, `autocomplete`, `scrape`, `deep_research`) are action-distinct rather than arbitrary, so they read fine despite breaking the prefix convention. It also makes `search` vs `search_web` look confusingly similar.
15 tools sit at the upper edge of a well-scoped set, and the surface is inflated by redundancy rather than coverage — the description itself says `search` replaces 11 tools, which implies roughly half the set could be retired. A leaner ~7-tool design (search, scrape, search_many, deep_research, resolve_links, search_rag_context) would serve the same purpose.
The search domain is well covered: web, images, news, videos, shopping, places, scholar, patents, autocomplete, page scraping, batch search, deep research, RAG chunking, and redirect resolution — no obvious dead end in the core workflow. Minor gaps: credits are referenced throughout the descriptions but no tool exposes balance or cache management.