SuperAPI AI 工具集

GeekNews-MCP-Server

GeekNews MCP Server 是一个用 Python 实现的 Model Context Protocol(MCP)服务器,用于从 GeekNews 网站获取文章和每周新闻。它通过 BeautifulSoup 进行网页抓取,并提供缓存机制以减少服务器负载。该服务器每天自动解析并缓存数据,缓存有效期为 24 小时。主要工具包括 get_articles(获取文章)和 get_weekly_news(获取每周新闻),支持指定文章类型(top、new、ask、show)和数量,返回标题、URL、点数、作者、时间、评论数、排名等信息。用户可以通过 Smithery 安装或从 GitHub 克隆仓库手动设置。该服务器依赖于 GeekNews 网站的 HTML 结构,若结构变更可能需要更新解析逻辑。

访问官网

工具介绍

GeekNews MCP Server 是一个基于 Model Context Protocol(MCP)的服务器,旨在从 GeekNews 网站获取文章和每周新闻。该项目使用 Python 实现,并利用 BeautifulSoup 进行网页抓取。为了减少服务器负载,它提供了每天自动解析数据并缓存的功能。

主要能力

  • 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 安装:

git clone https://github.com/the0807/GeekNews-MCP-Server
cd GeekNews-MCP-Server
uv sync
uv venv
source .venv/bin/activate
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 获取文章或每周新闻的 MCP 客户端,例如 AI 助手或自动化工具。它可以帮助用户快速获取新闻摘要,而无需直接访问网站。

限制

  • 该服务器依赖于 GeekNews 网站的 HTML 结构。如果网站结构发生变化,可能需要更新解析逻辑。
  • 缓存数据存储在用户主目录下的 .cache/geeknews-mcp 文件夹中。
  • 目前暂未提供其他功能或平台支持的信息。