HarimxChoi/google-surf-mcp
View on GitHub ↗Google search MCP. One MCP replaces search + fetch + academic-paper extractor.
280 ★33 forksTypeScriptUpdated 24d ago
What you need to know
google-surf-mcp is a keyless Google search MCP (npm, MIT) that replaces three servers (search + URL fetcher + academic-paper extractor) — 5 tools (search, search_parallel, extract, search_extract, health) with headless Playwright + stealth, CAPTCHA recovery for humans, and inline academic PDF extraction (arxiv, Nature, OpenReview, etc.).
Install
npx google-surf-mcp (register in your MCP client config) Requires Node 18+ and Google Chrome (or Chromium) on the system
Usage
- •Register in ~/.claude.json as {google-surf: {command: 'npx', args: ['-y', 'google-surf-mcp']}}
- •search(query) for ~1.5s results; search_extract(query) returns SERP enriched with ~1500-char abstracts by default
- •On CAPTCHA a Chrome window opens for a human to solve (preserving profile reputation); set SURF_HEADLESS=false to keep Chrome visible
Key features
- ✓5 tools: search, search_parallel (pool of 4), extract, search_extract (search + parallel extract), health
- ✓Drops sponsored ads and knowledge panels (geometric verification); academic PDF extraction from arxiv, biorxiv, Nature, OpenReview, NeurIPS, JMLR, PMLR, Springer, PubMed
- ✓No API key, no proxies, no CAPTCHA solver; Playwright stealth cascade + multi-strategy SERP parser with self-healing strategy reorder
- ✓Fast: ~1.5s/query sequential, parallel x4 ~1.5s; extraction via liteparse (PDFium spatial) + Readability
Best for
AI agents that need reliable, keyless Google search plus article/PDF extraction without paying for search APIs.
Caveats
- ⚠Requires local Google Chrome/Chromium and Node 18+; designed for local use — SURF_CLOUD_MODE=true is fail-fast on CAPTCHA
- ⚠SSRF guard blocks private/loopback addresses in extract by default; rate limit ~10 RPM toward Google
Platforms: macOS · Linux · WindowsClients: Claude Code · Claude Desktop · Cursor · MCP clients
Documentation ↗Reviewed 2026-08-11
Topics
- Stars
- 280★
- Forks
- 33
- Language
- TypeScript
- License
- MIT
- Created
- 2026-04-30
- Last push
- 2026-08-11