播客2.0 RSS数据MCP服务器
FastMCP服务器解析播客2.0 RSS提要,并通过MCP工具提供对剧集数据的访问。
特性
此MCP服务器提供四个主要工具:
- 列表显示 -返回可用播客节目列表
- 搜索剧集 -按节目、日期范围、主持人或文本内容搜索剧集
- 获取剧集 -检索特定剧集的详细信息
- 获取成绩单 -获取可用的剧集记录
安装
该项目使用 uv Python依赖管理的包管理器。
先决条件
- Python 3.10或更高版本
- 紫外线 包管理器
安装uv(如果尚未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh克隆和设置
git clone
cd podcast_mcp
uv sync用法
运行服务器
要启动MCP服务器,请执行以下操作:
uv run podcast_mcp或者:
uv run python -m podcast_mcp.serverMCP工具
1.列表显示
返回可用播客节目名称的数组。
{
"tool": "list_shows",
"arguments": {}
}退货: 节目名称数组(例如。, ["Linux Unplugged", "This Week in Bitcoin", ...])
2.搜索剧集
使用各种条件搜索剧集。必须至少提供一个参数。
{
"tool": "search_episodes",
"arguments": {
"show_name": "Linux Unplugged",
"since_date": "2024-01-01",
"before_date": "2024-12-31",
"hosts": ["Chris Fisher", "Wes Payne"],
"text_search": "kubernetes"
}
}参数:
show_name(可选):按特定节目筛选since_date(可选):在此日期或之后发布的剧集(YYYY-MM-DD或ISO格式)before_date(可选):在此日期之前发布的剧集(YYYY-MM-DD或ISO格式)hosts(可选):要筛选的主机名数组text_search(可选):在剧集标题和描述中搜索文本
退货: 包含元数据的剧集对象数组
3.获取剧集
检索特定剧集的详细信息。
{
"tool": "get_episode",
"arguments": {
"show_name": "Linux Unplugged",
"episode_number": "635"
}
}参数:
show_name(必填):演出名称episode_number(必填):剧集编号
退货: 包含完整元数据的剧集对象,包括:
- 标题和说明
- 出版日期
- 主机信息
- 音频文件URL
- 成绩单URL(如果可用)
- 持续时间
- 主机
4.获取成绩单
获取一集的文字记录内容。
{
"tool": "get_transcript",
"arguments": {
"show_name": "Linux Unplugged",
"episode_number": "635"
}
}参数:
show_name(必填):演出名称episode_number(必填):剧集编号
退货: 包含转录文本或错误消息的对象
配置
添加新订阅源
要添加或修改RSS源,请编辑 FEEDS 字典在 podcast_mcp/server.py:
FEEDS = {
"Show Name": "https://example.com/feed.rss",
"Another Show": "https://example.com/another-feed.rss",
}播客2.0命名空间支持
此服务器支持播客2.0命名空间元素,包括:
- `
` 获取主机信息
- `
` 用于转录URL
- 标题、描述和附件的标准RSS元素
发展
建立开发环境
# Install with development dependencies
uv sync --group dev
# Run tests
uv run pytest
# Format code
uv run black .
uv run isort .
# Type checking
uv run mypy .项目结构
podcast_mcp/
├── podcast_mcp/
│ ├── __init__.py
│ ├── server.py # Main MCP server
│ └── rss_parser.py # RSS feed parsing logic
├── tests/ # Test files
├── pyproject.toml # Project configuration
└── README.md错误处理
服务器包括全面的错误处理:
- 无效的搜索参数返回错误消息
- 记录获取提要时的网络故障
- 缺失的剧集或成绩单会返回相应的错误响应
- 格式错误的RSS源得到妥善处理
依赖项
- fastmcp:用于构建MCP服务器的FastMCP框架
- lxml 文件:具有完整Podcast 2.0命名空间支持的高性能XML解析
- 请求::用于获取提要和转录的HTTP客户端
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 添加新功能的测试
- 运行测试套件和linting
- 提交拉取请求
支持
有关问题和疑问,请在GitHub存储库上打开问题。
