mcpField
📡
📡 RSS MCP Server

📡 RSS MCP Server

ローカル
github.com/akgoparaju生産性173 週間前に更新

📡 RSS MCP Server について

RSS MCP Serverは、設定したRSSフィードからPNT/GNSSニュースを収集・検索し、Claude Desktopで自然言語による操作を可能にします。タグ検索と既読状態の永続管理に対応します。

主な機能

  1. 01複数のRSSフィードの取得と解析
  2. 02キーワードとタグによる絞り込み・検索
  3. 03記事の既読・未読状態の管理
  4. 04自然言語によるフィード操作
  5. 05未読記事と全記事のリソース公開

活用シーン

  1. 01未読のGPS妨害関連ニュースの確認
  2. 02LEO衛星システムの記事検索
  3. 03特定の組織やトピックに関する報道の検索
  4. 04確認した記事を既読に設定

MCP 対応

RSSフィード更新、記事取得、既読状態管理、検索のツールと、未読記事および全記事のリソースを公開します。Claude Desktopでの利用を想定しています。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

📡 RSS MCP サーバー

Status Python MCP

Claude Desktop の自然言語インターフェースを通じて、カスタム RSS フィードから PNT/GNSS ニュースを追跡、フィルタリング、表示するためのモジュール式 Model Context Protocol(MCP)サーバーです。

✨ 特長

  • 🔗 ネイティブ MCP 統合 - Claude Desktop と直接統合します
  • 📰 RSS フィード処理 - 複数の RSS フィードを取得して解析します
  • 🏷️ タグベースのフィルタリング - 設定可能なタグを使用してコンテンツをフィルタリングします
  • 💬 自然言語インターフェース - AI を活用した RSS 管理
  • 📊 状態管理 - 記事の既読/未読状態を永続的に追跡します
  • 🔍 検索機能 - キーワードとタグに基づいて記事を検索します
  • 🛡️ エラー処理 - 適切なフォールバックとエラー復旧を行います

🚀 クイックスタート

前提条件
  • Python 3.10+
  • Claude Desktop
  • 仮想環境(推奨)
インストール
# Clone the repository
cd rss-mcp-server

# Create and activate virtual environment
python3 -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
pip install mcp feedparser pyyaml httpx
設定
  1. feeds.yaml を作成します(存在しない場合):
- url: https://insidegnss.com/feed/
  tags: [C-band, TrustPoint, GPSIA, LEO, PNT]
- url: https://spacenews.com/feed/
  tags: [LEO, spoofing, spectrum]
- url: https://www.gpsworld.com/feed/
  tags: [GNSS, spoof, jamming, M-code]
  1. Claude Desktop を設定します:

macOS の場合、~/Library/Application Support/Claude/claude_desktop_config.json に追加します:

{
  "mcpServers": {
    "rss-mcp-server": {
      "command": "/path/to/your/project/.venv/bin/python",
      "args": ["/path/to/your/project/main.py"],
      "cwd": "/path/to/your/project"
    }
  }
}

⚠️ パスを実際のプロジェクトの場所に置き換えてください

  1. Claude Desktop を完全に再起動します(終了してから開き直します)
テスト
# Test server locally
python main.py
# Should output: "RSS MCP Server initialized successfully"

🤖 使用方法

Claude Desktop と統合したら、自然言語のコマンドを使用します:

"Update my RSS feeds"
"Show me articles about GPS jamming"
"Search for LEO satellite articles"
"Mark the first 5 articles as read"
"Find articles about spoofing"
"Show me 10 recent unread articles"

📡 MCP ツール

ツール説明パラメーター
update_rss_feedsすべてのフィードから最新の記事を取得しますなし
get_unread_articles未読の記事を取得しますlimit(任意)
mark_articles_read記事を既読にしますarticle_ids(任意)
search_articlesキーワードで記事を検索しますquery、tags(任意)

📊 MCP リソース

リソース URI説明
rss://feeds/unreadすべての未読記事(JSON)
rss://feeds/allすべての記事(JSON)

📁 プロジェクト構成

rss-mcp-server/
├── main.py              # MCP server implementation
├── processor.py         # RSS feed processing logic
├── state.py            # State management for read/unread tracking
├── feeds.yaml          # Feed configuration (direct list format)
├── state.json          # Runtime state (auto-created)
├── requirements.txt    # Python dependencies
├── README.md          # This file
└── .venv/             # Virtual environment

⚙️ 設定の詳細

feeds.yaml の形式

✅ 正しい形式(リストを直接記述):

- url: https://example.com/feed/
  tags: [tag1, tag2, tag3]
- url: https://another.com/rss/
  tags: [tag4, tag5]

❌ 誤った形式(ラッパーを使用):

feeds:  # Don't use this wrapper
  - url: https://example.com/feed/
タグ

タグは次の用途に使用します:

  • 検索時のコンテンツフィルタリング
  • トピックごとの記事の分類
  • 検索の関連性の向上

PNT/GNSS コンテンツのタグ例:

  • GPS、GNSS、PNT
  • jamming、spoofing、interference
  • LEO、MEO、satellites
  • military、defense、civilian
  • M-code、anti-jam、resilient

🔧 トラブルシューティング

よくある問題

Claude Desktop にサーバーが表示されない場合:

  • claude_desktop_config.json の構文とパスを確認します
  • すべてのパスが絶対パスであることを確認します
  • Claude Desktop を完全に再起動します

インポートエラー:

pip install mcp feedparser pyyaml httpx

feeds.yaml の形式エラー:

  • リストを直接記述する形式を使用します(- で開始)
  • feeds: ラッパーは不要です
  • YAML の構文が正しいことを確認します

ファイル権限エラー:

  • state.json への書き込み権限があることを確認します
  • ディレクトリの権限を確認します
デバッグ手順
  1. ローカルでテスト: python main.py
  2. 依存関係を確認: pip list | grep -E "(mcp|feedparser|pyyaml|httpx)"
  3. 設定を検証: Claude Desktop のログを確認します
  4. フィードを確認: ブラウザーでフィード URL をテストします

🧪 開発

テストの実行
# Test RSS feed processing
python -c "from processor import RSSProcessor; import asyncio; asyncio.run(RSSProcessor().initialize())"

# Test state management
python -c "from state import StateManager; sm = StateManager(); print('State manager working')"
新しいフィードの追加
  1. feeds.yaml にフィード URL を追加します
  2. 適切なタグを設定します
  3. MCP サーバーを再起動します
  4. フィードを更新します:「RSS フィードを更新して」
デバッグ

main.py を変更してデバッグ出力を有効にします:

import sys
print("Debug info", file=sys.stderr)

📈 パフォーマンス

  • フィード更新:3~5 個のフィードで約 2~5 秒
  • 記事検索:一般的なクエリで 1 秒未満
  • 状態の永続化:既読/未読状態の変更時に自動で行います
  • メモリ使用量:通常の動作で約 10~20 MB

🤝 貢献

  1. リポジトリをフォークします
  2. 機能ブランチを作成します
  3. テストを追加して変更を行います
  4. プルリクエストを送信します

📄 ライセンス

MIT License - 詳細はLICENSEファイルをご覧ください

🆘 サポート

  • 問題:ログを添えてGitHubのIssueを作成してください
  • 質問:@anil.goparaju をタグ付けしてください
  • ドキュメント:Google Driveのドキュメントをご覧ください

🎯 ユースケース

毎日のニュース概要:

"Update feeds and show me unread articles about GPS jamming and spoofing"

リサーチ支援:

"Search for articles about LEO PNT systems published this week"

競合情報:

"Find articles mentioning TrustPoint or military navigation systems"

コンテンツのキュレーション:

"Show me all unread articles, then mark the first 10 as read"

📊 出力例

「GPS jamming」を検索すると、構造化された結果が表示されます。

{
  "count": 3,
  "articles": [
    {
      "id": "251bc714...",
      "title": "U.S. Army Taking a Layered Approach to PNT",
      "link": "https://insidegnss.com/...",
      "published": "2025-06-03T16:58:20",
      "author": "Renee Knight",
      "feed_tags": ["C-band", "TrustPoint", "GPSIA", "LEO", "PNT"],
      "content": "...anti-jamming capabilities..."
    }
  ]
}

最終更新日: 2025年6月5日
ステータス: ✅ 本番環境対応

コメント

MCP は初めてですか?

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

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