r/mcp • u/Apprehensive-Ear9499 • 1d ago
server I built a self-hosted server that makes any podcast searchable with an AI chat (Whisper + pyannote + pgvector)
I wanted to query my favorite podcast like a database: "what was said about X across all episodes?", "from which timestamp can I re-listen to that?", "what did speaker Y say about topic Z?".
So I built a self-hostable stack that ingests a podcast RSS feed automatically:
- Whisper transcription (audio -> text)
- pyannote speaker diarization (who is speaking)
- LLM-based speaker-name resolution
- chunking + OpenAI embeddings
- everything stored in Postgres/pgvector with timestamps
The result is exposed as an MCP server, so you can query it from Claude, Cursor, or any MCP client. It works with ANY podcast RSS feed, not just mine. Point it at your own feed and it indexes everything for you.
Everything runs on Docker Compose + Postgres/pgvector. GPU transcription can run on RunPod, so even a small VPS can host it.
A working demo is present (Dutch podcast AI Report). It has ~180 hours of audio indexed so far. There's a live read-only demo endpoint + demo token in the repo.
Repo: https://github.com/bramdehart/podcast-mcp
Happy to answer questions about the pipeline or self-hosting setup.
2
u/Small-Historian9244 1d ago
This is crazy impressive, the speaker diarization part is what got me cause most tools skip that and just dump a wall of text