GeekNews

GeekNews

🚀 项目介绍 - GeekNews MCP 服务器

此项目是一个基于 Model Context Protocol (MCP) 的服务器,它使用 Python 实现,借助 BeautifulSoup 从 GeekNews 抓取文章。为减轻服务器负载,该项目支持每天自动解析数据并将其存储到缓存中。

🚀 快速开始

你可以通过以下两种方式使用本项目:

  • 通过 Smithery 安装:点击 🚀 geeknews-mcp-server 进行安装。
  • 在 MCP 设置文件中添加服务器信息
{
"mcp_settings": {
"servers": {
"geeknews_mcp_server": {
"url": "http://localhost:5000",
"api_key": "your_api_key"
}
}
}
}

本地安装指南

如果你想在本地运行该项目,可按以下步骤操作:

  1. 克隆仓库
git clone https://github.com/yourusername/geeknews-mcp-server.git
cd geeknews-mcp-server
  1. 环境配置:安装所需依赖项。
pip install -r requirements.txt
  1. 运行服务器
python server.py

✨ 主要特性

工具展示

工具功能

  • get_articles 工具:具备从 GeekNews 获取文章的能力。
    • 支持指定文章类型(top、new、ask、show)以及返回的文章数量。
    • 每个响应会包含标题、URL、点数、作者、时间、评论数、排名等信息。
    • 利用缓存数据,有效减少服务器负载。
  • get_weekly_news 工具:可从 GeekNews 获取周报。
    • 能指定特定的周报 ID 或获取最新的周报。
    • 提供周报的标题、编号、ID、内容、URL、项目列表等详细信息。
    • 每个项目包含标题、URL、排名等信息。
    • 同样使用缓存数据以降低服务器负载。

缓存功能

  • 每天自动解析一次数据并存储到缓存中。
  • 在缓存数据的有效期(24 小时)内,直接使用缓存数据,避免向 GeekNews 服务器发起请求。
  • 定时器会定期检查缓存的有效性,并在必要时进行更新。

🔧 技术细节

代码结构

  • server.py:作为服务器的主程序,负责处理请求和响应。
  • crawler.py:爬虫模块,专门用于从 GeekNews 抓取数据。
  • cache_manager.py:缓存管理模块,负责缓存数据的读取、写入和更新操作。
  • tools:包含各种辅助工具函数的目录。

注意事项

⚠️ 重要提示

项目依赖于 GeekNews 的 HTML 结构,若其结构发生变化,可能需要调整爬虫逻辑。

💡 使用建议

缓存数据存储在用户主目录下的 .cache/geeknews-mcp 文件夹中。

  • 0 关注
  • 0 收藏,16 浏览
  • system 提出于 2025-09-21 07:48

相似服务问题

相关AI产品