MCP Podcast Scraper

Provides an MCP server that scrapes, transcribes, and summarizes podcast episodes for Claude.
  • javascript

0

GitHub Stars

javascript

Language

4 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "wkoleilat-happytitan-mcp-podcast-scraper": {
      "command": "node",
      "args": [
        "/FULL/PATH/TO/mcp-podcast-scraper/dist/index.js"
      ],
      "env": {
        "TEMP_DIRECTORY": "./temp",
        "DEEPGRAM_API_KEY": "YOUR_ACTUAL_DEEPGRAM_API_KEY",
        "OUTPUT_DIRECTORY": "./podcasts"
      }
    }
  }
}

You set up an MCP server that automates scraping, transcribing, and summarizing podcasts. It coordinates with Claude to deliver concise episode summaries after you specify sources like YouTube or RSS feeds, making it easy to track new episodes and keep transcripts and notes organized.

How to use

You interact with the MCP Podcast Scraper through your MCP client. Typical workflows include checking for new episodes, scraping those episodes, getting transcripts, and generating summaries. The server can track podcasts for new episodes and skip duplicates so you always work with fresh content. You can customize how Claude summarizes by editing the prompt that guides the output.

How to install

Prerequisites and setup steps are provided to get you from a fresh environment to a running MCP server.

# Install Homebrew if you don't have it
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Install yt-dlp (for YouTube) and ffmpeg (for audio)
brew install yt-dlp ffmpeg
# Clone the repository
git clone https://github.com/wkoleilat-happytitan/mcp-podcast-scraper.git
cd mcp-podcast-scraper

# Install dependencies
npm install

# Build
npm run build

Obtain a Deepgram API key for transcription. Sign up to get a key and keep it secure; you will add it to the configuration file.

# Copy the example config
cp config.example.json config.json

# Edit config.json and add your Deepgram API key
{
  "outputDirectory": "./podcasts",
  "deepgramApiKey": "YOUR_ACTUAL_DEEPGRAM_API_KEY",
  "tempDirectory": "./temp"
}

Configure access for Claude MCP by adding the server to your MCP client configuration. The following example shows how to run the server locally via Node and point Claude to the compiled entry point. Replace the path with the actual installation path on your system.

{"mcpServers": {
  "podcast_scraper": {
    "command": "node",
    "args": ["/FULL/PATH/TO/mcp-podcast-scraper/dist/index.js"]
  }
}}

Additional setup for Claude Desktop or Claude Code

Add the MCP server definition to Claude Code or Claude Desktop so you can send requests to the scraper and receive transcripts and summaries.

# Claude Code MCP settings
{
  "mcpServers": {
    "podcast_scraper": {
      "command": "node",
      "args": ["/FULL/PATH/TO/mcp-podcast-scraper/dist/index.js"]
    }
  }
}

File structure you will use

The server stores transcripts and summaries organized by podcast and episode in a dedicated directory. You can review examples of how transcripts and summaries are stored after processing.

Configuration options

Key options control where files are saved, how transcripts are generated, and where temporary audio files reside.

{
  "outputDirectory": "./podcasts",
  "deepgramApiKey": "YOUR_ACTUAL_DEEPGRAM_API_KEY",
  "tempDirectory": "./temp"
}

Troubleshooting

If you encounter common issues, perform targeted checks to resolve them quickly.

# If ffprobe/ffmpeg are missing
brew install ffmpeg

Ensure your Deepgram API key is configured in the correct config file and that the path to the MCP entry point is accurate in Claude.

Tools and capabilities

The server exposes a set of tools for end-to-end podcast processing, from discovering episodes to saving final outputs.

Available tools

scrape_podcast

Scrape and transcribe an episode from a YouTube video or RSS feed and return the file path and a preview.

get_transcript

Read the full transcript of a scraped episode.

get_summary_prompt

Retrieve the custom summary prompt used to tailor Claude's summaries.

save_summary

Save the generated episode summary to a markdown file.

check_new_episodes

Check tracked podcasts for new (unprocessed) episodes.

list_incomplete

List episodes that have transcripts but are missing summaries.

search_podcast

Search YouTube or parse RSS feeds to locate podcast episodes.

add_tracking

Add a new podcast RSS feed to the tracking list.

list_tracking

List all podcasts currently being tracked.

remove_tracking

Remove a podcast from the tracking list.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational