Jupiter Broadcasting Podcast Data MCP Server
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.
README
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)
curl -LsSf https://astral.sh/uv/install.sh | sh
Clone and Setup
git clone <repository-url>
cd jupiterbroadcasting_mcp
uv sync
Usage
Running the Server
To start the MCP server:
uv run jupiterbroadcasting-mcp
Or alternatively:
uv run python -m jupiterbroadcasting_mcp.server
MCP Tools
1. List Shows
Returns an array of available podcast show names.
{
"tool": "list_shows",
"arguments": {}
}
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.
{
"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"
}
}
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.
{
"tool": "get_episode",
"arguments": {
"show_name": "Linux Unplugged",
"episode_number": "635"
}
}
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.
{
"tool": "get_transcript",
"arguments": {
"show_name": "Linux Unplugged",
"episode_number": "635"
}
}
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:
JB_FEEDS = {
"Show Name": "https://example.com/feed.rss",
"Another Show": "https://example.com/another-feed.rss",
}
Podcast 2.0 Namespace Support
This server supports Podcast 2.0 namespace elements including:
<podcast:person>for host information<podcast:transcript>for transcript URLs- Standard RSS elements for titles, descriptions, and enclosures
Development
Setting up Development Environment
# 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 .
Project Structure
jupiterbroadcasting_mcp/
├── jupiterbroadcasting_mcp/
│ ├── __init__.py
│ ├── server.py # Main MCP server
│ └── rss_parser.py # RSS feed parsing logic
├── tests/ # Test files
├── pyproject.toml # Project configuration
└── README.md
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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.