Skip to main content

Podcast Summarizer MCP 📝

MCP that works with OpenClaw, Claude Desktop, Claude Code. Search & discover YouTube channels via natural language and summarize videos with no transcripts or subtitles required.

License: MIT Python MCP Version

Claude Desktop Claude Code OpenClaw


Quick start (5 minutes)

Python 3.10+ and a Gemini API key (free) from https://aistudio.google.com.

1. Install from source

git clone https://github.com/kaiding-ucb/podcast-summarizer-mcp
cd podcast-summarizer-mcp
python3 -m venv .venv && .venv/bin/pip install -e .

# Note the absolute path — you'll paste it into your host config below.
echo "$(pwd)/.venv/bin/podcast-summarizer-mcp"

2. Configure ONE host

Pick whichever you use. Replace /ABSOLUTE/PATH with what step 1 echoed, and AIza... with your Gemini key.

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "podcast-summarizer": {
      "command": "/ABSOLUTE/PATH",
      "env": { "GEMINI_API_KEY": "AIza..." }
    }
  }
}

Quit Claude Desktop fully (⌘Q) and reopen. Click the 🔌 icon — podcast-summarizer should be listed.

Claude Code

claude mcp add podcast-summarizer \
  --env GEMINI_API_KEY=AIza... \
  -- /ABSOLUTE/PATH

claude mcp list   # should show podcast-summarizer

OpenClaw

Add to ~/.openclaw/openclaw.json under mcp.servers:

"podcast-summarizer": {
  "command": "/ABSOLUTE/PATH",
  "env": { "GEMINI_API_KEY": "AIza..." }
}

Restart OpenClaw (pkill -f openclaw-gateway; openclaw).


Example prompts

Discover:

Does Andrej Karpathy have a YouTube channel?

Find me a few investing podcasts.

Track:

Add Forward Guidance to my channels

Add @ForwardGuidanceBW

What channels am I tracking?

Remove Forward Guidance

Summarize:

Summarize this video: https://www.youtube.com/watch?v=MO9ZTZPUwXY

Summarize today's new videos from all my channels in parallel

I have a 20-video backlog — no rush, do it overnight to save cost

The agent picks analyze_video_start (parallel, full price) by default and analyze_videos_batch_start (50% off, async) only when you say "no rush" / "overnight".


📱 Use via Telegram, WhatsApp & More (OpenClaw)

Connect this MCP to Telegram, WhatsApp, Discord and 20+ messaging platforms via OpenClaw — a self-hosted AI gateway. Talk to your podcast research agent from your phone, anywhere.

Telegram → OpenClaw agent (Claude / Gemini / GPT) → podcast-summarizer-mcp → Gemini + YouTube

OpenClaw routes messages from your chat platform of choice to an AI agent. The agent talks to this MCP over standard stdio — no Python wrapper or shim required.

Setup

# 1. Install OpenClaw (Node 22+)
npm install -g openclaw

# 2. Add a Telegram bot token (interactive — paste BotFather token)
openclaw configure --section channels

# 3. Add this MCP + agent + model to ~/.openclaw/openclaw.json:
#    (already covered in Quick Start — use the OpenClaw snippet)
openclaw config set agents.defaults.model "anthropic/claude-sonnet-4-5"

# 4. Start the gateway
openclaw gateway

Tools

13 tools. The agent picks; you don't call them directly.

Tool Purpose
search_youtube_channels(query, max_results=5) Fuzzy channel search
resolve_youtube_channel(handle_or_url) @handle or URL → channel
get_channel_metadata(channel_id) Subs, description, recent titles
add_tracked_channel(channel_id, name, handle?, tags?) Add to registry
remove_tracked_channel(channel_id) Remove from registry
list_tracked_channels(tag?) List tracked channels
discover_new_videos(channel_ids?, tag?, ...) New videos since last poll
get_video_info(video_url) Metadata only (no Gemini cost)
analyze_video_start(video_url, prompt?) Launch Gemini analysis (returns job_id)
analyze_video_result(job_id) Poll for the result
analyze_videos_batch_start(video_urls, prompt?) 50%-cheaper batch path (24h SLA)
analyze_videos_batch_result(batch_job_name) Poll batch result
get_state(channel_ids?) Per-channel last-seen video

Registry state lives at ~/.podcast-summarizer-mcp/channels.json.


Configuration

Set in the host's env block. Only GEMINI_API_KEY is required.

Variable Default
GEMINI_API_KEY required
VIDEO_ANALYSIS_CHANNELS_PATH ~/.podcast-summarizer-mcp/channels.json
VIDEO_ANALYSIS_STATE_PATH ~/.podcast-summarizer-mcp/video-state.json
VIDEO_ANALYSIS_JOBS_PATH ~/.podcast-summarizer-mcp/jobs.json
VIDEO_ANALYSIS_BATCH_METADATA_PATH ~/.podcast-summarizer-mcp/batches.json
VIDEO_ANALYSIS_PROMPT_PATH unset → built-in investment-podcast prompt

VIDEO_ANALYSIS_PROMPT_PATH is re-read on every analysis call (no restart). Bundled examples in prompts/: investment-podcast.md, technical-talk.md, interview.md, news-briefing.md.


MIT License.

Metadata

Release files for podcast-summarizer-mcp 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for podcast-summarizer-mcp 0.3.0
File Size Uploaded Provenance Actions
podcast_summarizer_mcp-0.3.0.tar.gz 68.1 kB Without provenance Details for podcast_summarizer_mcp-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for podcast-summarizer-mcp 0.3.0
File Interpreter ABI Platform Actions
podcast_summarizer_mcp-0.3.0-py3-none-any.whl Python 3 none any Details for podcast_summarizer_mcp-0.3.0-py3-none-any.whl

Total release size: 108.1 kB

Release files / podcast_summarizer_mcp-0.3.0.tar.gz

Download URL podcast_summarizer_mcp-0.3.0.tar.gz
Size 68.1 kB
Tags Source
SHA-256 checksum
How to use checksums
5a4b6ad5a4fb63b2508a5d1820d57656e8e14270254b730b337c3151151813d3
BLAKE2b-256 checksum
How to use checksums
d9c66d61abc615e733e39a405bf5167bacc20d32b67586ce5cde218b56923f51
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / podcast_summarizer_mcp-0.3.0-py3-none-any.whl

Download URL podcast_summarizer_mcp-0.3.0-py3-none-any.whl
Size 40.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dbc1ca52fc9fcfca35a00a5dd08e3c9736733b59271233cdbe7fe069bc025890
BLAKE2b-256 checksum
How to use checksums
05101ea9d7d1559785bfed55cbda7324b9ccf0baf2804b309e2026b29733a4d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Security for podcast-summarizer-mcp 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page