google-surf-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| searchA | Single Google search -> title/url/snippet per result. Results are cached 24h, so repeating a query is free -- prefer re-querying over caching results yourself. For latest/today/breaking queries set SURF_CACHE_TTL_SEARCH_MS=0 to bypass the cache. Default limit 10 (max 20). First call ~4s (Chromium warmup), then ~2s. On CAPTCHA a visible Chrome opens for a human to solve (shared-IP protection); SURF_CLOUD_MODE=true makes it fail-fast instead. |
| search_parallelA | Run 2-10 Google searches concurrently. Use to compare multiple angles in one call. Each query counts against the internal rate limit (~10/min) -- do not loop this for bulk scraping. First call adds 5-10s pool warmup. Per-query failures are isolated in the results array. Disabled in cloud mode. |
| extractA | Fetch one public URL -> clean article text. HTML via Mozilla Readability; academic PDFs (arxiv/biorxiv/Nature/OpenReview/NeurIPS/JMLR/PMLR/Springer/PubMed-via-PMC) auto-detected via Content-Type, %PDF magic, citation_pdf_url meta, and per-domain URL rules. Tiered depth: |
| search_extractA | One-shot Google search + parallel extract of the top results. Default |
| healthA | MCP server status: cascade mode + transitions, rate-limiter usage, cache size, config. Call this if searches start failing or returning empty -- check cascade.totalCaptchas and rateLimiter.queueSize, and reduce search volume if they are high. |
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 5 tools
Each tool has a clearly distinct purpose: single search, parallel searches, content extraction, combined search+extract, and health status. Although search and search_parallel both involve searching, the parallel variant is explicitly for multiple concurrent queries and the combined tool adds extraction, leaving no ambiguity.
Tool names are all lowercase with underscores and follow a predictable pattern: search and extract are verb-noun style, while search_parallel and search_extract are compound verbs. Health is a slight deviation as a noun, but the overall style is consistent and readable.
With 5 tools, the server is well-scoped for its purpose of Google search and content extraction. Each tool serves a distinct need without redundancy, and the count feels neither sparse nor bloated.
The tool surface covers the full workflow: searching, parallel searching for comparisons, extracting content from URLs, and combining search+extract for efficient surveys. The health tool fills an operational niche. No obvious dead ends or missing essential operations for the server's stated purpose.