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.
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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.