google-surf-mcp
Search, web, and academic PDF infrastructure for AI agents · MCP TOPLIST Top 1%
Built with TypeScript · MCP · Playwright · PDF extraction · Vitest
WHY
An LLM agent needs more than search-result links; it must read current web pages and the body of academic PDFs before it can answer with useful evidence. Existing tools separated web search, academic search, and parsing, while weak PDF extraction and provider failures made the workflow slow and unreliable. I built one search interface that could retrieve, read, and recover from those failures for the agent.
Search, parallel search, web, PDF, and academic retrieval
Full Vitest suite across 44 test files
Published npm package
HOW
One agent interface across unstable search and document sources
Provider selection, extraction, recovery, and security are separated so a failure can be handled at the layer that owns it.
- 01 Agent request
Expose search and extraction as typed MCP tools with a consistent response schema.
- 02 Provider routing
Choose browser or API search, run parallel queries, and fall back per query instead of failing the full batch.
- 03 Document extraction
Recover readable web text and spatially ordered PDF content behind the same interface.
- 04 Recovery and safety
Handle CAPTCHA, cache, rate limits, parser drift, redirects, and SSRF before returning structured results.
RESULT
Contribution
- Designed the MCP API and implemented provider routing, concurrent search, web and PDF extraction, caching, recovery, and security boundaries.
- Published the package and built a regression suite around real markup drift, redirect, CAPTCHA, parser, and cloud-runtime failure modes.