GeekNews MCP服务器
](https://smithery.ai/server/@the0807/geeknews-mcp-server)
这个项目 极客新闻获取文章的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 存储在文件夹中。
