Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SURF_TZNoTimezone for the browser (e.g. America/New_York, default: system timezone)
CHROME_PATHNoAbsolute path to Chrome binary (auto-detected if not set)
SURF_LOCALENoBrowser locale (default: en-US)
SURF_HEADLESSNoSet to 'false' to run Chrome visibly (default: 'true')
SURF_PROFILE_ROOTNoDirectory where the warm Chrome profile lives (default: ~/.google-surf-mcp)
SURF_IDLE_CLOSE_MSNoIdle milliseconds before closing browser contexts (default: '30000')

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search

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_parallel

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.

extract

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: mode="abstract" returns ~1500 chars (PDF page 1 or HTML meta description) -- cheap survey to triage relevance before paying for full body. mode="full" (default) returns the whole article. Best-effort: failures return an errorInfo instead of throwing.

search_extract

One-shot Google search + parallel extract of the top results. Default mode="abstract" returns SERP enriched with ~1500-char abstracts per result -- a cheap survey of what the top results actually contain, far fewer tokens than fetching all bodies. Switch to mode="full" only when you need the actual article texts (slower, much more tokens). Per-page extract failures are isolated. Disabled in cloud mode.

health

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/HarimxChoi/google-surf-mcp'

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