Parses Podcast 2.0 RSS feeds from Jupiter Broadcasting shows, providing tools to list shows, search episodes by various criteria, retrieve detailed episode information, and fetch episode transcripts
Jupiter Broadcasting Podcast Data MCP Server
A FastMCP server that parses Podcast 2.0 RSS feeds from Jupiter Broadcasting shows and provides access to episode data through MCP tools.
Features
This MCP server provides four main tools:
List Shows - Returns a list of available podcast shows
Search Episodes - Search episodes by show, date range, hosts, or text content
Get Episode - Retrieve detailed information about a specific episode
Get Transcript - Fetch episode transcripts when available
Installation
This project uses the uv package manager for Python dependency management.
Prerequisites
Python 3.10 or higher
uv package manager
Install uv (if not already installed)
Clone and Setup
Usage
Running the Server
To start the MCP server:
Or alternatively:
MCP Tools
1. List Shows
Returns an array of available podcast show names.
Returns: Array of show names (e.g., ["Linux Unplugged", "This Week in Bitcoin", ...])
2. Search Episodes
Search for episodes using various criteria. At least one parameter must be provided.
Parameters:
show_name(optional): Filter by specific showsince_date(optional): Episodes published on or after this date (YYYY-MM-DD or ISO format)before_date(optional): Episodes published before this date (YYYY-MM-DD or ISO format)hosts(optional): Array of host names to filter bytext_search(optional): Search text in episode titles and descriptions
Returns: Array of episode objects with metadata
3. Get Episode
Retrieve detailed information about a specific episode.
Parameters:
show_name(required): Name of the showepisode_number(required): Episode number
Returns: Episode object with full metadata including:
Title and description
Publication date
Host information
Audio file URLs
Transcript URL (if available)
Duration
Hosts
4. Get Transcript
Fetch the transcript content for an episode.
Parameters:
show_name(required): Name of the showepisode_number(required): Episode number
Returns: Object containing transcript text or error message
Configuration
Adding New Feeds
To add or modify RSS feeds, edit the JB_FEEDS dictionary in jupiterbroadcasting_mcp/server.py:
Podcast 2.0 Namespace Support
This server supports Podcast 2.0 namespace elements including:
<podcast:person>for host information<podcast:transcript>for transcript URLsStandard RSS elements for titles, descriptions, and enclosures
Development
Setting up Development Environment
Project Structure
Error Handling
The server includes comprehensive error handling:
Invalid search parameters return error messages
Network failures when fetching feeds are logged
Missing episodes or transcripts return appropriate error responses
Malformed RSS feeds are handled gracefully
Dependencies
fastmcp: FastMCP framework for building MCP servers
lxml: High-performance XML parsing with full Podcast 2.0 namespace support
requests: HTTP client for fetching feeds and transcripts
License
MIT License - see LICENSE file for details.
Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests for new functionality
Run the test suite and linting
Submit a pull request
Support
For issues and questions, please open an issue on the GitHub repository.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Enables access to Jupiter Broadcasting podcast episodes through RSS feed parsing. Supports searching episodes by date, hosts, or content, retrieving detailed episode information, and fetching transcripts when available.