Unified Search MCP Server

by jdeun

Not rated
GitHub

About

Provides unified search capabilities across Google Scholar, Google Web Search, and YouTube.

Details

Author
jdeun
Categories
Search, Other
Tags
#web-research, #youtube, #google-drive

Setup

Install Unified Search MCP Server in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/jdeun/unified-search-mcp-server

Follow the installation instructions in the repository README, then restart your MCP client.

Provides unified search capabilities across Google Scholar, Google Web Search, and YouTube.

프로덕션 레벨MCP (Model Context Protocol) 서버로 Google Scholar, Google Web Search, YouTube를 통합 검색할 수 있습니다.

- 🎓 Google Scholar: 학술 논문 검색 (저자, 연도 필터링)
- 🌐 Google Web Search: Google Custom Search API를 사용한 웹 검색
- 📺 YouTube Search: 동영상 검색 (길이, 업로드 날짜, 정렬 옵션)
- 🔄 통합 검색: 모든 소스에서 동시 검색

- 🔐 보안: API 키 암호화, 입력값 검증, XSS/SQL 인젝션 방지
- 💾 분산 캐싱: Redis 기반 캐싱 및 TTL 관리
- ⚡ Rate Limiting: Redis 백엔드 기반 설정 가능한 rate limit
- 📊 모니터링: Prometheus 메트릭, 헬스 체크, 구조화된 로깅
- 🔄 복원력: 재시도 로직, 서킷 브레이커, 우아한 성능 저하
- 📝 감사 로깅: 규정 준수를 위한 포괄적인 감사 추적

- Python 3.11+
- Redis (선택사항, 분산 기능용)
- API 키:

- Google Custom Search API (웹 검색용)

- YouTube Data API v3 (YouTube 검색용)

git clone https://github.com/JDeun/unified-search-mcp-server.git cd unified-search-mcp-server
python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate
cp .env.example .env # .env 파일을 편집하여 API 키와 설정 입력
# API 키 GOOGLE_API_KEY=your-google-api-key GOOGLE_CUSTOM_SEARCH_ENGINE_ID=your-cse-id YOUTUBE_API_KEY=your-youtube-api-key # 보안 MCP_ENCRYPTION_KEY=your-256-bit-key MCP_RATE_LIMIT_SECRET=your-secret # Redis (선택사항) MCP_REDIS_URL=redis://localhost:6379/0 # 설정 MCP_ENV=production MCP_LOG_LEVEL=INFO MCP_CACHE_TTL=3600

- Google Custom Search API:

- Google Cloud Console접속

- "Custom Search API" 활성화
- 인증 정보 생성 (API 키)
-
cse.google.com에서 Custom Search Engine 생성

- 동일한 Google Cloud Console 프로젝트 사용

- "YouTube Data API v3" 활성화
- 동일한 API 키 사용 또는 새로 생성

# 개발 모드 (stdio) python unified_search_server.py # 프로덕션 모드 (HTTP) python unified_search_server.py --transport streamable-http # 커스텀 포트 MCP_PORT=8080 python unified_search_server.py --transport streamable-http
# 이미지 빌드 docker build -t unified-search-mcp . # 컨테이너 실행 docker run -p 8000:8000 \ -e GOOGLE_API_KEY=your-key \ -e GOOGLE_CUSTOM_SEARCH_ENGINE_ID=your-cse \ -e YOUTUBE_API_KEY=your-key \ unified-search-mcp
{ "mcpServers": { "unified-search": { "command": "python", "args": ["/path/to/unified_search_server.py"], "env": { "GOOGLE_API_KEY": "your-key", "GOOGLE_CUSTOM_SEARCH_ENGINE_ID": "your-cse", "YOUTUBE_API_KEY": "your-key" } } } }
results = await unified_search( query="인공지능", sources=["scholar", "web", "youtube"], num_results=10 )
results = await search_google_scholar( query="머신러닝", ="Yann LeCun", year_start=2020, year_end=2024, num_results=10 )
results = await search_google_web( query="ChatGPT", language="ko", safe_search="medium", num_results=10 )
results = await search_youtube( query="파이썬 튜토리얼", video_duration="medium", upload_date="month", order="viewCount", num_results=20 )
info = await get_author_info("Geoffrey Hinton")
await clear_cache(source="web") # 또는 None으로 전체 삭제
src/ ├── config/ # 설정 및 보안 ├── models/ # 데이터 모델 및 검증 ├── services/ # 검색 서비스 구현 ├── cache/ # 캐싱 레이어 ├── utils/ # 유틸리티 (로깅, rate limiting) ├── monitoring/ # 메트릭 및 헬스 체크 └── mcp_server.py # 메인 서버 구현

- 입력값 검증 및 살균
- API 키 암호화 저장
- 클라이언트/엔드포인트별 rate limiting
- 규정 준수를 위한 감사 로깅
- CORS 및 요청 ID 추적

- Redis 기반 분산 캐싱
- HTTP 클라이언트 연결 풀링
- 동시 검색 실행
- 지수 백오프를 통한 스마트 재시도
- 외부 API용 서킷 브레이커

- 검색 요청 수 및 지연 시간
- 캐시 히트율
- API 할당량 사용량
- 소스별 오류율
- Rate limit 위반

- 모든 API 키 Fernet으로 암호화
- XSS/SQL 인젝션 방지를 위한 입력 검증
- 남용 방지를 위한 rate limiting
- 민감한 데이터 없는 구조화된 로깅
- 정기적인 보안 업데이트

- PII 저장 없는 GDPR 준비
- 모든 검색에 대한 감사 추적
- 설정 가능한 데이터 보존
- API 사용량 추적
- 저장소 포크
- 기능 브랜치 생성 (git checkout -b feature/amazing)
- 변경 사항 커밋 (git commit -m 'Add feature')
- 브랜치에 푸시 (git push origin feature/amazing)
- Pull Request 열기

- FastMCP로 구축
-
scholarly를 통한 Google Scholar 검색
- MCP 커뮤니티의 영감

- Google Web Search: 100 쿼리/일 (무료 티어)
- YouTube API: 10,000 유닛/일 (약 100 검색)
- Google Scholar: 공식 API 없음, rate 제한 있음

- 분산 배포를 위해 Redis 사용
- 적절한 API 키 로테이션 설정
- Rate limit 및 할당량 모니터링
- API 오류에 대한 알림 설정
- 정기적인 설정 백업

- GitHub Issues:이슈 생성
- Smithery 지원: 배포 관련 문제

Search global news using natural language. Webz.io News Search API returns the most relevant articles and content, with filters for source, country, language, date, sentiment, and category.

Live data from Twitter, Reddit, the web, GitHub, Amazon and YouTube for AI agents - one hosted MCP server, no API keys.

A server for travel planning and interacting with Google Maps services.

Fetch, convert, and search AWS documentation pages, with recommendations for related content.

Search campgrounds around the world on campertunity, check availability, and provide booking links.

The Ferryhopper MCP Server exposes ferry routes, schedules and booking redirects so an AI assistant can discover connections across Europe and the Mediterranean and send users to Ferryhopper to complete bookings.

All-in-One SEO & Web Intelligence Toolkit API from FetchSERP.

MCP server that provides read-only access to HyperKitty, the web-based email archive component of Mailman 3.

At Sunrise Apps, we believe AI agents should be limitless, especially when it comes to visual data. We created ImageSorcery to bridge the critical gap in AI's ability to interact with and manipulate images directly, all while upholding the highest standards of privacy and security.

Just Domain is the domain registrar for businesses built with AI. Its remote MCP server checks availability and returns first-year and renewal pricing, plus a link to register on justdomain.ai, with DNS and WHOIS privacy in the same place. No account, no API key, read only. Endpoint: https://mcp.justdomain.ai/

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.