Fetches and caches daily articles from GeekNews using web scraping.
이 프로젝트는 GeekNews에서 아티클을 가져오는 Model Context Protocol(MCP) 서버입니다. Python으로 구현되었으며, BeautifulSoup을 사용하여 웹 스크래핑을 수행합니다. 서버 부하를 줄이기 위해 하루에 한 번 자동으로 데이터를 파싱하고 캐시에 저장하는 기능을 제공합니다.
![]() | ![]() |
---|---|
![]() | ![]() |
get_articles
도구: GeekNews에서 아티클을 가져오는 기능
get_weekly_news
도구: GeekNews에서 주간 뉴스를 가져오는 기능
Smithery를 이용한 설치
MCP 설정 파일에 서버 정보를 추가
{
"mcpServers": {
"geeknews-mcp-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@the0807/geeknews-mcp-server",
"--key",
"smithery에서 발급 받은 키"
]
}
}
}
Git Clone
git clone https://github.com/the0807/GeekNews-MCP-Server
cd GeekNews-MCP-Server
uv로 환경 세팅
uv sync
가상환경 실행
uv venv
source .venv/bin/activate
MCP Inspector로 서버 테스트
uv run mcp
mcp dev main.py
# 터미널에 나오는 URL(MCP Inspector)로 접속하여 서버 테스트
src/models.py
: 아티클 정보를 저장하는 데이터 클래스 정의src/parser.py
: GeekNews 웹사이트의 HTML을 파싱하여 아티클 정보를 추출src/client.py
: GeekNews 웹사이트에서 데이터를 가져오는 HTTP 클라이언트src/config.py
: 설정과 상수 정의src/cache.py
: 캐시 관리 기능 제공src/scheduler.py
: 주기적인 데이터 갱신 스케줄러src/server.py
: MCP 서버 구현main.py
: 서버 실행 진입점[!Note]
- 이 서버는 GeekNews 웹사이트의 HTML 구조에 의존합니다. 웹사이트 구조가 변경되면 파싱 로직을 업데이트해야 할 수 있습니다.
- 캐시 데이터는 사용자의 홈 디렉토리 아래
.cache/geeknews-mcp
폴더에 저장됩니다.
Fast, token-efficient web content extraction that converts websites to clean Markdown. Features Mozilla Readability, smart caching, polite crawling with robots.txt support, and concurrent fetching with minimal dependencies.
Integrate real-time Scrapeless Google SERP(Google Search, Google Flight, Google Map, Google Jobs....) results into your LLM applications. This server enables dynamic context retrieval for AI workflows, chatbots, and research tools.
Use 3,000+ pre-built cloud tools to extract data from websites, e-commerce, social media, search engines, maps, and more
Render website screenshots with ScreenshotOne
Dynamically scan and analyze potentially malicious URLs using the urlDNA.io
Hyperbrowser is the next-generation platform empowering AI agents and enabling effortless, scalable browser automation.
Fetch the content of a remote URL as Markdown with Jina Reader.
Fetch Bilibili video comments in bulk, including nested replies. Requires a Bilibili cookie for authentication.
Easy web data access. Simplified retrieval of information from websites and online sources.
Browser automation using Puppeteer, with support for local, Docker, and Cloudflare Workers deployments.