57
/ 100
1 month ago
glama

google-surf-mcp

Anti-bot Google search MCP that replaces the usual search MCP + URL fetcher combo with one server. No API key, no proxies, includes graceful CAPTCHA recovery.

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find.

Install from

M8ven verifies MCPs across every public registry — install directly from whichever one you prefer.

// key findings
🚨
Known vulnerabilities in dependencies: 1 critical, 3 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
🔐
You'll be asked for 1 credential: ANTHROPIC_API_KEY
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// known CVEs in dependencies1 critical3 high

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

criticalvitest@2.1.9GHSA-5xrq-8626-4rwp

When Vitest UI server is listening, arbitrary file can be read and executed

high@modelcontextprotocol/sdk@1.20.0GHSA-345p-7cg4-v4c7

@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse

high@modelcontextprotocol/sdk@1.20.0GHSA-8r9q-7v3j-jr4g

Anthropic's MCP TypeScript SDK has a ReDoS vulnerability

high@modelcontextprotocol/sdk@1.20.0GHSA-w48q-cv73-mx4w

Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// required environment variables
This server reads these from process.env. You'll be asked to provide them before it can run.
🔐 secretANTHROPIC_API_KEYyour Anthropic key. Read only when SURF_LLM_HEAL=true. The runtime self-healing in SURF_SELF_HEALING is deterministic and never reads this variable.
configCHROME_PATH/path/to/chrome SURF_TZ=America/New_York npm run bootstrap
configGITHUB_OUTPUT
configSURF_ALLOW_PRIVATEfalse set true to allow extract to fetch private/loopback addresses (localhost, 127.0.0.1, 10.x, 192.168.x, 169.254.x, etc). Default blocks them as an SSRF guard.
configSURF_CAPTCHA_TIMEOUT_MS
configSURF_HEADLESSDemo only. Actual searches run headless by default (no visible browser). Set =false to make Chrome visible like in the clip above.
configSURF_IDLE_CLOSE_MS30000 idle ms before closing the sequential ctx and pool. 0 disables idle auto-close. Lower = faster cleanup, higher = warmer cache for spaced-out calls.
configSURF_LLM_HEALANTHROPIC_API_KEY — your Anthropic key. Read only when =true. The runtime self-healing in SURF_SELF_HEALING is deterministic and never reads this variable.
configSURF_LOCALEen-US browser locale
configSURF_PROFILE_ROOT~/.google-surf-mcp where the warm profile lives
configSURF_TZCHROME_PATH=/path/to/chrome =America/New_York npm run bootstrap
// full audit trail
The full breakdown of what we checked, the deductions that landed, the network hosts, the dependency advisories, and concrete fix guidance is available to verified publishers.
// improvement guidance — verified publishers only
We have 6 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Score](https://m8ven.ai/badge/mcp/harimxchoi-google-surf-mcp-1uif4q)](https://m8ven.ai/mcp/harimxchoi-google-surf-mcp-1uif4q)
commit: 26ba5288a23dbea3fc069ea60393de81a17eb9e1
code hash: f71ded7d74fb5048c39ed30eb06a6a513b6a90c94b535a4b93b69de242c8b0bd
verified: 6/10/2026, 10:49:46 AM
view raw JSON →