google-surf-mcp
Google 검색을 MCP 도구로 노출하는 로컬 우선 서버. API 키 없이 동작하고, Playwright + persistent Chrome profile로 Google 검색 결과와 본문 추출을 제공한다.
개요
google-surf-mcp는 Google 검색을 MCP 서버로 감싸서 Claude Code 같은 MCP 클라이언트에 붙일 수 있게 만든 도구다. 핵심 포인트는 다음이다.
- API key 없음
- Playwright + persistent Chrome profile 사용
- 검색, 병렬 검색, 본문 추출, search+extract를 하나의 MCP로 제공
- CAPTCHA가 뜨면 사람이 직접 풀도록 Chrome 창을 열어 복구하는 방식
- 로컬 사용 전용으로 설계되어 stateless/serverless에는 적합하지 않음
왜 눈여겨볼 만한가
이 프로젝트는 단순한 SERP 스크래퍼보다 한 단계 더 나간다.
search(query)로 빠른 단일 검색search_parallel(queries[])로 병렬 검색extract(url)로 기사 본문 추출search_extract(query)로 검색 + 다중 추출을 한 번에 처리
즉, 검색 결과만 받는 게 아니라 실제 페이지 본문까지 같은 MCP 레이어에서 연결하는 점이 좋다. 검색 후 요약/리서치/클리핑 흐름에 잘 맞는다.
사용 방식
Claude Code 설정 예시
{
"mcpServers": {
"google-surf": {
"command": "npx",
"args": ["-y", "google-surf-mcp"]
}
}
}로컬 설치
npx google-surf-mcp또는:
git clone https://github.com/HarimxChoi/google-surf-mcp
cd google-surf-mcp
npm install
npm run bootstrapbootstrap은 Chrome 창을 열어 프로필을 warm-up한다. 이후 검색 요청의 CAPTCHA 복구에 그 프로필을 재사용한다.
환경 변수
CHROME_PATH: Chrome/Chromium 경로SURF_PROFILE_ROOT: 기본~/.google-surf-mcpSURF_LOCALE: 기본en-USSURF_TZ: 시스템 timezone 또는 지정값SURF_HEADLESS: 기본true,false로 바꾸면 Chrome을 보이게 실행SURF_IDLE_CLOSE_MS: 유휴 후 종료까지의 대기 시간
프로젝트 정보
- Language: TypeScript
- License: MIT
- Stars: 12
- Open issues: 0
- Contributors: 1
- Created: 2026-04-30
- Last push: 2026-05-01
- Topics: anti-bot, google-search, mcp, playwright, no-api-key
사용 판단
관점에서는 검색/리서치 MCP로 쓸 만하다.
- Google 검색을 외부 API 없이 붙일 수 있음
- MCP 클라이언트에서 바로 호출 가능
- 검색 + 본문 추출까지 일괄 처리 가능
다만 주의할 점도 분명하다.
- Google/Chrome/profile 상태에 의존하므로 서버리스나 완전 무상태 환경에는 부적합
- CAPTCHA가 뜨면 사람이 개입해야 함
- 검색 품질과 안정성은 Google UI/selector 변화에 영향을 받음
결론:
- 로컬 MCP 리서치 도구로는 사용 가능
- 이 Google 검색/본문 추출을 Claude Code 워크플로우에 붙일 때 특히 유용
- 장기 운영은 프로필/캡차/브라우저 환경 변화에 대한 관찰이 필요