mcpField
G
GeekNews MCP Server

GeekNews MCP Server

本地服务
github.com/the0807社交媒体1881 周前更新

关于 GeekNews MCP Server

GeekNews MCP Server 是一个从 GeekNews 获取文章和每周新闻的 Python 服务。它会缓存解析结果并定期刷新,以减少对网站的请求。

主要功能

  1. 01获取 top、new、ask 和 show 文章
  2. 02返回文章元数据与链接
  3. 03按 ID 或最新一期获取每周新闻
  4. 04缓存数据并定期刷新

适用场景

  1. 01按类型浏览 GeekNews 文章
  2. 02获取指定或最新一期每周新闻

MCP 相关

它通过 `get_articles` 和 `get_weekly_news` 工具向 MCP 客户端提供 GeekNews 文章及每周新闻。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"GeekNews-MCP-Server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
启动命令npx -y @smithery/cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@smithery/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

GeekNews MCP 服务

smithery badge

本项目是一个从 GeekNews 获取文章的 Model Context Protocol(MCP)服务。它使用 Python 实现,并通过 BeautifulSoup 进行网页抓取。为减轻服务器负载,项目支持每天自动解析一次数据并将其缓存。

功能

tool1tool2
exampleexample
工具(Tools)
  • get_articles 工具:从 GeekNews 获取文章

    • 可以指定文章类型(top、new、ask、show)以及要返回的文章数量
    • 每个响应包含标题、URL、积分、作者、时间、评论数和排名信息
    • 使用缓存数据以减轻服务器负载
  • get_weekly_news 工具:从 GeekNews 获取每周新闻

    • 可以指定特定的每周新闻 ID,也可以获取最新的每周新闻
    • 提供每周新闻的标题、编号、ID、内容、URL、条目列表等信息
    • 每个条目包含标题、URL 和排名信息
    • 使用缓存数据以减轻服务器负载
缓存功能
  • 每天自动解析一次数据并将其缓存
  • 缓存数据有效时,不向 GeekNews 服务发送请求,而是使用缓存数据
  • 缓存数据有效期为 24 小时,之后会自动更新
  • 调度器会定期检查缓存有效性,并在需要时更新

使用方法

  • 使用 Smithery 安装

    🚀 geeknews-mcp-server

  • 将服务信息添加到 MCP 配置文件中

    {
    "mcpServers": {
       "geeknews-mcp-server": {
          "command": "npx",
          "args": [
          "-y",
          "@smithery/cli@latest",
          "run",
          "@the0807/geeknews-mcp-server",
          "--key",
          "smithery에서 발급 받은 키"
          ]
       }
    }
    }
    

本地安装方法

  1. 克隆 Git 仓库

    git clone https://github.com/the0807/GeekNews-MCP-Server
    cd GeekNews-MCP-Server
    
  2. 使用 uv 配置环境

    uv sync
    
  3. 启动虚拟环境

    uv venv
    source .venv/bin/activate
    
  4. 使用 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

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。