Provides tools for retrieving articles and weekly news from GeekNews (news.hada.io), allowing access to tech news with information including titles, URLs, points, authors, and comments, while using caching to reduce server load.
GeekNews MCP Server
This project is a Model Context Protocol (MCP) server that fetches articles from GeekNews . It is implemented in Python and uses BeautifulSoup to perform web scraping.
function
|
|
|
|
Tools
get_articlestool: Ability to fetch articles from GeekNewsYou can specify the article type (top, new, ask, show) and the number of articles to return.
Each response contains title, URL, points, author, time, number of comments, and ranking information.
get_weekly_newstool: Ability to fetch weekly news from GeekNewsYou can specify a specific weekly news ID or retrieve the most recent weekly news.
Provides information such as the title, number, ID, content, URL, and list of items of weekly news.
Each item contains a title, URL, and ranking information.
Related MCP server: mcp-server-firecrawl
How to use
Installation using Smithery
Add server information to the MCP settings file
{ "mcpServers": { "geeknews-mcp-server": { "command": "npx", "args": [ "-y", "@smithery/cli@latest", "run", "@the0807/geeknews-mcp-server", "--key", "smithery에서 발급 받은 키" ] } } }
How to install locally
Git Clone
git clone https://github.com/the0807/GeekNews-MCP-Server cd GeekNews-MCP-ServerSetting the environment with uv
uv syncRunning a virtual environment
uv venv source .venv/bin/activateTesting your server with MCP Inspector
uv run mcp mcp dev main.py # 터미널에 나오는 URL(MCP Inspector)로 접속하여 서버 테스트
Code Structure
src/models.py: Define a data class that stores article information.src/parser.py: Parses HTML from the GeekNews website to extract article information.src/client.py: HTTP client that fetches data from the GeekNews website.src/config.py: Define settings and constantssrc/server.py: MCP server implementationmain.py: Server execution entry point
[!Note]
This server relies on the HTML structure of the GeekNews website. If the website structure changes, you may need to update your parsing logic.



