안녕하세요! 오늘은 로컬 LLM(LM Studio, Claude Desktop 등) 사용자들에게 필수적인 MCP 서버인 noapi-google-search-mcp를 소개해드리겠습니다. API 키 없이 Google 검색은 물론 OCR, 유튜브 분석, 이미지 인식까지 가능한 강력한 도구입니다.
📌 목차
🔍 MCP란 무엇인가?
MCP(Model Context Protocol)는 Anthropic에서 개발한 개방형 프로토콜로, AI 모델이 외부 도구와 데이터 소스에 연결될 수 있도록 표준화된 방법을 제공합니다.
MCP의 핵심 장점:
- 표준화: 다양한 도구를 일관된 방식으로 연결
- 확장성: 필요한 기능을 모듈처럼 추가
- 보안: 로컬에서 실행되어 데이터 유출 우려 감소
- 유연성: API 키 없이도 다양한 서비스 활용 가능
쉽게 말해, LLM에게 "손"과 "눈"을 달아주는 프로토콜이라고 생각하시면 됩니다!
🚀 noapi-google-search-mcp 소개
noapi-google-search-mcp는 Vincent Kaufmann이 개발한 MCP 서버로, Google API 키 없이 다음 기능들을 제공합니다:
✨ 주요 기능
- 🔍 Google 검색 - 실시간 검색 결과
- 🛒 Google 쇼핑 - 상품 가격 비교
- ✈️ Google 항공권 - 최저가 항공권 검색
- 🏨 Google 호텔 - 숙소 검색
- 🗺️ Google 지도 - 장소 검색 및 길찾기
- 🌤️ Google 날씨 - 실시간 날씨 정보
- 📈 Google 주식 - 실시간 주가 정보
- 📰 Google 뉴스 - 최신 뉴스 검색
- 🎓 Google 학술 - 논문 검색
- 📚 Google 도서 - 책 검색
- 🖼️ Google 이미지 - 이미지 검색
- 👁️ Google 렌즈 - 역이미지 검색
- 🔤 로컬 OCR - 이미지에서 텍스트 추출 (인터넷 불필요)
- 🎬 유튜브 트랜스크립션 - 자막 추출 및 분석
- ✂️ 비디오 클립 추출 - 특정 주제 구간 자동 추출
🎯 특별한 점
- API 키 불필요: Google Cloud 프로젝트 생성, API 활성화, 키 발급 과정 생략
- 묣비용: 100회 이후 과금되는 API 기반 서버와 달리 완전 묣비
- JavaScript 렌더링: Playwright 기반으로 동적 웹페이지 완벽 지원
- 로컬 처리: OCR, 비디오 분석 등 민감한 작업을 로컬에서 수행
⚖️ API 기반 서버와의 비교
| 기능 | noapi-google-search-mcp | API 기반 MCP 서버 |
|---|---|---|
| API 키 필요 | ❌ 없음 | ✅ 필요 |
| 비용 | 🆓 묣비 | 💰 100회/일 이후 과금 |
| 설정 시간 | ⏱️ 5분 (pip install) | ⏳ 30분+ (Cloud 프로젝트 설정) |
| JavaScript 페이지 | ✅ 렌더링 지원 | ❌ 미지원 |
| Google 쇼핑/항공권/호텔 | ✅ 내장 | ❌ 별도 API 필요 |
| Google 렌즈/이미지 | ✅ 내장 | ❌ 별도 API 필요 |
| 로컬 OCR | ✅ 내장 (RapidOCR) | ❌ 불가 |
| 비디오 트랜스크립션 | ✅ 내장 (faster-whisper) | ❌ 불가 |
| 결과 품질 | 👍 실제 Google 결과 | 🤔 Custom Search Engine |
💻 설치 방법
방법 1: pipx로 설치 (추천)
# pipx 설치 (미설치 시)
pip install --user pipx
# noapi-google-search-mcp 설치
pipx install noapi-google-search-mcp
# Playwright Chromium 설치
playwright install chromium
방법 2: 가상환경에 설치
# 가상환경 생성
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
방법 3: pip로 직접 설치 (PEP 668 환경)
# --break-system-packages 플래그 사용
pip install --user --break-system-packages noapi-google-search-mcp
# PATH에 추가
export PATH="$PATH:$HOME/.local/bin"
# Chromium 설치
playwright install chromium
🔧 설치 후 PATH 설정
# ~/.bashrc 또는 ~/.zshrc에 추가
echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc
source ~/.bashrc
✅ 설치 확인
which noapi-google-search-mcp
# 출력: /home/user/.local/bin/noapi-google-search-mcp
noapi-google-search-mcp
# MCP 서버가 정상적으로 시작됨
⚙️ MCP 클라이언트 설정
1️⃣ LM Studio 설정
~/.lmstudio/mcp.json 파일 생성:
{
"mcpServers": {
"google-search": {
"command": "noapi-google-search-mcp",
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
가상환경 설치 시:
{
"mcpServers": {
"google-search": {
"command": "/home/user/.local/share/noapi-google-search-mcp/bin/noapi-google-search-mcp",
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
2️⃣ Claude Desktop 설정
claude_desktop_config.json 파일 편집:
{
"mcpServers": {
"google-search": {
"command": "noapi-google-search-mcp"
}
}
}
3️⃣ OpenCode 설정
~/.config/opencode/opencode.json 파일 생성:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"google-search": {
"type": "local",
"command": ["/home/user/.local/bin/noapi-google-search-mcp"],
"enabled": true,
"environment": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
🛠️ 사용 가능한 도구들
🔍 검색 관련
google_search - 웹 검색
{
"query": "파이썬 튜토리얼",
"num_results": 5,
"time_range": "past_week",
"site": "github.com",
"language": "ko",
"region": "kr"
}
파라미터:
query(필수): 검색어num_results: 결과 수 (1-10, 기본값 5)time_range: 시간 필터 (past_hour, past_day, past_week, past_month, past_year)site: 특정 사이트 제한 (reddit.com, github.com 등)page: 페이지 번호 (1-10)language: 언어 코드 (ko, en, ja 등)region: 지역 코드 (kr, us, jp 등)
google_shopping - 쇼핑 검색
{
"query": "노트북",
"num_results": 5
}
google_flights - 항공권 검색
{
"origin": "서울",
"destination": "도쿄",
"date": "2025-03-15",
"return_date": "2025-03-22"
}
google_hotels - 호텔 검색
{
"query": "부산 해운대",
"num_results": 5
}
google_maps - 지도 검색
{
"query": "강남역 맛집",
"num_results": 5
}
google_maps_directions - 길찾기
{
"origin": "서울역",
"destination": "강남역",
"mode": "transit"
}
mode 옵션: driving, walking, transit, cycling
📰 정보 검색
google_news - 뉴스 검색
google_scholar - 학술 검색
google_books - 도서 검색
google_finance - 주식 정보
google_weather - 날씨 정보
google_trends - 트렌드 검색
google_translate - 번역
🖼️ 이미지 및 비전
google_images - 이미지 검색
{
"query": "고양이",
"num_results": 5
}
google_lens - 역이미지 검색
{
"image_source": "https://example.com/photo.jpg"
}
또는 로컬 파일:
{
"image_source": "/home/user/image.jpg"
}
google_lens_detect - 객체 탐지 및 식별
OpenCV로 이미지 내 모든 객체를 탐지하고 각각 Google Lens로 식별
{
"image_source": "/home/user/photo.jpg"
}
ocr_image - 로컬 OCR (오프라인 가능)
RapidOCR을 사용해 이미지에서 텍스트 추출
{
"image_source": "/home/user/screenshot.png"
}
반환값:
- 추출된 텍스트 (위치 순서대로 정렬)
- 신뢰도 점수
🎬 비디오 도구
transcribe_video - 유튜브/비디오 트랜스크립션
{
"url": "https://youtube.com/watch?v=...",
"model_size": "base",
"language": "ko"
}
model_size: tiny, base, small, medium, large
search_transcript - 트랜스크립션 검색
{
"url": "https://youtube.com/watch?v=...",
"query": "메모리 대역폭",
"model_size": "base",
"context_segments": 2
}
extract_video_clip - 비디오 클립 추출
{
"url": "https://youtube.com/watch?v=...",
"start_seconds": 150,
"end_seconds": 315,
"buffer_seconds": 3,
"output_filename": "hardware_overview"
}
추출된 클립은 ~/clips/에 저장됩니다.
📄 기타 도구
visit_page - 웹페이지 방문
{
"url": "https://example.com/article"
}
list_images - 이미지 파일 목록
{
"directory": "~/lens/"
}
💡 실전 사용 예시
예시 1: 최신 기술 트렌드 검색
"지난주 Reddit에서 Python 비동기 프로그래밍에 대해
가장 많이 논의된 내용을 검색해줘"→ google_search 호출:
- query: "Python async"
- site: "reddit.com"
- time_range: "past_week"
예시 2: 논문 리서치
"Transformer attention mechanism에 관한
최신 논문 5개를 찾아줘"→ google_scholar 호출
예시 3: 이미지 분석
"이 이미지에 있는 제품이 뭔지 알려줘"
[이미지 첨부]→ google_lens 호출
예시 4: OCR로 문서 디지털화
"이 스캔한 영수증에서 텍스트를 추출해줘"→ ocr_image 호출
예시 5: 유튜브 요약
"이 유튜브 영상에서 램과 메모리 대역폭에
대해 언급된 부분을 찾아서 요약해줘"→ transcribe_video → search_transcript 순차 호출
예시 6: 특정 주제 클립 추출
"이 영상에서 '가격'에 대해 이야기하는
부분만 잘라서 저장해줘"→ transcribe_video → LLM이 타임스탬프 분석 → extract_video_clip 호출
🐛 문제 해결
"pipx: command not found"
pip install --user pipx
export PATH="$PATH:$HOME/.local/bin"
"externally-managed-environment" 에러
pip install --user --break-system-packages noapi-google-search-mcp
Playwright Chromium 설치 실패
# Node.js 먼저 설치 확인
node --version
# Playwright 재설치
playwright install chromium
MCP 서버 연결 실패
- 경로 확인:
which noapi-google-search-mcp - 권한 확인:
chmod +x /home/user/.local/bin/noapi-google-search-mcp - 로그 확인: 클라이언트 로그에서 에러 메시지 확인
📊 성능 팁
OCR 정확도 향상
- 이미지 해상도가 높을수록 좋음 (최소 300dpi 권장)
- 글자가 선명하고 배경과 대비가 뚜렷할 것
- 기울어진 텍스트는 정면에서 촬영
비디오 트랜스크립션 속도
model_size: "tiny"로 설정 시 가장 빠름 (정확도는 낮음)- "base": 속도와 정확도의 균형
- "large": 최고 정확도 (처리 시간 긺)
검색 효율화
site파라미터로 특정 도메인 제한 시 결과 품질 향상time_range로 최신 정보 필터링num_results: 5-10 사이가 적절 (너무 많으면 컨텍스트 초과)
🔒 보안 고려사항
- 로컬 실행: OCR, 비디오 처리는 로컬에서 수행되어 데이터 유출 우려 없음
- Playwright: 헤드리스 브라우저로 Google 검색 시 쿠키/세션은 별도 저장되지 않음
- YouTube 다운로드: yt-dlp 사용, 개인 사용 목적에 한해 이용
📝 결론
noapi-google-search-mcp는 로컬 LLM 사용자에게 꼭 필요한 도구입니다. API 키 없이 Google의 모든 기능을 활용할 수 있고, OCR과 비디오 분석까지 로컬에서 처리할 수 있어 프라이버시도 보호됩니다.
특히 다음 분들에게 강력히 추천합니다:
- 🔒 API 키 발급이 번거로운 분
- 💸 비용 부담을 줄이고 싶은 분
- 🏠 로컬에서 모든 것을 처리하고 싶은 분
- 📚 논문 리서치가 많은 학생/연구자
- 🎬 유튜브 콘텐츠 분석이 필요한 분
한번 설치해두면 AI에게 "검색해줘", "이 이미지 뭐야?", "이 영상 요약해줘"라고 자연스럽게 말할 수 있게 됩니다. 지금 바로 설치해보세요!
📚 참고 자료
- GitHub: https://github.com/VincentKaufmann/noapi-google-search-mcp
- MCP 공식 문서: https://modelcontextprotocol.io
- LM Studio: https://lmstudio.ai
- Claude Desktop: https://claude.ai/download
이 글이 도움이 되셨다면 댓글과 공감 부탁드립니다! 궁금한 점은 댓글로 남겨주세요.