RSS订阅管理服务器

一个用于通过Google Reader兼容API与FreshRSS交互的Model Context Protocol(MCP)服务器,提供浏览订阅、阅读文章和管理订阅的功能。

  • by jeromewoody
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jeromewoody/freshrss-mcp

使用说明

FreshRSS MCP服务器

一种模型上下文协议(MCP)服务器,用于通过其与谷歌阅读器兼容的API与FreshRSS交互。此服务器提供用于浏览提要、阅读文章和管理订阅的工具。身份验证在服务器启动期间处理。

特性

用户信息

  • get_user_info() -获取经过身份验证的用户信息

饲料管理

  • list_subscriptions() -列出所有RSS订阅源
  • add_subscription() -添加新的RSS订阅源
  • list_categories() -列出所有未读计数的类别/标签

文章阅读

  • get_articles() -从订阅源、类别或阅读列表中获取文章
  • search_articles() -按关键字搜索文章
  • get_starred_articles() -获取所有星级文章
  • get_unread_counts() -按订阅源/类别获取未读文章数

物品管理

  • mark_article_read() -将特定文章标记为已读
  • mark_article_starred() -星/unstar文章
  • mark_all_as_read() -将流中的所有文章标记为已读

安装

  1. 安装依赖项:
pip install -r requirements.txt
  1. 使用您的FreshRSS凭据运行MCP服务器:
# Using command line arguments
python freshrss_mcp_server.py --url https://your-freshrss-server.com --email your-email@example.com --password your-password

# Or using environment variables
export FRESHRSS_EMAIL="your-email@example.com"
export FRESHRSS_PASSWORD="your-password"
python freshrss_mcp_server.py --url https://your-freshrss-server.com

用法

服务器运行并通过身份验证后,您可以使用可用的工具:

基本操作

# List subscriptions
subscriptions = await list_subscriptions()

# Get recent articles
articles = await get_articles(count=10)

# Search for articles
results = await search_articles("python", count=5)

# Mark article as read
await mark_article_read("article-id-here")

# Get unread counts
unread = await get_unread_counts()

流ID

获取文章的常用流ID:

  • user/-/state/com.google/reading-list -所有文章
  • user/-/state/com.google/starred -主演文章
  • user/-/state/com.google/read -阅读文章
  • feed/[feed-url] -特定饲料
  • user/-/label/[category] -具体类别

命令行选项

  • --url (必填):FreshRSS服务器URL
  • --email:用于身份验证的电子邮件地址(也可以使用FRESHRSS_Email env var)
  • --password:身份验证密码(也可以使用FRESHRSS_Password env var)

API兼容性

此服务器实现FreshRSS支持的Google Reader API端点:

  • 身份验证(/accounts/ClientLogin)-启动时处理
  • 用户信息(/reader/api/0/user-info)
  • 订阅(/reader/api/0/subscription/list, /reader/api/0/subscription/quickadd)
  • 文章(/reader/api/0/stream/contents/)
  • 标签(/reader/api/0/edit-tag)
  • 未读计数(/reader/api/0/unread-count)
  • 类别(/reader/api/0/tag/list)

需求

  • Python 3.7+
  • FastMCP库
  • aiohttp用于异步HTTP请求
  • 已启用API访问的FreshRSS服务器