Provides web search capabilities through Google Custom Search API with language, safe search, and result filtering options.
Enables searching for academic papers and articles with filtering by author, year range, and retrieval of author information from Google Scholar.
Allows searching for YouTube videos with filters for duration, upload date, and sorting options like view count or relevance.
Unified Search MCP Server ๐
ํ๋ก๋์ ๋ ๋ฒจ 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 ๊ฒ์์ฉ)
๐ ๏ธ ์ค์น
Smithery๋ฅผ ํตํ ๋น ๋ฅธ ์ค์น
Smithery ํ๋ซํผ์ ํตํด ์ง์ ๋ฐฐํฌํ๋ฉด ์๋์ผ๋ก ์ค์ ๋ฉ๋๋ค.
์๋ ์ค์น
์ ์ฅ์ ํด๋ก :
๊ฐ์ ํ๊ฒฝ ์์ฑ:
์์กด์ฑ ์ค์น:
ํ๊ฒฝ ์ค์ :
โ๏ธ ์ค์
ํ๊ฒฝ ๋ณ์
API ํค ๋ฐ๊ธ ๋ฐฉ๋ฒ
Google Custom Search API:
Google Cloud Console ์ ์
"Custom Search API" ํ์ฑํ
์ธ์ฆ ์ ๋ณด ์์ฑ (API ํค)
cse.google.com์์ Custom Search Engine ์์ฑ
YouTube Data API v3:
๋์ผํ Google Cloud Console ํ๋ก์ ํธ ์ฌ์ฉ
"YouTube Data API v3" ํ์ฑํ
๋์ผํ API ํค ์ฌ์ฉ ๋๋ ์๋ก ์์ฑ
๐ ์ฌ์ฉ๋ฒ
์๋ฒ ์คํ
Docker ๋ฐฐํฌ
Claude Desktop ํตํฉ
claude_desktop_config.json์ ์ถ๊ฐ:
๐ ์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ
unified_search
๋ชจ๋ ์์ค์์ ๋์์ ๊ฒ์ํฉ๋๋ค.
search_google_scholar
ํ์ ๋ ผ๋ฌธ์ ๊ฒ์ํฉ๋๋ค.
search_google_web
์น์ ๊ฒ์ํฉ๋๋ค.
search_youtube
YouTube ๋์์์ ๊ฒ์ํฉ๋๋ค.
get_author_info
Google Scholar์์ ์ ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
clear_cache
์บ์๋ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ์ญ์ ํฉ๋๋ค.
get_api_usage_stats
API ์ฌ์ฉ๋๊ณผ ์ ํ์ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
๐๏ธ ์ํคํ ์ฒ
๋ชจ๋์ ์ค๊ณ
๋ณด์ ๋ ์ด์ด
์ ๋ ฅ๊ฐ ๊ฒ์ฆ ๋ฐ ์ด๊ท
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 ์ด๊ธฐ
๐ ๋ผ์ด์ ์ค
MIT ๋ผ์ด์ ์ค - ์์ธํ ๋ด์ฉ์ LICENSE ํ์ผ ์ฐธ์กฐ
๐ ๊ฐ์ฌ์ ๋ง
โ ๏ธ ์ค์ ์ฌํญ
API ์ ํ
Google Web Search: 100 ์ฟผ๋ฆฌ/์ผ (๋ฌด๋ฃ ํฐ์ด)
YouTube API: 10,000 ์ ๋/์ผ (์ฝ 100 ๊ฒ์)
Google Scholar: ๊ณต์ API ์์, rate ์ ํ ์์
ํ๋ก๋์ ๊ณ ๋ ค์ฌํญ
๋ถ์ฐ ๋ฐฐํฌ๋ฅผ ์ํด Redis ์ฌ์ฉ
์ ์ ํ API ํค ๋กํ ์ด์ ์ค์
Rate limit ๋ฐ ํ ๋น๋ ๋ชจ๋ํฐ๋ง
API ์ค๋ฅ์ ๋ํ ์๋ฆผ ์ค์
์ ๊ธฐ์ ์ธ ์ค์ ๋ฐฑ์
๐ ์ง์
๋ฌธ์ ๋ฐ ์ง๋ฌธ:
GitHub Issues: ์ด์ ์์ฑ
Smithery ์ง์: ๋ฐฐํฌ ๊ด๋ จ ๋ฌธ์
MCP ์ปค๋ฎค๋ํฐ๋ฅผ ์ํด โค๏ธ๋ก ์ ์