MCP Feed Reader

io.github.crunchtools由 GitHub 账号 crunchtools 发布v0.1.2更新于 Oct 25, 2026

RSS/Atom feed reader MCP server with SQLite backend

已验证STDIO仅桌面效率与工作流知识与记忆

概览

AI 生成的概览

本地运行的 RSS/Atom 阅读器 MCP 服务器,以 SQLite 为后端,让助手管理订阅源、阅读和搜索条目并整理分类。

可以做什么
添加、列出、查看、删除和刷新 RSS/Atom 订阅源,并显示未读数和统计面板。列出、阅读条目,标记已读或未读,并进行全文搜索。创建、重命名和删除分类,并列出各分类数量。以 OPML 文件导入和导出订阅。
适用场景
适合希望助手处理本地保存的个人 RSS/Atom 订阅时使用,例如筛选未读内容、搜索历史条目或把订阅源整理进分类。也适合由自己掌控抓取时间的自托管或桌面环境。
运行要求
作为本地进程运行,可通过 uvx 或 pip 安装 Python 包,也可用容器运行。可用 FEED_READER_DB 指定 SQLite 数据库路径;抓取订阅源时会使用 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY。抓取订阅源需要网络访问,并且必须配置抓取触发方式(如命令行抓取参数或 systemd 定时器),因为服务器不会自行抓取。
安装前请注意
服务器会写入本地 SQLite 数据库:添加、删除和刷新订阅源、更改已读状态以及删除分类都会修改已存数据。若没有定时抓取,缓存会过期,阅读时可能看到空订阅源且没有任何报错。删除订阅源或分类会移除已存数据。抓取订阅源会访问第三方发布者,代理设置会让这些流量经过所配置的代理。

安装

在 SourceWeft 中

  1. 打开 控制台中的 MCP Feed Reader,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

mcp-feed-reader-crunchtools

Secure MCP server for RSS/Atom feed reading with SQLite backend.

Installation

uvx (recommended)

bash
uvx mcp-feed-reader-crunchtools

pip

bash
pip install mcp-feed-reader-crunchtools

Container

bash
podman run -v feedreader-data:/data quay.io/crunchtools/mcp-feed-reader

Configuration

VariableDefaultDescription
FEED_READER_DB~/.local/share/mcp-feed-reader/feeds.dbSQLite database path
HTTP_PROXY / HTTPS_PROXY / NO_PROXY(none)Standard httpx proxy variables, honoured for every feed fetch. Useful when a publisher rate-limits your egress IP — Reddit returns 429 to datacentre ranges regardless of User-Agent

Tools (17)

Feed Management

  • add_feed_tool — Add an RSS/Atom feed by URL
  • list_feeds_tool — List all feeds with unread counts
  • get_feed_tool — Get feed details
  • delete_feed_tool — Remove a feed
  • refresh_feeds_tool — Crawl feed sources for new content (slow, prefer systemd timer)

Entry Management

  • list_entries_tool — List entries (filterable, paginated)
  • read_entry_tool — Read full entry content (auto-marks read)
  • mark_read_tool — Mark entries as read
  • mark_unread_tool — Mark entry as unread
  • search_entries_tool — Full-text search (FTS5)

Category Management

  • list_categories_tool — List categories with counts
  • create_category_tool — Create category
  • rename_category_tool — Rename category
  • delete_category_tool — Delete category

Import/Export

  • import_opml_tool — Import from OPML file
  • export_opml_tool — Export as OPML
  • get_stats_tool — Dashboard stats

Background Fetching

Nothing in the server crawls on its own. list_entries_tool and friends read a cache; if no one calls --fetch, that cache goes stale and every reader sees an empty feed with no error anywhere. A deployment without a crawl trigger is a broken deployment — this bit the daily briefing, which reported "no news" for days while all 61 feeds sat unfetched.

bash
# Fetch all feeds via CLImcp-feed-reader-crunchtools --fetch

systemd timer (recommended)

deploy/ ships the two units used in production. Copy them to /etc/systemd/system/, adjust the container name in the service if yours differs, then:

bash
sudo systemctl daemon-reloadsudo systemctl enable --now mcp-feeds-refresh.timer

The service runs --fetch inside the running container (podman exec), so the database keeps the SELinux category of the process that owns it. Do not bind-mount the data directory into a second container with :Z to run the crawl — that relabels the volume and locks the live server out.

The timer fires hourly, plus once at 05:45. That second entry is not redundant: consumers window entries on publication time, so an entry published between the last crawl and a 06:00 report is missing from that report and already older than the next day's window start — it is lost for good. Any consumer on a fixed schedule wants a crawl shortly before it.

Feeds are fetched conditionally (ETag / If-Modified-Since). A rate limit, gateway 5xx, or dropped connection is retried with exponential backoff, up to three attempts in all, before the feed is recorded as failed.

License

AGPL-3.0-or-later

来源:README.md,提交 5c181e6

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.2最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分