mcpField
M
MCP Feed Reader

MCP Feed Reader

ローカル
github.com/crunchtools生産性03 日前に更新

MCP Feed Reader について

MCP Feed Readerは、SQLiteキャッシュを使うRSS/Atomリーダーです。フィードの収集、検索、整理に使えます。取得は別途実行するため、閲覧とは独立して更新をスケジュールできます。

主な機能

  1. 01フィードの追加、一覧表示、削除
  2. 02エントリーの閲覧とページ指定の絞り込み
  3. 03エントリーの全文検索
  4. 04フィードカテゴリーの管理
  5. 05OPMLのインポートとエクスポート

活用シーン

  1. 01RSS/Atom購読の一元管理
  2. 02保存したエントリーのテキスト検索
  3. 03レポート前のフィード取得スケジュール
  4. 04OPMLを使った購読情報の移行

MCP 対応

MCPクライアントにフィード、エントリー、カテゴリー、OPML、統計情報のツールを提供します。CLIからフィード取得を実行することもできます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"crunchtools-feed-reader": {
"command": "uvx",
"args": [
"mcp-feed-reader-crunchtools"
]
}
}
}
起動コマンドuvx mcp-feed-reader-crunchtools

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcp-feed-reader-crunchtools0.1.2

ツール

17

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
urlstringはいフィード URL(RSS、Atom、または RDF)
categoryanyいいえカテゴリ名(存在しない場合は作成されます)

詳細

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.dbSQLite データベースのパス
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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。