https://github.com/the0807/GeekNews-MCP-Server
๐ฐ GeekNews MCP Server
https://github.com/the0807/GeekNews-MCP-Server
Last synced: 2 months ago
JSON representation
๐ฐ GeekNews MCP Server
- Host: GitHub
- URL: https://github.com/the0807/GeekNews-MCP-Server
- Owner: the0807
- License: mit
- Created: 2025-04-05T13:24:37.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-04-13T05:48:56.000Z (2 months ago)
- Last Synced: 2025-04-13T06:28:09.572Z (2 months ago)
- Language: Python
- Homepage:
- Size: 1.27 MB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-mcp-zh - the0807/GeekNews-MCP-Server
- mcp-index - GeekNews Server - Fetch articles from GeekNews using web scraping capabilities, providing access to the latest news stories along with various metadata like titles, URLs, points, authors, and comments. The server caches data to optimize performance and includes tools for retrieving both current articles and weekly summaries. (News and Media)
README
# GeekNews MCP Server
[](https://smithery.ai/server/@the0807/geeknews-mcp-server)
์ด ํ๋ก์ ํธ๋ [GeekNews](https://news.hada.io)์์ ์ํฐํด์ ๊ฐ์ ธ์ค๋ Model Context Protocol(MCP) ์๋ฒ์ ๋๋ค. Python์ผ๋ก ๊ตฌํ๋์์ผ๋ฉฐ, BeautifulSoup์ ์ฌ์ฉํ์ฌ ์น ์คํฌ๋ํ์ ์ํํฉ๋๋ค. ์๋ฒ ๋ถํ๋ฅผ ์ค์ด๊ธฐ ์ํด ํ๋ฃจ์ ํ ๋ฒ ์๋์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํ์ฑํ๊ณ ์บ์์ ์ ์ฅํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
## ๊ธฐ๋ฅ
| | |
|:-------------------------:|:-------------------------:|
|||### ๋๊ตฌ (Tools)
- `get_articles` ๋๊ตฌ: GeekNews์์ ์ํฐํด์ ๊ฐ์ ธ์ค๋ ๊ธฐ๋ฅ
- ์ํฐํด ์ ํ(top, new, ask, show)๊ณผ ๋ฐํํ ์ํฐํด ์๋ฅผ ์ง์ ํ ์ ์์
- ๊ฐ ์๋ต์๋ ์ ๋ชฉ, URL, ํฌ์ธํธ, ์์ฑ์, ์๊ฐ, ๋๊ธ ์, ์์ ์ ๋ณด๊ฐ ํฌํจ๋จ
- ์บ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ ๋ถํ ๊ฐ์- `get_weekly_news` ๋๊ตฌ: GeekNews์์ ์ฃผ๊ฐ ๋ด์ค๋ฅผ ๊ฐ์ ธ์ค๋ ๊ธฐ๋ฅ
- ํน์ ์ฃผ๊ฐ ๋ด์ค ID๋ฅผ ์ง์ ํ๊ฑฐ๋ ๊ฐ์ฅ ์ต๊ทผ ์ฃผ๊ฐ ๋ด์ค๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์
- ์ฃผ๊ฐ ๋ด์ค์ ์ ๋ชฉ, ๋ฒํธ, ID, ๋ด์ฉ, URL, ์์ดํ ๋ชฉ๋ก ๋ฑ์ ์ ๋ณด๋ฅผ ์ ๊ณต
- ๊ฐ ์์ดํ ์๋ ์ ๋ชฉ, URL, ์์ ์ ๋ณด๊ฐ ํฌํจ๋จ
- ์บ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ ๋ถํ ๊ฐ์### ์บ์ ๊ธฐ๋ฅ
- ํ๋ฃจ์ ํ ๋ฒ ์๋์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํ์ฑํ๊ณ ์บ์์ ์ ์ฅ
- ์บ์๋ ๋ฐ์ดํฐ๊ฐ ์ ํจํ ๊ฒฝ์ฐ GeekNews ์๋ฒ์ ์์ฒญํ์ง ์๊ณ ์บ์๋ ๋ฐ์ดํฐ ์ฌ์ฉ
- ์บ์ ๋ฐ์ดํฐ๋ 24์๊ฐ ๋์ ์ ํจํ๋ฉฐ, ์ดํ ์๋์ผ๋ก ๊ฐฑ์
- ์ค์ผ์ค๋ฌ๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ์บ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๊ณ ํ์์ ๊ฐฑ์## ์ฌ์ฉ๋ฒ
- Smithery๋ฅผ ์ด์ฉํ ์ค์น
๐ [geeknews-mcp-server](https://smithery.ai/server/@the0807/geeknews-mcp-server)
- MCP ์ค์ ํ์ผ์ ์๋ฒ ์ ๋ณด๋ฅผ ์ถ๊ฐ
```json
{
"mcpServers": {
"geeknews-mcp-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@the0807/geeknews-mcp-server",
"--key",
"smithery์์ ๋ฐ๊ธ ๋ฐ์ ํค"
]
}
}
}
```## ๋ก์ปฌ ์ค์น ๋ฐฉ๋ฒ
1. Git Clone
```bash
git clone https://github.com/the0807/GeekNews-MCP-Server
cd GeekNews-MCP-Server
```2. uv๋ก ํ๊ฒฝ ์ธํ
```bash
uv sync
```3. ๊ฐ์ํ๊ฒฝ ์คํ
```bash
uv venv
source .venv/bin/activate
```4. MCP Inspector๋ก ์๋ฒ ํ ์คํธ
```bash
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` ํด๋์ ์ ์ฅ๋ฉ๋๋ค.