본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 05. 31. 02:06

web-agent-master/google-search

요약

Playwright 기반의 Node.js 도구로, Google 검색의 안티 스크래핑을 우회하여 결과를 추출합니다. CLI 도구 및 Claude용 MCP 서버로 활용 가능하며, 유료 API 없이 로컬에서 실시간 검색 기능을 구현할 수 있습니다.

핵심 포인트

  • Playwright 기반의 지능형 브라우저 핑거프린트 관리 및 안티 봇 우회
  • Claude 등 AI 어시스턴트를 위한 MCP 서버 통합 지원
  • 유료 SERP API를 대체하는 완전한 오픈 소스 및 무료 도구
  • Windows 환경에 최적화된 명령줄 도구 및 프로세스 핸들링 제공
  • Raw HTML 추출 및 페이지 스크린샷 캡처 기능 포함

Playwright 기반의 Node.js 도구로, 검색 엔진의 안티 스크래핑 (anti-scraping) 메커니즘을 우회하여 Google 검색을 실행하고 결과를 추출합니다. 이 도구는 명령줄 도구 (command-line tool)로 직접 사용하거나, Claude와 같은 AI 어시스턴트에게 실시간 검색 기능을 제공하는 Model Context Protocol (MCP) 서버로 사용할 수 있습니다.

로컬 SERP API 대안: 유료 검색 엔진 결과 API 서비스에 의존할 필요 없이, 모든 검색이 로컬에서 실행됩니다.

고급 안티 봇 (Anti-Bot) 탐지 우회 기술:

  • 실제 사용자 행동을 시뮬레이션하는 지능형 브라우저 핑거프린트 (browser fingerprint) 관리
  • 인증 빈도를 줄이기 위한 브라우저 상태의 자동 저장 및 복구
  • 스마트 헤드리스/헤디드 (headless/headed) 모드 전환, 인증이 필요할 때 자동으로 헤디드 모드로 전환
  • 탐지 위험을 줄이기 위한 장치 및 로캘 (locale) 설정의 무작위화

Raw HTML 검색: Google의 페이지 구조가 변경될 때 분석 및 디버깅을 위해 검색 결과 페이지의 Raw HTML (CSS 및 JavaScript 제거됨)을 가져오는 기능

페이지 스크린샷: HTML 콘텐츠를 저장할 때 전체 페이지 스크린샷을 자동으로 캡처하고 저장

MCP 서버 통합: 추가적인 API 키 없이도 Claude와 같은 AI 어시스턴트에게 실시간 검색 기능 제공

완전한 오픈 소스 및 무료: 모든 코드는 오픈 소스이며 사용 제한이 없고, 자유롭게 커스터마이징 및 확장이 가능합니다.

  • TypeScript로 개발되어 타입 안정성 (type safety)과 더 나은 개발 경험 제공
  • Playwright 기반의 브라우저 자동화로 다양한 브라우저 엔진 지원
  • 검색 키워드를 위한 명령줄 파라미터 지원
  • AI 어시스턴트 통합을 위한 MCP 서버 지원
  • 제목, 링크, 스니펫 (snippet)을 포함한 검색 결과 반환
  • 분석을 위한 검색 결과 페이지의 Raw HTML 가져오기 옵션
  • JSON 형식 출력
  • 헤드리스 및 헤디드 모드 모두 지원 (디버깅용)
  • 상세한 로깅 (logging) 출력
  • 강력한 에러 핸들링 (error handling)
  • 안티 봇 탐지를 효과적으로 피하기 위한 브라우저 상태 저장 및 복구
# 소스에서 설치
git clone https://github.com/web-agent-master/google-search.git
cd google-search
...

이 도구는 Windows 환경에 맞춰 특별히 조정되었습니다:

  • Windows 명령 프롬프트(Command Prompt) 및 PowerShell에서 명령줄 도구(command-line tools)가 제대로 작동하도록 .cmd 파일이 제공됩니다.
  • 로그 파일이 Unix/Linux의 /tmp 디렉토리 대신 시스템 임시 디렉토리에 저장됩니다.
  • 적절한 서버 종료를 보장하기 위해 Windows 전용 프로세스 시그널 핸들링 (process signal handling)이 추가되었습니다.
  • Windows 경로 구분자 (path separators)를 지원하기 위해 크로스 플랫폼 파일 경로 핸들링 (Cross-platform file path handling)이 사용되었습니다.
# 직접적인 명령줄 사용
google-search "search keywords"
# 명령줄 옵션 사용
...

-l, --limit <number>: 결과 개수 제한 (기본값: 10)
-t, --timeout <number>: 밀리초 단위 타임아웃 (default: 60000)
--no-headless: 브라우저 인터페이스 표시 (디버깅용)
--remote-debugging-port <number>: 원격 디버깅 포트 활성화 (기본값: 9222)
--state-file <path>: 브라우저 상태 파일 경로 (기본값: ./browser-state.json)
--no-save-state: 브라우저 상태를 저장하지 않음
--get-html: 결과를 파싱하는 대신 검색 결과 페이지의 원본 HTML을 가져옴
--save-html: HTML을 파일로 저장 (--get-html과 함께 사용)
--html-output <path>: HTML 출력 파일 경로 지정 (--get-html--save-html과 함께 사용)
-V, --version: 버전 번호 표시
-h, --help: 도움말 정보 표시

{
"query": "deepseek",
"results": [
...

--get-html 옵션을 사용할 때, 출력에는 HTML 콘텐츠에 대한 정보가 포함됩니다:

{
"query": "playwright automation",
"url": "https://www.google.com/",
...

--save-html 옵션도 함께 사용하는 경우, 출력에는 HTML이 저장된 경로가 포함됩니다:

{
"query": "playwright automation",
"url": "https://www.google.com/",
...

이 프로젝트는 Model Context Protocol (MCP) 서버 기능을 제공하여, Claude와 같은 AI 어시스턴트가 Google 검색 기능을 직접 사용할 수 있도록 합니다. MCP는 AI 어시스턴트가 외부 도구 및 데이터에 안전하게 접근할 수 있도록 지원하는 개방형 프로토콜 (Open Protocol)입니다.

# 프로젝트 빌드
pnpm build

Claude Desktop 설정 파일을 수정하세요:

  • Mac:
    ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows:
    %APPDATA%\Claude\claude_desktop_config.json

  • 일반적으로 다음 위치에 있습니다:
    C:\Users\username\AppData\Roaming\Claude\claude_desktop_config.json

  • Windows 탐색기 주소창에
    %APPDATA%\Claude
    입력하여 직접 접근할 수 있습니다.

  • 일반적으로 다음 위치에 있습니다:

  • Mac:

서버 설정을 추가하고 Claude를 재시작하세요.

{
"mcpServers": {
"google-search": {
...

Windows 환경의 경우, 다음 설정들을 사용할 수도 있습니다:

  • npx와 함께 cmd.exe 사용:
{
"mcpServers": {
"google-search": {
...
  • node와 전체 경로 사용 (위 방법에서 문제가 발생할 경우 권장됨):
{
"mcpServers": {
"google-search": {
...

참고: 두 번째 방법의 경우, C:/path/to/your/google-search를 google-search 패키지가 설치된 실제 전체 경로로 반드시 교체해야 합니다.

통합 후에는 Claude에서 "최신 AI 연구 검색해줘"와 같이 검색 기능을 직접 사용할 수 있습니다.

google-search/
├── package.json # 프로젝트 설정 및 의존성 (Dependencies)
├── tsconfig.json # TypeScript 설정
...

TypeScript: 개발 언어로, 타입 안정성 (Type safety) 및 더 나은 개발 경험을 제공합니다.
Node.js: JavaScript/TypeScript 코드를 실행하기 위한 런타임 환경 (Runtime environment)입니다.
Playwright: 브라우저 자동화 (Browser automation)를 위한 도구로, 여러 브라우저를 지원합니다.
Commander: 명령줄 인자 (Command line arguments) 파싱 및 도움말 정보 생성을 위한 도구입니다.
Model Context Protocol (MCP): AI 어시스턴트 통합을 위한 개방형 프로토콜 (Open protocol)입니다.
MCP SDK: MCP 서버 구현을 위한 개발 툴킷 (Development toolkit)입니다.
Zod: 검증 (Validation) 및 타입 안정성을 위한 스키마 정의 라이브러리 (Schema definition library)입니다.
pnpm: 디스크 공간과 설치 시간을 절약하는 효율적인 패키지 관리 도구 (Package management tool)입니다.

모든 명령은 프로젝트 루트 디렉토리에서 실행할 수 있습니다:

# 의존성 설치 (Install dependencies)
pnpm install
# Playwright 브라우저 설치
...
# 개발 모드에서 실행 (Run in development mode)
pnpm dev "search keywords"
# 디버그 모드에서 실행 (브라우저 인터페이스 표시)
...
# 개발 모드에서 MCP 서버 실행 (Run MCP server in development mode)
pnpm mcp
# 컴파일된 MCP 서버 실행
...

이 도구는 강력한 오류 처리 (Error handling) 메커니즘을 내장하고 있습니다:

  • 브라우저 시작 실패 시 친절한 오류 메시지 제공

  • 네트워크 연결 문제 발생 시 자동 오류 상태 반환

  • 검색 결과 파싱 실패 시 상세 로그 제공

  • 타임아웃 (Timeout) 상황 발생 시 원활한 종료 및 유용한 정보 반환

  • 이 도구는 학습 및 연구 목적으로만 사용하십시오.

  • Google의 서비스 약관 및 정책을 준수하십시오.

  • Google에 의해 차단되는 것을 방지하기 위해 요청을 너무 빈번하게 보내지 마십시오.

  • 일부 지역에서는 Google 접속을 위해 프록시 (Proxy)가 필요할 수 있습니다.

  • Playwright는 브라우저를 설치해야 하며, 이는 첫 사용 시 자동으로 다운로드됩니다.

  • 상태 파일 (State files)에는 브라우저 쿠키 및 저장 데이터가 포함되어 있으므로 안전하게 보관하십시오.

  • 상태 파일을 사용하면 Google의 안티 봇 (Anti-bot) 탐지를 효과적으로 피하고 검색 성공률을 높일 수 있습니다.

  • MCP 서버는 Node.js v16 이상이 필요합니다.

  • MCP 서버를 사용할 때는 Claude Desktop이 최신 버전인지 확인하십시오.

  • Claude Desktop을 설정할 때는 MCP 서버 파일에 대한 절대 경로 (Absolute paths)를 사용하십시오.

  • Windows 환경에서는 Playwright 브라우저를 처음 설치할 때 관리자 권한 (Administrator privileges)이 필요할 수 있습니다.

  • 권한 문제 (Permission issues)가 발생하면 명령 프롬프트 (Command Prompt) 또는 PowerShell을 관리자 권한으로 실행해 보십시오.

  • Windows 방화벽 (Windows Firewall)이 Playwright 브라우저의 네트워크 연결을 차단할 수 있습니다. 메시지가 표시되면 액세스를 허용하십시오.

  • 브라우저 상태 파일 (Browser state files)은 기본적으로 사용자의 홈 디렉토리에 .google-search-browser-state.json으로 저장됩니다.

  • 로그 파일 (Log files)은 시스템 임시 디렉토리 내의 google-search-logs 폴더에 저장됩니다.

유료 검색 엔진 결과 API 서비스 (SerpAPI 등)와 비교했을 때, 이 프로젝트는 다음과 같은 장점을 제공합니다:

완전 무료 (Completely Free): API 호출 비용이 발생하지 않습니다.
로컬 실행 (Local Execution): 모든 검색이 로컬에서 실행되며, 제3자 서비스에 의존하지 않습니다.
개인정보 보호 (Privacy Protection): 검색 쿼리가 제3자에 의해 기록되지 않습니다.
커스터마이징 가능 (Customizability): 완전한 오픈 소스 (Open source)로, 필요에 따라 수정 및 확장이 가능합니다.
사용 제한 없음 (No Usage Limits): API 호출 횟수나 빈도 제한을 받지 않습니다.
MCP 통합 (MCP Integration): Claude와 같은 AI 어시스턴트와의 통합을 기본적으로 지원합니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0