← 모든 글

google-surf-mcp

AI Agent 검색·웹·학술 PDF 인프라 · MCP TOPLIST Top 1%

Built with TypeScript · MCP · Playwright · PDF extraction · Vitest

6개 MCP tool이 검색 provider, 웹과 PDF 추출, cache, CAPTCHA handoff, parser healing과 SSRF 방어로 연결되는 구조도
6개 tool이 provider, extraction, recovery와 safety layer를 공유합니다

WHY

LLM Agent가 유용한 답을 내려면 검색 결과 링크뿐 아니라 최신 웹페이지와 학술 PDF의 본문까지 읽을 수 있어야 합니다. 기존 tool은 일반검색·학술검색·본문 추출이 분리돼 느렸고, 검색 품질과 PDF parsing도 불안정했습니다. Agent가 하나의 interface에서 근거를 검색하고 읽으며 실패까지 복구할 수 있는 검색 인프라가 필요했습니다.

MCP interface 6 tools

검색, 병렬 검색, 웹, PDF와 학술 검색

검증 388 / 388

44개 test file 전체 Vitest 통과

MCP TOPLIST Top 1%

npm package 공개

HOW

불안정한 검색과 문서 소스를 하나의 Agent interface로

Provider 선택, 추출, 복구와 보안을 분리해 실패가 발생한 layer에서 처리하도록 설계했습니다.

  1. 01 Agent request

    검색과 추출을 일관된 response schema의 typed MCP tool로 제공합니다.

  2. 02 Provider routing

    Browser 또는 API 검색을 선택하고 병렬 query 중 실패한 query만 개별 fallback합니다.

  3. 03 Document extraction

    웹 본문과 공간 순서를 보존한 PDF text를 같은 interface에서 추출합니다.

  4. 04 Recovery와 safety

    CAPTCHA, cache, rate limit, parser drift, redirect와 SSRF를 처리한 뒤 구조화된 결과를 반환합니다.

RESULT

Search와 provider, extraction과 SSRF, recovery와 healing, runtime state 영역에서 388개 테스트가 통과한 결과
전체 Vitest · 44개 file, 388개 test

기여

  • MCP API와 provider routing, 병렬 검색, 웹·PDF 추출, cache, recovery와 security boundary를 설계하고 구현했습니다.
  • 실제 markup drift, redirect, CAPTCHA, parser와 cloud runtime 실패 조건을 regression test로 만들고 package를 공개했습니다.

관련 자료

Source code 배포된 MCP server, test와 runtime 문서