返回市场
极客新闻-MCP服务器

极客新闻-MCP服务器

作者:the080716 星标更新:2025-04-13

项目介绍

GeekNews MCP Server

smithery 徽章

该项目是一个Model Context Protocol (MCP)服务器,用于从GeekNews获取文章。它使用Python实现,并利用BeautifulSoup进行网页抓取。为了减轻服务器负载,该服务器提供了一项功能,即每天自动解析数据并将其缓存存储。

功能

工具1工具2
示例示例

工具 (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:服务器启动入口点

[!Note]

  • 此服务器依赖于GeekNews网站的HTML结构。如果网站结构发生变化,则可能需要更新解析逻辑。
  • 缓存数据存储在用户的主目录下的.cache/geeknews-mcp文件夹中。