MCP Feed Reader について
MCP Feed Readerは、SQLiteキャッシュを使うRSS/Atomリーダーです。フィードの収集、検索、整理に使えます。取得は別途実行するため、閲覧とは独立して更新をスケジュールできます。
主な機能
- 01フィードの追加、一覧表示、削除
- 02エントリーの閲覧とページ指定の絞り込み
- 03エントリーの全文検索
- 04フィードカテゴリーの管理
- 05OPMLのインポートとエクスポート
活用シーン
- 01RSS/Atom購読の一元管理
- 02保存したエントリーのテキスト検索
- 03レポート前のフィード取得スケジュール
- 04OPMLを使った購読情報の移行
MCP 対応
MCPクライアントにフィード、エントリー、カテゴリー、OPML、統計情報のツールを提供します。CLIからフィード取得を実行することもできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
17掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | フィード URL(RSS、Atom、または RDF) |
| category | any | いいえ | カテゴリ名(存在しない場合は作成されます) |
詳細
mcp-feed-reader-crunchtools
SQLite バックエンドを使用する、RSS/Atom フィード読み取り用のセキュアな MCP サーバーです。
インストール
uvx(推奨)
uvx mcp-feed-reader-crunchtools
pip
pip install mcp-feed-reader-crunchtools
コンテナ
podman run -v feedreader-data:/data quay.io/crunchtools/mcp-feed-reader
設定
| 変数 | デフォルト | 説明 |
|---|---|---|
FEED_READER_DB | ~/.local/share/mcp-feed-reader/feeds.db | SQLite データベースのパス |
HTTP_PROXY / HTTPS_PROXY / NO_PROXY | (なし) | 標準の httpx プロキシ変数です。すべてのフィード取得時に適用されます。パブリッシャーによって送信元 IP がレート制限されている場合に便利です。Reddit は、User-Agent にかかわらずデータセンターの IP 範囲に対して 429 を返します。 |
ツール(17)
フィード管理
add_feed_tool— URL を指定して RSS/Atom フィードを追加しますlist_feeds_tool— 未読件数とともにすべてのフィードを一覧表示しますget_feed_tool— フィードの詳細を取得しますdelete_feed_tool— フィードを削除しますrefresh_feeds_tool— 新しいコンテンツを探すためにフィードソースをクロールします(時間がかかるため、systemd タイマーの使用を推奨します)
エントリー管理
list_entries_tool— エントリーを一覧表示します(フィルター、ページネーションに対応)read_entry_tool— エントリーの全文を読み取ります(自動的に既読にします)mark_read_tool— エントリーを既読にしますmark_unread_tool— エントリーを未読にしますsearch_entries_tool— 全文検索(FTS5)
カテゴリー管理
list_categories_tool— 件数とともにカテゴリーを一覧表示しますcreate_category_tool— カテゴリーを作成しますrename_category_tool— カテゴリー名を変更しますdelete_category_tool— カテゴリーを削除します
インポート/エクスポート
import_opml_tool— OPML ファイルからインポートしますexport_opml_tool— OPML 形式でエクスポートしますget_stats_tool— ダッシュボードの統計情報を取得します
バックグラウンド取得
サーバーは自動的にはクロールしません。list_entries_tool などはキャッシュを読み取ります。誰も --fetch を実行しなければ、キャッシュは古くなり、すべてのリーダーにエラーも表示されず空のフィードが見えることになります。クロールを起動する仕組みのないデプロイは、壊れたデプロイです。実際、これが原因でデイリーブリーフィングは数日間「ニュースなし」と報告し、その間、61 個すべてのフィードが未取得のままでした。
# Fetch all feeds via CLI
mcp-feed-reader-crunchtools --fetch
systemd タイマー(推奨)
deploy/ には、本番環境で使用する 2 つのユニットが含まれています。これらを
/etc/systemd/system/ にコピーし、使用しているコンテナ名が異なる場合はサービス内のコンテナ名を調整してから、次を実行します。
sudo systemctl daemon-reload
sudo systemctl enable --now mcp-feeds-refresh.timer
サービスは実行中のコンテナ内で(podman exec を使って)--fetch を実行するため、データベースには、そのデータベースを所有するプロセスの SELinux カテゴリーが維持されます。クロールのためにデータディレクトリを :Z 付きで 2 つ目のコンテナにバインドマウントしないでください。そうするとボリュームのラベルが変更され、稼働中のサーバーからアクセスできなくなります。
タイマーは 1 時間ごとに実行され、さらに 05:45 にも 1 回実行されます。この 2 回目の実行は重複ではありません。利用側は公開時刻を基準にエントリーを絞り込むため、最後のクロールから 06:00 のレポートまでに公開されたエントリーは、そのレポートに含まれず、翌日の対象期間の開始時刻にはすでに古すぎるものとなり、そのまま失われます。固定スケジュールで実行する利用側がある場合は、その直前にクロールする必要があります。
フィードは条件付きで取得されます(ETag / If-Modified-Since)。レート制限、ゲートウェイの 5xx、または接続切断が発生した場合は、指数バックオフを適用し、合計 3 回まで再試行してから、そのフィードを失敗として記録します。
ライセンス
AGPL-3.0-or-later
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。