关于 📡 RSS MCP Server
RSS MCP Server 跟踪并搜索可配置 RSS 源中的 PNT/GNSS 新闻,并通过 Claude Desktop 提供自然语言交互。它支持标签筛选,并持久保存文章已读状态。
主要功能
- 01获取并解析多个 RSS 源
- 02按关键词和标签筛选搜索
- 03跟踪文章已读和未读状态
- 04通过自然语言管理订阅源
- 05提供未读及全部文章资源
适用场景
- 01查看未读的 GPS 干扰新闻
- 02搜索 LEO 卫星系统相关文章
- 03查找涉及特定组织或主题的报道
- 04将已查看文章标记为已读
MCP 相关
它提供 RSS 源更新、文章获取、已读状态管理和搜索工具,并公开未读及全部文章资源。该服务面向 Claude Desktop 使用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
📡 RSS 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
配置
- 创建 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]
- 配置 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"
}
}
}
⚠️ 将路径替换为项目的实际位置
- 完全重启 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、PNTjamming、spoofing、interferenceLEO、MEO、satellitesmilitary、defense、civilianM-code、anti-jam、resilient
🔧 故障排除
常见问题
Claude Desktop 中未显示服务:
- 检查
claude_desktop_config.json的语法和路径 - 确保所有路径都是绝对路径
- 完全重启 Claude Desktop
导入错误:
pip install mcp feedparser pyyaml httpx
feeds.yaml 格式错误:
- 使用直接列表格式(以
-开头) - 无需添加
feeds:包装项 - 确保 YAML 语法正确
文件权限错误:
- 确保
state.json具有写入权限 - 检查目录权限
调试步骤
- 本地测试:
python main.py - 检查依赖项:
pip list | grep -E "(mcp|feedparser|pyyaml|httpx)" - 验证配置: 检查 Claude Desktop 日志
- 验证订阅源: 在浏览器中测试订阅源 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')"
添加新订阅源
- 将订阅源 URL 添加到
feeds.yaml - 配置合适的标签
- 重启 MCP 服务
- 更新订阅源:"Update my RSS feeds"
调试
通过修改 main.py 启用调试输出:
import sys
print("Debug info", file=sys.stderr)
📈 性能
- 订阅源更新:3-5 个订阅源约需 2-5 秒
- 文章搜索:典型查询耗时 <1 秒
- 状态持久化:在已读/未读状态更改时自动保存
- 内存使用量:典型运行约 10-20MB
🤝 参与贡献
- Fork 此仓库
- 创建功能分支
- 编写更改并添加测试
- 提交拉取请求
📄 许可证
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 日
状态: ✅ 已可用于生产环境
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。