使用说明
RSS源MCP服务器
一个全面的模型上下文协议(MCP)服务器,用于解析、分析和监视RSS、Atom和JSON提要。该服务器使AI助手能够与互联网上的网络提要无缝交互。
特性
🎯 核心能力
- 通用提要解析:支持RSS 2.0、RSS 1.0(RDF)、Atom和JSON Feed格式
- 高级搜索和筛选:按关键字、作者、类别或日期范围搜索
- 多饲料比较:同时分析和比较多个提要
- 饲料验证:全面的结构验证,并提出可操作的建议
- 灵活的输出格式JSON(机器可读)和Markdown(人类可读)
- 远程和本地支持:以stdio、HTTP或SSE传输方式运行
🛠️ 可用工具
1. rss_parse_feed
从任何RSS/Atom/JSON提要中解析和检索项目。
# Example: Parse a tech blog feed
{
"url": "https://techcrunch.com/feed/",
"limit": 20,
"response_format": "markdown"
}
使用案例:
- 阅读最新博客文章
- 监控新闻更新
- 提取结构化饲料内容
- 获取快速订阅概览
2. rss_search_feed
使用高级条件搜索和筛选提要项。
# Example: Find Python articles published this month
{
"url": "https://realpython.com/atom.xml",
"keyword": "async",
"category": "tutorials",
"since_date": "2025-10-01",
"limit": 10
}
使用案例:
- 按主题查找特定文章
- 按作者或贡献者筛选
- 从特定类别获取帖子
- 在内容和标题中搜索
3. rss_compare_feeds
并排比较多个提要。
# Example: Compare tech news sources
{
"urls": [
"https://techcrunch.com/feed/",
"https://www.theverge.com/rss/index.xml",
"https://arstechnica.com/feed/"
],
"response_format": "json"
}
使用案例:
- 比较发布频率
- 监控多个来源
- 查找常见主题
- 更新的统一视图
4. rss_validate_feed
验证饲料结构并获得改进建议。
# Example: Validate your blog feed
{
"url": "https://myblog.com/feed.xml"
}
使用案例:
- 验证饲料合规性
- 解析问题疑难解答
- 获取质量建议
- 提交前验证
5. rss_get_feed_metadata
提取提要元数据而不解析所有项目(轻量级)。
# Example: Quick feed info check
{
"url": "https://example.com/rss",
"response_format": "json"
}
使用案例:
- 快速馈送信息
- 验证饲料可用性
- 获取标题和描述
- 监控饲料状态
📚 可用资源
资源通过OPML文件提供预配置的RSS提要集合,使得无需手动输入URL即可轻松访问常见提要。
feeds://list
列出OPML配置中所有可用的RSS源。
退货: JSON包含所有带有元数据的提要(名称、标题、xmlUrl、htmlUrl、类别、类型)
使用案例:
- 浏览可用提要
- 以编程方式获取提要URL
- 探索饲料类别
- 构建提要选择器
feeds://categories
列出所有带有统计信息的提要类别。
退货: JSON包含带有提要计数的类别和每个类别的提要列表
使用案例:
- 按主题组织提要
- 按类别筛选提要
- 获取类别统计信息
- 构建类别导航
🗂️ OPML饲料管理
服务器使用OPML文件来管理提要集合:
默认源: 该服务器包括14个跨类别的精选提要:
- 科技新闻(黑客新闻、TechCrunch、The Verge、Ars Technica)
- 开发者(GitHub博客、Dev.to、CSS技巧)
- 人工智能和机器学习(OpenAI、拟人、拥抱脸)
- Python(Python内幕,真正的Python)
- 综合新闻(英国广播公司技术部、路透社技术部)
自定义馈送: 创建自己的订阅源集合:
- 创建目录:
mkdir -p ~/.rss-mcp/ - 添加您的OPML文件:
~/.rss-mcp/feeds.opml - 重新启动服务器
OPML格式示例:
<?xml version="1.0" encoding="UTF-8"?>
<opml version="2.0">
<head>
<title>My RSS Feeds</title>
</head>
<body>
<outline text="Tech News" title="Tech News">
<outline
text="Hacker News"
title="Hacker News"
type="rss"
xmlUrl="https://hnrss.org/frontpage"
htmlUrl="https://news.ycombinator.com/"/>
</outline>
</body>
</opml>
安装
先决条件
- Python 3.10或更高版本
- 紫外线 (Python包管理器)
设置
- 安装UV(如果尚未安装):
curl -LsSf https://astral.sh/uv/install.sh | sh
- 克隆存储库:
git clone https://github.com/kiliczsh/rss-mcp-server.git
cd rss-mcp-server
- 安装依赖项:
uv sync
- 验证安装:
uv run server.py --help
用法
标准传输(默认-适用于克劳德桌面)
默认的stdio传输非常适合与Claude Desktop和其他MCP客户端集成:
uv run server.py
Claude桌面配置:
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"rss": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/rss-mcp-server",
"run",
"server.py"
]
}
}
}
HTTP传输(远程访问)
对于远程访问或web服务集成:
uv run server.py --transport http --port 8000
访问地址: http://localhost:8000
SSE传输(实时更新)
对于服务器发送的事件和实时通信:
uv run server.py --transport sse --port 8000
例子
示例1:阅读最新技术新闻
# Parse TechCrunch feed
{
"tool": "rss_parse_feed",
"params": {
"url": "https://techcrunch.com/feed/",
"limit": 10,
"response_format": "markdown"
}
}
示例2:查找人工智能研究文章
# Search for AI-related posts
{
"tool": "rss_search_feed",
"params": {
"url": "https://arxiv.org/rss/cs.AI",
"keyword": "transformer",
"since_date": "2025-10-01",
"limit": 5
}
}
示例3:比较新闻来源
# Compare multiple tech news feeds
{
"tool": "rss_compare_feeds",
"params": {
"urls": [
"https://news.ycombinator.com/rss",
"https://www.reddit.com/r/programming/.rss",
"https://techcrunch.com/feed/"
]
}
}
示例4:验证您的订阅源
# Check if your blog feed is properly formatted
{
"tool": "rss_validate_feed",
"params": {
"url": "https://myblog.com/feed.xml"
}
}
建筑
设计原则
遵循MCP最佳实践,此服务器由以下组件构建:
- 以代理为中心的设计:工具是为完整的工作流而设计的,而不仅仅是API包装器
- 上下文优化:响应简洁,细节级别可选
- 可操作错误:错误消息引导用户正确使用
- 自然任务细分:工具名称反映了人类对任务的看法
- 可组合代码:共享实用程序避免重复
核心组件
server.py
├── HTTP Client Management (lifespan)
├── Feed Parsers (RSS/Atom/JSON)
├── Helper Functions
│ ├── fetch_url()
│ ├── detect_feed_type()
│ ├── parse_rss_feed()
│ ├── parse_atom_feed()
│ ├── parse_json_feed()
│ ├── format_feed_markdown()
│ ├── filter_items()
│ └── truncate_response()
└── MCP Tools
├── rss_parse_feed
├── rss_search_feed
├── rss_compare_feeds
├── rss_validate_feed
└── rss_get_feed_metadata
响应格式
Markdown(默认):
- 人类可读格式
- 清理标题和列表
- 截断的内容预览
- 最适合面向用户的输出
JSON:
- 完整的结构化数据
- 所有可用字段
- 机器可解析
- 最适合程序化处理
支持的源格式
RSS 2.0
最常见的格式,在博客和新闻网站上得到广泛支持。
关键要素:
<channel>:馈送元数据<item>:个人参赛作品<title>,<link>,<description>:核心字段<pubDate>:出版日期<category>:主题分类
RSS 1.0(RDF)
基于RDF的格式,具有更好的命名空间支持。
关键要素:
- 使用RDF/XML结构
- 都柏林核心元数据
- 更好的可扩展性
原子
现代标准,要求严格,日期处理更好。
关键要素:
<feed>:饲料容器<entry>:个人参赛作品<id>:必需的唯一标识符<updated>:所需时间戳<content>:具有类型属性的完整内容
JSON提要
基于JSON的XML格式的替代品。
关键要素:
version:格式版本items:条目数组content_html/content_text:内容变体date_published,date_modified:时间戳
错误处理
服务器提供清晰、可操作的错误消息:
HTTP错误
HTTP error 404 when fetching https://example.com/feed.xml.
Please verify the URL is correct and accessible.
网络错误
Network error when fetching https://example.com/feed.xml: Connection timeout.
Please check your internet connection and try again.
解析错误
Invalid XML format: mismatched tag at line 42.
The feed may be malformed. Try using rss_validate_feed for details.
性能和限制
- 字符限制:响应截断为25000个字符
- 项目限制:每个请求最多100个项目
- 并发订阅源:相比之下,最多5个提要
- 请求超时:每次取饲料30秒
- HTTP客户端:与keep-alive的持续连接
故障排除
问题:源不解析
解决方案:
- 验证URL在浏览器中是否可访问
- 使用检查提要格式
rss_validate_feed - 确保URL使用http://或https://
问题:空结果
解决方案:
- 检查提要是否包含项目
- 验证筛选器是否限制性太强
- 先尝试不使用过滤器
问题:截断的响应
解决方案:
- 使用
limit减少项目的参数 - 应用过滤器缩小结果范围
- 使用JSON格式进行程序化处理
贡献
此服务器遵循MCP最佳实践:
- 工具设计:关注工作流,而不仅仅是API端点
- 文档:带示例的综合文档字符串
- 错误消息:为用户提供可操作的指导
- 代码质量:DRY原理,可组合功能
- 类型安全:完全Pydantic验证
技术细节
依赖项
- 主控程序:用于MCP服务器实现的FastMCP框架
- httpx:用于获取提要的异步HTTP客户端
- 皮丹提克:输入验证和类型安全
类型安全
所有输入均已Pydantic模型验证:
- URL格式验证
- 参数约束检查
- 基于枚举的格式选择
- 自动删除空白
异步架构
- 所有网络操作的无阻塞I/O
- 比较中的并发提要获取
- 适当的异步上下文管理器
- HTTP客户端的生命周期管理
文档
📚 综合指南可在 docs/ 文件夹:
- GET_STARTED.md -UV设置快速入门指南
- QUICKSTART.md -带示例的5分钟指南
- 示例.md -20+实际使用示例
- 部署.md -生产部署指南
- Developpent.md -开发工作流程和代码质量
- LOGGING_GUIDE.md -完整的日志记录文件
- 更改日志.md -项目变更历史
- 项目_ SUMMARY.md -完整的项目概述
许可证
MIT许可证-请参阅 许可证 详细信息文件
鸣谢
遵循MCP最佳实践和MCP构建器技能指南构建。
支持
对于问题、疑问或贡献:
- github:https://github.com/kiliczsh/rss-mcp-server
- 问题:https://github.com/kiliczsh/rss-mcp-server/issues
- 文档:https://modelcontextprotocol.io
- MCP规范:https://spec.modelcontextprotocol.io
由以下材料制成❤️ 对于MCP生态系统