Rss Mcp について
Rss Mcp は、RSS/Atom フィードや RSSHub から構造化コンテンツを取得する TypeScript 製 MCP サーバーです。フィード情報を必要とする MCP クライアント向けに、複数インスタンスの巡回と本文のテキスト化を備えています。
主な機能
- 01RSS と Atom フィードの解析
- 02RSSHub フィードへの対応
- 03取得する項目数の指定
- 04利用可能な RSSHub インスタンスの巡回
- 05コンテンツの整形と構造化 JSON 出力
活用シーン
- 01Web サイトの RSS 更新を読む
- 02RSSHub ルートのコンテンツを取得
- 03取得するフィード項目数を指定
- 04インスタンス障害時に別の RSSHub を利用
MCP 対応
MCP クライアント向けに `get_feed` ツールを提供し、標準 RSS/Atom または RSSHub のフィードを取得・解析して構造化 JSON で返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
RSS MCP サーバー
これは、TypeScript で構築された Model Context Protocol(MCP)サーバーです。標準的な RSS/Atom フィードを取得して解析する汎用ツールを提供し、RSSHub フィードにも特別に対応しています。このサーバーを使うと、言語モデルやその他の MCP クライアントが、さまざまなウェブソースから構造化されたコンテンツを簡単に取得できます。
このサーバーには、公開 RSSHub インスタンスのリストが組み込まれており、ポーリング機構によって利用可能なインスタンスを自動的に選択できます。これにより、データ取得の成功率と安定性が大幅に向上します。
✨ 特長
- 汎用フィード解析:指定された URL から標準的な RSS/Atom フィードを取得して解析します。
- RSSHub の拡張サポート:
get_feedという名前のツールを提供し、複数のインスタンスに対応して、MCP 経由で RSSHub がサポートする任意のフィードを取得します。 - 取得件数のカスタマイズ:取得するフィード項目数を指定でき、すべての項目を取得することもできます。
- 複数インスタンスへの対応:公開 RSSHub インスタンスのリストを備え、利用可能なサービスを見つけるために自動でポーリングします。
- スマート URL 解析:標準的な RSSHub URL と、簡略化された
rsshub://プロトコル形式に対応しています。 - 優先インスタンスの設定:
PRIORITY_RSSHUB_INSTANCE環境変数を使って、優先する RSSHub インスタンスを設定できます。 - 堅牢なエラー処理:あるインスタンスへのリクエストに失敗した場合、成功するか、すべてのインスタンスで失敗するまで、次のインスタンスを自動的に試します。
- コンテンツのクリーニング:Cheerio を使ってフィードのコンテンツをクリーニングし、プレーンテキストの説明を抽出します。
- 標準化された出力:取得した RSS フィードを構造化された JSON 形式に変換します。
📦 インストール
まず、プロジェクトのリポジトリをクローンし、必要な依存関係をインストールします。
git clone https://github.com/veithly/rss-mcp.git
cd rss-mcp
npm install
🚀 使い方
1. プロジェクトをビルドする
実行する前に、TypeScript コードを JavaScript にコンパイルする必要があります。
npm run build
2. サーバーを実行する
ビルドが正常に完了したら、MCP サーバーを起動します。
npm start
サーバーは Stdio 経由で親プロセス(Cursor など)と通信します。
3. 優先インスタンスを設定する(任意)
.env ファイルを作成して、優先する RSSHub インスタンスを指定できます。プライベートで安定したインスタンスを利用している場合に、とても便利です。
プロジェクトのルートディレクトリに .env ファイルを作成し、次の内容を追加します。
PRIORITY_RSSHUB_INSTANCE=https://my-rsshub.example.com
サーバーは起動時にこの設定を自動的に読み込み、ポーリングリストの先頭に配置します。
🔧 MCP サーバーの設定
Cursor などの MCP クライアントでこのサーバーを使うには、設定ファイルに追加する必要があります。
方法 1:npx を使用する(推奨)
このパッケージは npm で公開されているため、ローカルにインストールせずに npx でサーバーを実行できます。最も簡単な方法です。
-
直接実行: ターミナルで
npxを使ってサーバーを直接実行できます。npx rss-mcp -
MCP クライアントの設定: Cursor などの MCP クライアントと連携するには、設定ファイル(例:
~/.cursor/mcp_settings.json)に次の内容を追加します。{ "name": "rss", "command": ["npx", "rss-mcp"], "type": "stdio" }
方法 2:ローカルインストール
リポジトリをローカルにクローンしている場合は、node で直接実行できます。
-
「インストール」および「使用方法」のセクションに記載されている手順に従って、プロジェクトをクローンしてビルドします。
-
MCP 設定ファイルを確認します。
-
コンパイル済みの
index.jsファイルへの絶対パスを指定して、次のサーバーエントリを追加します。{ "name": "rss", "command": ["node", "/path/to/your/rss-mcp/dist/index.js"], "type": "stdio" }重要:
/path/to/your/rss-mcp/dist/index.jsを、システム上の正しい絶対パスに置き換えてください。
設定を追加した後、変更を反映するため、MCP クライアント(例:Cursor)を再起動してください。これで rss サーバーが利用可能になり、get_feed ツールを呼び出せるようになります。
🛠️ ツールの定義
get_feed
指定した URL から RSS フィードを取得して解析します。標準的な RSS/Atom フィードと RSSHub フィードの両方に対応しています。
入力パラメーター
url(文字列、必須):取得する RSS フィードの URLです。次の 2 つの形式に対応しています。- 標準 URL:
https://rsshub.app/bilibili/user/dynamic/208259 rsshub://プロトコル:rsshub://bilibili/user/dynamic/208259(サーバーが利用可能なインスタンスを自動的に照合します)
- 標準 URL:
count(数値、任意):取得する RSS フィード項目の数です。- デフォルト:
1 - すべて取得:
0
- デフォルト:
出力
次の構造で、フィード情報を含む JSON 文字列を返します。
{
"title": "bilibili User Dynamics",
"link": "https://space.bilibili.com/208259",
"description": "bilibili User Dynamics",
"items": [
{
"title": "[Dynamic Title]",
"description": "Plain text content of the dynamic...",
"link": "https://t.bilibili.com/1234567890",
"guid": "https://t.bilibili.com/1234567890",
"pubDate": "2024-05-20T12:30:00.000Z",
"author": "Author Name",
"category": ["Category1", "Category2"]
}
]
}
📜 主な依存関係
- @modelcontextprotocol/sdk:MCP サーバーの構築に使用します。
- axios:HTTP リクエストの送信に使用します。
- rss-parser:RSS/Atom フィードの解析に使用します。
- cheerio:HTML コンテンツの解析と操作に使用します。
- date-fns-tz:タイムゾーン関連の日付形式の処理に使用します。
- dotenv:
.envファイルから環境変数を読み込むために使用します。
📄 ライセンス
このプロジェクトは Apache-2.0 ライセンスの下で公開されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。