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. 02搜索 LEO 卫星系统相关文章
  3. 03查找涉及特定组织或主题的报道
  4. 04将已查看文章标记为已读

MCP 相关

它提供 RSS 源更新、文章获取、已读状态管理和搜索工具,并公开未读及全部文章资源。该服务面向 Claude Desktop 使用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

📡 RSS MCP 服务

Status Python MCP

一个模块化的模型上下文协议(MCP)服务,可通过 Claude Desktop 的自然语言界面,跟踪、筛选并呈现来自自定义 RSS 订阅源的 PNT/GNSS 新闻。

✨ 功能

  • 🔗 原生 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:

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS):

{
  "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. 将订阅源 URL 添加到 feeds.yaml
  2. 配置合适的标签
  3. 重启 MCP 服务
  4. 更新订阅源:"Update my RSS feeds"
调试

通过修改 main.py 启用调试输出:

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

📈 性能

  • 订阅源更新:3-5 个订阅源约需 2-5 秒
  • 文章搜索:典型查询耗时 <1 秒
  • 状态持久化:在已读/未读状态更改时自动保存
  • 内存使用量:典型运行约 10-20MB

🤝 参与贡献

  1. Fork 此仓库
  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 日
状态: ✅ 已可用于生产环境

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。