FeedKit

io.github.ArkNill由 GitHub 帳號 ArkNill 發布v0.1.0更新於 Oct 24, 2026

RSS/Atom feed collection with 417 curated feeds. Python MCP server.

概覽

AI 產生的概覽

讓助理搜尋精選 RSS/Atom 來源目錄、訂閱來源、把文章收集到本機 SQLite 資料庫,並進行全文檢索。

可以做什麼
FeedKit 透過 stdio 提供九個 MCP 工具。助理可以依關鍵字、分類或語言搜尋內建的 444 個精選來源目錄,不必訂閱就能抓取任意 RSS/Atom 網址的項目,並訂閱或取消訂閱來源。它也能平行收集訂閱來源的新文章、列出訂閱及其抓取與錯誤次數,並用 SQLite FTS5 做全文檢索或取得最新收集的文章。
適用情境
適合需要持續追蹤新聞、研究或部落格 RSS 來源的情境,而非一次性的網頁搜尋,例如追蹤 arXiv 論文、技術部落格或財經與新聞來源。也適合需要把文章存到本機並反覆檢索的工作流程。
執行需求
以本機 stdio 程序執行;安裝 PyPI 套件 feedkit 的 mcp 附加元件並啟動 feedkit-mcp。需要 Python 3.11 或更新版本。未宣告帳號、API 金鑰或環境變數。抓取來源需要網路存取;資料存放在使用者家目錄下的本機 SQLite 資料庫。
安裝前請注意
此伺服器會寫入本機 SQLite 資料庫,並可新增或移除訂閱及其已收集文章,取消訂閱會刪除已存資料。它會代表使用者抓取外部來源網址,因而連線至第三方網站。不要求任何憑證,但來源內容來自外部來源。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 FeedKit,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

FeedKit

[PyPI] [Python] [License] [Tests]

한국어 문서 · llms.txt

RSS/Atom feed collection with 444 curated, verified feeds. CLI + Python API + MCP server.

Quick Start

bash
pip install feedkit
feedkit search cloudflare           # search the built-in catalogfeedkit subscribe-catalog -c technology   # subscribe to all 68 tech feedsfeedkit collect                     # fetch all subscriptions (async parallel)feedkit find "kubernetes"           # full-text search collected articles

Install

bash
pip install feedkit             # core (CLI + Python API)pip install "feedkit[mcp]"      # + MCP serverpip install "feedkit[all]"      # + MCP + OPML import/export

Requirements: Python 3.11+

How It Works

mermaid
flowchart LR    A["📋 Catalog\n444 curated feeds"] --> B["Subscribe\nselect feeds"]    B --> C["🔄 Collect\nfetch new entries"]    C --> D["📦 Store\nSQLite database"]    D --> E["🔍 Query\nfilter & retrieve"]

CLI Reference

Catalog Commands

feedkit search [QUERY]

Search the built-in catalog of 444 curated feeds.

bash
feedkit search aws                    # search by title or domainfeedkit search --category science     # filter by categoryfeedkit search --language ko          # filter by languagefeedkit search -c finance -l en -n 50 # combine filtersfeedkit search -j                     # JSON output (for piping)
OptionShortDefaultDescription
--category-cFilter by category
--language-lFilter by language code (en, ko, ja, zh)
--limit-n20Max results
--json-output-jOutput as JSON
feedkit categories

List all available catalog categories.

$ feedkit categories  academia  finance  pets  science  society  technology
feedkit stats

Show catalog and local subscription statistics.

$ feedkit statsCatalog: 444 feeds  academia: 13  finance: 89  pets: 27  science: 128  society: 119  technology: 68
Local: 68 subscriptions, 1,247 articles

Subscription Commands

feedkit subscribe <URL>

Subscribe to a single feed.

bash
feedkit subscribe https://blog.cloudflare.com/rss/feedkit subscribe https://example.com/rss -c tech -t "My Feed"
OptionShortDescription
--category-cCategory label
--title-tDisplay title override
feedkit subscribe-catalog -c <CATEGORY>

Subscribe to all feeds in a catalog category at once.

bash
feedkit subscribe-catalog -c technology   # subscribe to all 68 tech feedsfeedkit subscribe-catalog -c science      # subscribe to all 128 science feeds
feedkit unsubscribe <URL>

Remove a feed subscription and its collected articles.

feedkit list

List all current subscriptions with fetch counts and error counts.

Collection Commands

feedkit collect

Fetch new articles from all subscribed feeds (async parallel).

bash
feedkit collect                    # collect allfeedkit collect -c technology      # collect only tech feedsfeedkit collect -n 50              # max 50 concurrent requests
OptionShortDefaultDescription
--category-cOnly collect from this category
--concurrency-n20Max concurrent HTTP requests

Output:

Collecting from 68 feeds... 67/68 feeds OK, 412 new articles, 8234ms
feedkit latest

Show most recently collected articles.

bash
feedkit latest                # latest 20 articlesfeedkit latest -n 50          # latest 50feedkit latest -c finance     # latest from finance only
feedkit find <QUERY>

Full-text search (SQLite FTS5) across all collected articles.

bash
feedkit find "kubernetes deployment"feedkit find "large language model" -n 50

OPML Commands

feedkit import-opml <PATH>

Import feeds from an OPML file (Feedly, Inoreader, NetNewsWire, etc.).

bash
feedkit import-opml subscriptions.opml
feedkit export-opml <PATH>

Export current subscriptions to OPML.

bash
feedkit export-opml backup.opml

Python API

python
from feedkit import search_catalog, fetch_feed, get_catalog_stats, FeedStorefrom feedkit.core import collect
# Search the built-in catalogfeeds = search_catalog("cloudflare")feeds = search_catalog(category="technology", language="en", limit=50)
# Fetch a single feed (async)entries = await fetch_feed("https://blog.cloudflare.com/rss/")for entry in entries:    print(entry.title, entry.url, entry.published)
# Subscribe and collectstore = FeedStore()                              # SQLite at ~/.feedkit/feedkit.dbstore.subscribe("https://blog.cloudflare.com/rss/", category="tech")result = await collect(store, concurrency=20)    # async parallel fetchprint(f"{result.new_articles} new, {result.feeds_ok}/{result.feeds_total} OK")
# Search collected articles (FTS5)articles = store.search("kubernetes", count=10)
# Latest articlesarticles = store.get_latest(count=20, category="tech")
# Feed healthhealth = store.get_health()                      # fetch/error counts per feed
# Catalog statsstats = get_catalog_stats()                      # {total_feeds, categories, languages}
store.close()

Key Classes

ClassDescription
FeedStoreSQLite-backed subscription + article store (~/.feedkit/feedkit.db)
FeedEntrySingle entry from a fetched feed (title, url, summary, published, author)
CollectResultBulk collection result (feeds_ok, feeds_error, new_articles, duration_ms)
CatalogFeedEntry from the built-in catalog (url, title, category, subcategory, language, domain)

MCP Server

bash
pip install "feedkit[mcp]"feedkit-mcp                    # starts stdio MCP server

Configuration

Claude Code (~/.claude/settings.json):

json
{  "mcpServers": {    "feedkit": {      "command": "feedkit-mcp"    }  }}

Tools Reference

#ToolParametersDescription
1fetch_single_feedurl, count=10Fetch entries from any RSS/Atom URL (no subscription needed)
2search_feed_catalogquery, category, language, count=20Search the built-in 444-feed catalog
3catalog_statsGet catalog statistics (total, by category, by language)
4subscribe_feedurl, title, categorySubscribe to a feed for ongoing collection
5unsubscribe_feedurlRemove a subscription
6list_subscriptionsList all subscriptions with status
7collect_feedscategoryCollect new articles from all subscriptions
8search_articlesquery, count=10Full-text search across collected articles
9get_latest_articlescategory, count=20Get most recently collected articles

MCP Workflow Example

User: "What are the latest AI papers on arXiv?"
1. search_feed_catalog(query="arxiv", category="science")   → finds arXiv cs.AI, cs.LG, cs.CL feeds
2. subscribe_feed(url="https://rss.arxiv.org/rss/cs.AI")
3. collect_feeds(category="science")   → fetches new entries
4. get_latest_articles(category="science", count=10)   → returns latest papers

Built-in Catalog

444 verified feeds across 6 categories. All audited — hard paywalls (Bloomberg, FT, WSJ) and broken URLs removed.

CategoryFeedsSubcategoriesHighlights
technology68ai_ml, developer, it_news, security, startup, ...AWS, Cloudflare, Stripe, Netflix, HN, Go Blog, Rust Blog
science128journal, preprint, news, governmentNature, Science, arXiv, bioRxiv, medRxiv, NASA, PLOS
society119news_us, news_ko, news_uk, news_intl, factcheck, ...BBC, NPR, NYT, NHK, JTBC, PolitiFact, Snopes
finance89markets, central_bank, regulatory, cryptoFed, BOE, BOJ, SEC, CNBC, CoinDesk, Yahoo Finance
pets27veterinary, community, blog, healthAKC, PetMD, ASPCA, dvm360, r/dogs, r/cats
academia13ai_ml, research, institutionGoogle AI, DeepMind, Stanford HAI, Hugging Face

Languages: English (381), Korean (47), Japanese (14), Chinese (2)

Full feed list: CATALOG.md

Why FeedKit?

awesome-rss-feeds (2.1K★)engineering-blogs (37.5K★)FeedKit
TypeMarkdown listMarkdown listPython package
Feeds~500~600444
ScopeGeneralTech blogs onlyTech + Science + Finance + News + Factcheck
Last update2021 (stale)2022 (stale)Active (daily collection)
Verified workingNoNoYes (778K+ articles collected)
Legal auditNoNoYes (paywall/ToS feeds removed)
CLINoNoYes (12 commands)
Programmatic APINoNoYes (async Python)
MCP serverNoNoYes (9 tools)
OPMLNoNoYes (import/export)
FTS searchNoNoYes (SQLite FTS5)

Disclaimer

This package distributes a catalog of publicly available RSS feed URLs, not the feed content itself. RSS is a syndication standard — publishing an RSS feed is an explicit invitation for readers to subscribe. FeedKit fetches feeds on the user's behalf and does not store or redistribute copyrighted content.

Feeds behind hard paywalls (Bloomberg, FT, WSJ, Barron's) and feeds with aggressive terms of service have been removed from the catalog.

Used in

  • newswatch — RSS news monitoring pipeline (feedkit → markgrab → embgrep → diffgrab)

License

MIT


Part of the QuartzUnit ecosystem — composable Python libraries for data collection, extraction, search, and AI agent safety.

來源:README.md,提交 e33e47e

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

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

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分