使用说明
GeekNews MCP服务器
这个项目 极客新闻获取文章的Model Context Protocol(MCP)服务器。它是用Python实现的,使用Beautiful Soup执行Web抓取。为减少服务器负载,我们提供每天自动解析一次数据并将其存储在缓存中的功能。
功能
“工具”(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 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存储在文件夹中。
