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 分