mcp-rss-aggregator
MCP RSS アグリゲータ
特徴
Claude Desktopでお気に入りのRSSフィードの記事を直接読む
既存のフィードサブスクリプションをインポートするための OPML ファイルのサポート
フィードをカテゴリ別に整理する
すべてのフィードで最新の記事を入手
フィードソースまたはカテゴリで記事をフィルタリングする
タイトル、スニペット、リンクを含む、適切にフォーマットされた記事のプレゼンテーション
Related MCP server: @kazuph/mcp-pocket
デモ
タイムスタンプをクリックすると、ビデオのそのセクションにジャンプします。
00:00 -サンプルRSSフィードのデモ:リポジトリに含まれるデフォルトの「sample-feeds.opml」ファイルを使用します。このセグメントでは、ClaudeがTechCrunch、The Verge、その他のテクノロジー系出版物などのニュースソースからMCP(Model Context Protocol)を介してニュースコンテンツを処理および表示する様子を紹介します。
01:05 -構成ファイルの編集プロセス: claude_desktop_config.json ファイルにアクセスして変更し、OPML ファイル パス参照をデフォルトのサンプルからカスタマイズされた「my-feeds.opml」ファイルに変更する手順を順を追って説明します。
01:15 -アプリケーションの再起動手順: 変更された OPML ファイル構成の変更を適切にロードして適用するために、Claude デスクトップ アプリケーションを閉じて再度開く必要な手順を示します。
01:25 -カスタムRSSフィードの結果:カスタムOPMLファイルの実装後の結果のデモンストレーション。このセクションでは、Claude Desktopで利用できるようになった、スペイン語コンテンツを含む、拡張され、より多様なニュースソースについて紹介します。
要件
Node.js 16以上
クロードデスクトップ
RSSフィードにアクセスするためのインターネット接続
インストール
手動でインストールする
このリポジトリをクローンまたはダウンロードします:
git clone https://github.com/imprvhub/mcp-rss-aggregator
cd mcp-rss-aggregator依存関係をインストールします:
npm installプロジェクトをビルドします。
npm run buildフィード構成
RSS アグリゲータは、フィード構成に OPML と JSON の両方の形式をサポートしています。
OPMLの使用(推奨)
OPML (Outline Processor Markup Language) は、ほとんどの RSS リーダーがフィード サブスクリプションをエクスポートおよびインポートするために使用する標準形式です。
一般的なフィードを含むサンプルOPMLファイルはpublic/sample-feeds.opmlファイルに含まれています。以下の操作が可能です。
このファイルをそのまま使用してください
編集して独自のフィードを追加してください
既存のRSSリーダーからのエクスポートに置き換えます
ほとんどの RSS リーダーでは、サブスクリプションを OPML ファイルとしてエクスポートできます。
JSONの使用
または、次の形式の JSON ファイルでフィードを定義することもできます。
[
{
"title": "Hacker News",
"url": "https://news.ycombinator.com/rss",
"htmlUrl": "https://news.ycombinator.com/",
"category": "Tech News"
},
{
"title": "TechCrunch",
"url": "https://techcrunch.com/feed/",
"htmlUrl": "https://techcrunch.com/",
"category": "Tech News"
}
]MCPサーバーの実行
MCP サーバーを実行するには 2 つの方法があります。
オプション1: 手動で実行する
ターミナルまたはコマンドプロンプトを開きます
プロジェクトディレクトリに移動する
サーバーを直接実行します。
node build/index.jsClaude Desktopの使用中は、このターミナルウィンドウを開いたままにしてください。ターミナルを閉じるまでサーバーは稼働し続けます。
オプション 2: Claude Desktop で自動起動 (通常の使用に推奨)
Claude Desktopは、必要に応じてMCPサーバーを自動的に起動できます。設定手順は次のとおりです。
構成
Claude Desktop の構成ファイルは次の場所にあります。
macOS :
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows :
%APPDATA%\Claude\claude_desktop_config.jsonLinux :
~/.config/Claude/claude_desktop_config.json
このファイルを編集して、RSS Aggregator MCP の設定を追加します。ファイルが存在しない場合は作成してください。
{
"mcpServers": {
"rssAggregator": {
"command": "node",
"args": ["ABSOLUTE_PATH_TO_DIRECTORY/mcp-rss-aggregator/build/index.js"],
"feedsPath": "ABSOLUTE_PATH_TO_YOUR_FEEDS_FILE.opml"
}
}
}重要な注意事項:
ABSOLUTE_PATH_TO_DIRECTORYMCPをインストールした完全な絶対パスに置き換えます。macOS/Linuxの例:
/Users/username/mcp-rss-aggregatorWindows の例:
C:\\Users\\username\\mcp-rss-aggregator
ABSOLUTE_PATH_TO_YOUR_FEEDS_FILE.opmlOPML または JSON ファイルへのパスに置き換えます。省略した場合はサンプルフィードファイルが使用されます
すでに他の MCP が設定されている場合は、「mcpServers」オブジェクト内に「rssAggregator」セクションを追加するだけです。
{
"mcpServers": {
"otherMcp1": {
"command": "...",
"args": ["..."]
},
"rssAggregator": {
"command": "node",
"args": [
"ABSOLUTE_PATH_TO_DIRECTORY/mcp-rss-aggregator/build/index.js"
],
"feedsPath": "ABSOLUTE_PATH_TO_YOUR_FEEDS_FILE.opml"
}
}
}MCP サーバーは、 claude_desktop_config.jsonファイルの設定に基づいて、Claude Desktop が必要とするときに自動的に起動します。
使用法
設定を変更した後、Claude Desktopを再起動します。
Claudeでは、
rssコマンドを使用してRSS Aggregator MCPサーバーと対話します。MCPサーバーはClaude Desktopによって管理されるサブプロセスとして実行されます。
利用可能なコマンド
RSS Aggregator MCP は、いくつかのコマンドを備えたrssというツールを提供します。
指示 | 説明 | パラメータ | 例 |
| すべてのフィードから最新の記事を表示 | オプション制限 (--N) |
|
| すべてのフィードからトップ記事を表示 | オプション制限 (--N) |
|
| 利用可能なすべてのフィードを一覧表示する | なし |
|
| 特定のフィードからの記事を表示する | オプション制限 (--N) |
|
| 特定のカテゴリの記事を表示する | オプション制限 (--N) |
|
| OPML/JSONファイルへのパスを設定する | ファイルへのパス |
|
使用例
Claude による RSS Aggregator の使用方法のさまざまな例を次に示します。
直接コマンド:
rss latest
rss top --20
rss list
rss "Tech News"
rss --hackernews
rss --techcrunch --15自然言語クエリ:
自然言語を使ってMCPと対話することもできます。クロードはこれらのリクエストを解釈し、適切なコマンドを使用します。
「Hacker Newsの最新ニュースは何ですか?」
「今日のトップテクノロジー記事を見せて」
「プログラミングフィードから最新の記事を取得する」
「すべてのRSSフィードを一覧表示する」
拡張使用例
毎日のニュースブリーフィング
あらゆるソースからニュース速報を入手しましょう:
rss latest --25これにより、すべてのフィードから最新の 25 件の記事が取得され、最新のニュースの概要を簡単に把握できるようになります。
トップコンテンツの探索
最も重要な記事や人気のある記事を見つけます:
rss top --20カテゴリーベースの読書
特定のコンテンツ カテゴリに焦点を当てます。
rss "Tech News" --30
rss "Politics" --15
rss "Science" --10ソース固有の更新
フォローしている特定のソースからの更新情報を読む:
rss --hackernews --20
rss --nytimes
rss --techcrunch --15利用可能なフィードを見つける
設定したフィードを確認します。
rss list複数のリクエストを組み合わせる
包括的なビューを構築するために、複数のリクエストを連続して実行できます。
rss "Tech News" --10
rss "Finance" --10
rss top --5実践的なワークフロー
朝のルーティン:
rss top --10 rss "News" --5業界調査:
rss "Industry News" --15 rss --bloomberg --5技術アップデート:
rss --hackernews --10 rss --techcrunch --5
クロードと働く
Claude に記事の分析や要約を依頼することができます。
実行後:
rss latest --10質問:「これらの記事を要約できますか?」実行後:
rss "Tech News" --15質問:「これらの技術記事の主な傾向は何ですか?」実行後:
rss --nytimes --washingtonpost --10質問: 「これらの情報源が現在の出来事をどのように扱っているか比較してください」
トラブルシューティング
「サーバーが切断されました」エラー
Claude Desktop で「MCP RSS Aggregator: サーバーが切断されました」というエラーが表示される場合:
サーバーが実行中であることを確認します:
ターミナルを開き、プロジェクトディレクトリから
node build/index.js手動で実行します。サーバーが正常に起動したら、このターミナルを開いたままClaudeを使用します。
設定を確認してください:
claude_desktop_config.jsonの絶対パスがシステムに合っていることを確認してくださいWindowsのパスに二重のバックスラッシュ(
\\)を使用していることを確認してくださいファイルシステムのルートからの完全なパスを使用していることを確認してください
クロードにツールが表示されない
Claude に RSS アグリゲータ ツールが表示されない場合は、次の手順に従ってください。
設定後、Claude Desktopを再起動してください。
Claude Desktop のログで MCP 通信エラーがないか確認します。
MCP サーバー プロセスが実行されていることを確認します (手動で実行して確認してください)
フィードが読み込まれない
フィードが正しく読み込まれない場合:
OPML/JSONファイルが正しくフォーマットされていることを確認してください
設定内の
feedsPathが正しいか確認してください既知の正常なフィードファイルを使用してサーバーを手動で実行してみてください
貢献
RSSアグリゲーターの改善に向けた貢献を歓迎します!貢献できる方法は次のとおりです。
より多くのフィード形式のサポートを追加する
フィード解析とエラー処理の改善
記事の視覚化オプションを追加する
分類とフィルタリング機能の改善
ライセンス
このプロジェクトは、Mozilla Public License 2.0 に基づいてライセンスされています。詳細については、 LICENSEファイルを参照してください。
関連リンク
Available Tools
3 toolsrss_feedC
Get the newest articles from one specific RSS feed
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of articles to return (1-50, default: 10) | |
| feed_id | Yes | Feed id as reported by rss_list, e.g. "news-ycombinator-com" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It conveys only that this is a retrieval, but says nothing about read-only safety, ordering of 'newest', behavior for an unknown feed_id, or whether results are cached/bounded. For a tool with zero annotation coverage this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler and no redundancy. It is appropriately sized for a two-parameter read tool, though its brevity is partly the source of the gaps noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with a fully documented schema and no output schema, the description is minimally adequate. It omits sibling differentiation (rss_latest overlap) and any note on ordering or failure behavior, but nothing structurally critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with limit (range, default) and feed_id (format example) fully documented in the schema. The description adds no parameter meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get the newest articles from one specific RSS feed'), which is clear on its own. However, it does nothing to differentiate from the sibling rss_latest, which by name appears to cover a very similar retrieval of recent articles, so an agent cannot reliably choose between them from this text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no when-not-to-use, and no mention of rss_list or rss_latest as alternatives. The only implied context is that a feed_id must come from somewhere (schema hints at rss_list), leaving routing purely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rss_latestA
Get the newest articles across all configured RSS feeds, most recent first, optionally limited to one category
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of articles to return (1-50, default: 15) | |
| category | No | Optional category to filter by, e.g. "Tech News" or "Science". Use rss_list to see categories. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Get' plus 'newest first' communicates a read-only, sorted retrieval, and the scope ('all configured feeds') is useful. However, it says nothing about pagination, how many feeds must be configured, or what happens when no feeds match a category.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with the scope, ordering, and optional filter front-loaded and no filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with full schema coverage and zero required params, the description is adequate: scope, ordering, and filtering are clear. With no output schema, a note on the returned article fields would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents limit (1-50, default 15) and category (with the rss_list pointer). The description adds only the notion of ordering and optionality, which the schema largely covers; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the newest articles across all configured RSS feeds') plus the ordering (most recent first). It distinguishes itself from rss_feed only implicitly via 'across all configured feeds'; it never names the sibling that returns a single feed's items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'optionally limited to one category' hints at a filtering use case, and the category param points at rss_list for discovering values, but there is no explicit when-to-use-this-vs-rss_feed guidance. Usage is implied by the aggregation scope rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rss_listA
List the configured RSS feeds, grouped by category, with the feed_id to use with rss_feed
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses output behavior (grouped by category, includes feed_id), which matters since there is no output schema, but says nothing about read-only nature, auth requirements, or whether the feed list can be empty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with zero waste, front-loading the action and the result, then ending with the actionable feed_id handoff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial parameterless list tool with no output schema, the description covers enough: what is returned, how it is grouped, and the key field (feed_id) for the next step. Minor gaps on empty-list/error behavior only.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to describe; baseline 4 applies. The description correctly adds no spurious parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (configured RSS feeds) and explicitly names the sibling used next (rss_feed) via the returned feed_id. An agent can distinguish this from rss_latest and rss_feed without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear implied context: call this to discover feeds and obtain the feed_id needed by rss_feed. It does not state when-not to use it or contrast with rss_latest, but the routing intent is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v0.3.0- Removed
rss - Added
rss_feed - Added
rss_latest - Added
rss_list
1 tool update
v1.0.0- First observed
rss
TDQS
Scored across 3 tools
Each tool has a clearly distinct scope: rss_list returns feed metadata, rss_latest aggregates articles across all feeds, and rss_feed targets one specific feed. The descriptions make the boundaries explicit, and the feed_id handoff between rss_list and rss_feed reinforces the separation.
All three tools share a consistent rss_ prefix, which is easy to predict. The suffix patterns vary slightly (verb 'list' vs adjective 'latest' vs noun 'feed'), so it's not a strict verb_noun scheme, but it remains readable and coherent.
Three tools is on the thin side but fits a focused read-only aggregator well, with each tool earning its place. It is slightly under-scoped given that feed configuration is implied but not directly exposed.
The read surface is solid: list feeds, aggregate latest, and drill into a single feed. However, there is no way to add, remove, or manage feeds, so lifecycle coverage is incomplete for an aggregator that references 'configured' feeds.
Maintenance
Related MCP Connectors
Managed cloud RSS and Atom feed reader with a remote Model Context Protocol (MCP) endpoint. Zero server setup required — enables AI agents like Claude to instantly subscribe to feeds, search full-text articles, extract readable content, and access curated AI editions ("Your Newspaper") over secure streamable HTTP.
MCP Server for Web2MD — convert URLs to Markdown from Claude Desktop, Cursor, etc.
A self-hostable feed of reminders, learnings and work that Claude and ChatGPT can read and write
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseBqualityFmaintenanceA Model Context Protocol (MCP) server for web research. Bring real-time info into Claude and easily research any topic.3454 npm300MIT
- AlicenseAqualityDmaintenance🔗 Model Context Protocol (MCP) Server for retrieving saved articles from Pocket API and loading them into Claude231 npm9MIT
- FlicenseBqualityDmaintenanceA Model Context Protocol server that enables downloading and parsing Substack posts directly through the Claude desktop app, allowing users to access and summarize Substack content.124-
- AlicenseAqualityDmaintenanceModel Context Protocol server that enables Claude Desktop (or any MCP client) to fetch web content and process images appropriately.173 npmMIT