noapi-google-search-mcp 소개
noapi-google-search-mcp는 Google API 키 없이도 로컬 LLM(Large Language Model)이 실제 Google 검색 결과를 활용할 수 있게 해주는 Model Context Protocol (MCP) 서버입니다. 이 프로젝트는 Python 기반으로 작성되었으며, Headless Chromium과 Playwright 기술을 활용하여 브라우저가 실제 웹페이지를 방문하듯 검색 결과를 수집합니다. 따라서 복잡한 Google Cloud Platform 설정이나 유료 API 할당량 걱정 없이 무료로 무제한 검색 기능을 구현할 수 있습니다.
일반적으로 Claude Desktop이나 LM Studio와 같은 로컬 LLM 환경에서 인터넷 검색 기능을 사용하려면 Google Custom Search JSON API를 연결해야 합니다. 하지만 공식 API는 설정이 번거롭고(Google Cloud 프로젝트 생성 필요), 하루 100회 무료 사용량을 초과하면 비용이 발생하며, 실제 일반 사용자가 보는 검색 결과와 다른 'Custom Search Engine' 결과를 반환한다는 단점이 있습니다. noapi-google-search-mcp는 이러한 제약을 극복하기 위해 만들어졌습니다.
noapi-google-search-mcp 도구는 단순히 텍스트 검색 결과만 가져오는 것이 아니라, Google 쇼핑, 항공권, 호텔, 번역, 지도, 날씨, 주식, 뉴스, 학술 검색(Scholar), 도서, 이미지, 트렌드 등 다양한 Google의 특화된 서비스들을 개별적인 도구(Tool) 형태로 제공합니다. 또한, visit_page 기능을 통해 검색된 URL의 본문 내용을 직접 읽어와 LLM에게 전달할 수도 있습니다.
noapi-google-search-mcp vs. Google API 기반 MCP 서버와 비교
이 프로젝트는 기존의 공식 API를 사용하는 방식과 명확한 차이점을 가지고 있습니다.
| 특징 | noapi-google-search-mcp | 일반적인 API 기반 MCP 서버 |
|---|---|---|
| API 키 | 필요 없음 | 필요함 (Google Cloud 설정 복잡) |
| 비용 | 무료 | 일일 100회 초과 시 유료 |
| 설정 소요 시간 | 짧음 (pip install 후 바로 사용) |
김 (GCP 프로젝트 생성 및 API 활성화 필요) |
| 결과 품질 | 실제 사용자가 보는 Google 검색 결과 | Custom Search Engine 결과 (랭킹 다를 수 있음) |
| JavaScript 렌더링 | 지원 (Chromium 사용) | 불가능 (단순 텍스트 파싱) |
| 특화 기능 | 쇼핑, 항공권, 호텔, 날씨 등 내장 지원 | 대부분 별도 API 연동 필요 |
noapi-google-search-mcp의 주요 특징
주요 기능 및 포함된 도구 (Tools)
noapi-google-search-mcp 서버는 LLM이 상황에 맞춰 자동으로 선택할 수 있는 다양한 도구를 제공합니다. 사용자가 "최신 파이썬 프레임워크 찾아줘"라고 요청하면 LLM은 자동으로 Google Search 도구를 호출합니다.
- google_search: 기본 웹 검색입니다. 기간(
time_range), 사이트 제한(site), 언어(language), 지역(region) 필터링을 지원합니다. - google_shopping: 제품 가격, 판매처, 평점 정보를 검색합니다.
- google_flights / google_hotels: 항공권 일정 및 가격, 호텔 숙박 정보를 검색합니다.
- google_translate: Google 번역을 사용하여 텍스트를 번역합니다.
- google_maps: 장소, 레스토랑, 업체 정보 및 리뷰를 검색합니다.
- google_weather: 전 세계 날씨 및 예보를 확인합니다.
- google_finance: 주가, 시장 데이터, 기업 정보를 조회합니다.
- google_news / google_scholar: 뉴스 헤드라인 및 학술 논문/인용 정보를 검색합니다.
- visit_page: 특정 URL의 웹페이지 내용을 텍스트로 가져옵니다(스크래핑).
사용 예시 (Sample Prompts)
noapi-google-search-mcp 서버가 연결되면, 사용자는 자연어로 질문을 던지고 LLM이 상황에 맞는 도구(Tool)를 자동으로 선택하여 실행합니다. 다음은 각 도구 호출을 위한 예시 프롬프트입니다:
| 카테고리 | 사용자 질문 예시 (User Prompt) | 호출되는 도구 및 파라미터 (Tool & Params) |
|---|---|---|
| 웹 검색 (기본) |
"2025년 최고의 파이썬 웹 프레임워크 검색해줘" | Google Search(query="best python frameworks 2025") |
| 웹 검색 (사이트 필터) |
"레딧(Reddit)에서 홈 랩(Home lab) 셋업 글 찾아줘" | Google Search(query="home lab setups", site="reddit.com") |
| 웹 검색 (기간 필터) |
"지난주에 올라온 AI 관련 뉴스 검색해줘" | Google Search(query="AI news", time_range="past_week") |
| 쇼핑 | "가장 저렴한 맥북 에어(MacBook Air) 찾아줘" | Shopping Graph(query="cheapest MacBook Air") |
| 항공권 | "3월 15일 뉴욕에서 런던으로 가는 비행기 찾아줘" | Google Flights(origin="New York", destination="London", date="2025-03-15") |
| 호텔 | "이번 주말 파리에 있는 호텔 찾아줘" | Google Hotels(query="hotels in Paris") |
| 지도/장소 | "타임스퀘어 근처 이탈리안 레스토랑 찾아줘" | Maps(query="Italian restaurants near Times Square") |
| 날씨 | "지금 두바이 날씨 어때?" | google_weather(location="Dubai") |
| 금융/주식 | "테슬라(TSLA) 주가 확인해줘" | google_finance(query="TSLA:NASDAQ") |
| 학술/논문 | "트랜스포머 어텐션 메커니즘에 관한 논문 찾아줘" | google_scholar(query="transformer attention mechanism") |
| 웹페이지 읽기 | "이 기사 링크 읽고 내용 요약해줘: https://..." | visit_page(url="https://example.com/article") |
| 번역 | "'안녕하세요'를 일본어로 번역해줘" | google_translate(text="안녕하세요", to_language="Japanese") |
사용자는 Google Search와 같은 함수명을 직접 입력할 필요가 없으며, LLM이 문맥을 파악하여 자동으로 적절한 도구를 호출합니다.
noapi-google-search-mcp 설치 및 사용
패키지 설치
noapi-google-search-mcp 프로젝트는 Python 패키지로 제공되며, pipx를 사용하는 것이 가장 간편합니다. 또한, 브라우저 자동화를 위해 Chromium 설치가 필수적입니다. pipx를 사용하면 시스템의 PATH에 자동으로 등록되어 어디서든 실행 가능하며, 다음과 같습니다:
# noapi-google-search-mcp 설치
pipx install noapi-google-search-mcp
# Chromium 브라우저 설치
playwright install chromium
또는, 사용자의 환경에 pipx가 없는 경우 가상 환경을 생성하여 설치할 수 있습니다:
# 가상 환경 생성
python3 -m venv ~/.local/share/noapi-google-search-mcp
# 패키지 설치
~/.local/share/noapi-google-search-mcp/bin/pip install noapi-google-search-mcp
# Chromium 브라우저 설치
~/.local/share/noapi-google-search-mcp/bin/playwright install chromium
설정 방법
설치 후, 사용하려는 LLM 클라이언트 설정 파일에 MCP 서버 정보를 추가해야 합니다. 예를 들어, Claude Desktop에서 사용하려면 claude_desktop_config.json 파일을 열어 아래 내용을 추가합니다.
pipx로 설치한 경우에는 다음과 같이 추가합니다:
{
"mcpServers": {
"google-search": {
"command": "noapi-google-search-mcp"
}
}
}
venv로 설치한 경우에는 command 경로를 전체 절대 경로(예: /Users/username/.local/.../bin/noapi-google-search-mcp)로 지정해야 합니다.
라이선스
noapi-google-search-mcp 프로젝트는 MIT 라이선스로 배포되고 있습니다.
noapi-google-search-mcp 프로젝트 GitHub 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()
