Google Surf MCP: Free Google Search MCP with PDF Handling and Tiered Extraction

Google Surf MCP is a free MCP server for Google search and URL extraction that actually works — the author reports testing 6 free MCPs, all of which failed. It replaces the usual search MCP + fetch MCP combo with a single tool set that also auto-handles academic PDFs (arXiv, bioRxiv, Nature, OpenReview, NeurIPS, JMLR, PMLR, Springer, PubMed→PMC).
Key Features
- 4 tools:
search(SERP only),search_parallel(N concurrent queries),extract(url, mode?)(full/abstract/metadata),search_extract(query, mode?)(defaults to abstract) - Tiered extraction:
mode: "abstract"returns ~1500 chars per result for cheap relevance triage before paying for full bodies. A 5-result survey costs ~7.5k chars instead of 40k. - PDF detection: via Content-Type, %PDF magic, citation_pdf_url meta, and per-domain rules.
- Reliability: multi-strategy SERP parser with geometric verification (drops sponsored/knowledge panel/sidebar), SSRF guard (env-locked private/loopback block, DNS rebinding defense, per-hop redirect validation), 25MB fetch ceiling, malformed PDFs contained as error.
- Auto CAPTCHA recovery: when CAPTCHA fires, a visible Chrome window opens for human solving, then retries. The profile's reputation with Google is preserved.
- No API key, no proxies, no solver.
Stack and Speed
- Stack: TypeScript, Playwright + stealth, Readability, Turndown, unpdf. ~900 LOC.
- Speed (1Gbps): sequential ~1.5s/q (warm), 4 parallel ~2s wall, 10 parallel ~5s wall.
Example Usage
search_extract("latest AI research papers", mode: "abstract")
Returns abstracts of top results, letting an agent triage relevance before calling extract(url, mode: "full") on the winner.
Who it's for: Developers building AI agents that need reliable, free web search and extraction without external API keys or paid services.
📖 Read the full source: r/ClaudeAI
👀 See Also

/compress-architecture: An Agent Skill to Prune Over-Engineering
A new agent skill called /compress-architecture audits codebases for speculative layers, pass-through modules, and duplicate concepts while protecting real domain boundaries and public APIs.

Claude-voice: Local TTS with Word Highlighting for Claude Code
Claude-voice is a Python tool that adds local text-to-speech with real-time word highlighting to Claude Code's voice mode. It uses Kokoro TTS (82M parameters) running fully locally without API keys.

Local Book Translation Pipeline Uses Qwen 32B and Mistral 24B with Contextual RAG
A developer built a fully automated PDF-to-ePub book translation pipeline using eight Python scripts, Marker for PDF extraction, Qwen 32B for translation with a global glossary, and Mistral 24B for style editing.

W2A — an open protocol for agent sensors: giving local agents real-time perception
W2A (World2Agent) is an open protocol standardizing the perception layer for AI agents — self-hostable, TS SDK, Apache 2.0. It lets agents receive real-time signals from sensors without one-off scripts.