关于 GeekNews MCP Server
GeekNews MCP Server 是一个从 GeekNews 获取文章和每周新闻的 Python 服务。它会缓存解析结果并定期刷新,以减少对网站的请求。
主要功能
- 01获取 top、new、ask 和 show 文章
- 02返回文章元数据与链接
- 03按 ID 或最新一期获取每周新闻
- 04缓存数据并定期刷新
适用场景
- 01按类型浏览 GeekNews 文章
- 02获取指定或最新一期每周新闻
MCP 相关
它通过 `get_articles` 和 `get_weekly_news` 工具向 MCP 客户端提供 GeekNews 文章及每周新闻。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
GeekNews MCP 服务
本项目是一个从 GeekNews 获取文章的 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 安装
-
将服务信息添加到 MCP 配置文件中
{ "mcpServers": { "geeknews-mcp-server": { "command": "npx", "args": [ "-y", "@smithery/cli@latest", "run", "@the0807/geeknews-mcp-server", "--key", "smithery에서 발급 받은 키" ] } } }
本地安装方法
-
克隆 Git 仓库
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:服务运行入口
说明
- 此服务依赖 GeekNews 网站的 HTML 结构。如果网站结构发生变化,可能需要更新解析逻辑。
- 缓存数据存储在用户主目录下的
.cache/geeknews-mcp文件夹中。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。



