MCP Podcast Scraper MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
git clone https://github.com/wkoleilat-happytitan/mcp-podcast-scraper.git
cd mcp-podcast-scraper
npm install
npm run build
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add -e "deepgramApiKey=${deepgramApiKey}" podcast-scraper -- node "<FULL_PATH_TO_MCP_PODCAST_SCRAPER>/dist/index.js"

Replace <FULL_PATH_TO_MCP_PODCAST_SCRAPER>/dist/index.js with the actual folder you prepared in step 1.

Required:deepgramApiKey
README.md

Scrape and transcribe podcast episodes from YouTube or RSS feeds

MCP Podcast Scraper

An MCP (Model Context Protocol) server that scrapes and transcribes podcast episodes. Designed to work with Claude Code or Claude Desktop - you provide the podcast, the MCP transcribes it, and Claude summarizes it.

What It Does

  • šŸŽ™ļø Scrapes podcasts from YouTube videos or RSS feeds
  • šŸŽÆ Transcribes audio using Deepgram's fast Nova-2 model
  • šŸ“ Organizes files by podcast name and episode date
  • šŸ”„ Tracks podcasts for new episodes
  • ā­ļø Skips duplicates - won't re-scrape already processed episodes
  • šŸ“‹ Finds incomplete work - lists episodes that need summarization
  • āœļø Custom summary prompts - customize how Claude summarizes for your needs

How It Works

You: "Check for new episodes and summarize them"
         ↓
Claude: Calls check_new_episodes() → Finds new episodes
         ↓
Claude: Calls scrape_podcast() → Downloads & transcribes
         ↓
Claude: Calls get_summary_prompt() → Reads your custom instructions
         ↓
Claude: Calls get_transcript() → Reads the transcript
         ↓
Claude: Summarizes following your prompt
         ↓
Claude: Calls save_summary() → Saves the .md file
         ↓
Done! transcript.md + summary.md saved

Installation Guide

Step 1: Prerequisites

Install required system tools (macOS):

# 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

Step 2: Clone & Build

# 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

Step 3: Get a Deepgram API Key

  1. Go to https://console.deepgram.com/
  2. Sign up (free tier includes $200 credit - enough for ~300 hours of audio)
  3. Create an API key
  4. Copy the key

Step 4: Configure

Copy the example config file and add your API key:

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

# Edit config.json and add your Deepgram API key

Your config.json should look like:

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

āš ļø Important: Never commit config.json to git - it contains your API key! The .gitignore already excludes it.

Step 5: Add to Claude Code

Add this to your Claude Code MCP settings (~/.cursor/mcp.json or via Settings → MCP):

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

Important: Replace /FULL/PATH/TO/ with the actual path to your installation.

Step 5 (Alternative): Add to Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

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

Then restart Claude Desktop.


File Structure

mcp-podcast-scraper/
ā”œā”€ā”€ config.example.json     # Template - copy to config.json
ā”œā”€ā”€ config.json             # Your config (git-ignored, contains API key)
ā”œā”€ā”€ tracking.example.json   # Example tracking file
ā”œā”€ā”€ tracking.json           # Your tracked podcasts (git-ignored)
ā”œā”€ā”€ prompts/
│   └── summary-prompt.md   # Customize how Claude summarizes (editable)
ā”œā”€ā”€ podcasts/               # Your transcripts & summaries (git-ignored)
ā”œā”€ā”€ src/                    # Source code
ā”œā”€ā”€ dist/                   # Compiled code (git-ignored)
└── node_modules/           # Dependencies (git-ignored)

Usage Examples

Scrape a Specific Episode

"Scrape this YouTube podcast: https://youtube.com/watch?v=..."

"Find and scrape the latest Lex Fridman episode"

Track Podcasts for New Episodes

"Track the Huberman Lab podcast: https://feeds.megaphone.fm/hubermanlab"

"Check my tracked podcasts for new episodes"

"List all podcasts I'm tracking"

Find Incomplete Work

"Show me episodes that need summaries"

"List incomplete episodes"

MCP Tools Reference

Tool Description
scrape_podcast Scrape & transcribe an episode. Returns file path and preview.
get_transcript Read the full transcript of a scraped episode.
get_summary_prompt Get your custom summarization instructions.
save_summary Save your generated summary to a markdown file.
check_new_episodes Check tracked podcasts for new (unscraped) episodes.
list_incomplete Find episodes with transcripts but no summaries.
search_podcast Search YouTube or parse RSS feeds to find episodes.
add_tracking Add a podcast RSS feed to your tracking list.
list_tracking List all podcasts you're tracking.
remove_tracking Remove a podca

Tools (10)

scrape_podcastScrape and transcribe an episode, returning file path and preview.
get_transcriptRead the full transcript of a scraped episode.
get_summary_promptGet your custom summarization instructions.
save_summarySave your generated summary to a markdown file.
check_new_episodesCheck tracked podcasts for new unscraped episodes.
list_incompleteFind episodes with transcripts but no summaries.
search_podcastSearch YouTube or parse RSS feeds to find episodes.
add_trackingAdd a podcast RSS feed to your tracking list.
list_trackingList all podcasts you are tracking.
remove_trackingRemove a podcast from your tracking list.

Environment Variables

deepgramApiKeyrequiredAPI key for Deepgram transcription services

Configuration

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

Try it

→Check my tracked podcasts for new episodes and transcribe any found.
→Scrape this YouTube podcast: https://youtube.com/watch?v=...
→Show me episodes that need summaries.
→Track the Huberman Lab podcast: https://feeds.megaphone.fm/hubermanlab
→List all podcasts I am currently tracking.

Frequently Asked Questions

What are the key features of MCP Podcast Scraper?

Scrapes podcasts from YouTube videos or RSS feeds. Transcribes audio using Deepgram's Nova-2 model. Tracks podcasts for new episodes automatically. Organizes transcripts and summaries by podcast and date. Customizable summary prompts for Claude.

What can I use MCP Podcast Scraper for?

Automating the transcription and summarization of daily news podcasts. Building a searchable personal library of podcast content. Tracking multiple podcast feeds for new releases without manual checking. Generating quick summaries of long-form educational content for study.

How do I install MCP Podcast Scraper?

Install MCP Podcast Scraper by running: git clone https://github.com/wkoleilat-happytitan/mcp-podcast-scraper.git && cd mcp-podcast-scraper && npm install && npm run build

What MCP clients work with MCP Podcast Scraper?

MCP Podcast Scraper works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep MCP Podcast Scraper docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare