get_transcript charges 1 credit the first time an episode is fetched, nothing on repeat fetches and nothing when the call errors, so re-reading a transcript you already have costs nothing and a failed call does not quietly bill you. list_episodes is where that rule starts to matter: it returns a show's entire catalogue and its own description warns that transcribing the returned episodes costs a credit each, which is why get_balance exists before the loop rather than after it. search_podcasts accepting a pasted episode URL removes the usual step of hunting for an id first.
A podcast transcript service with four tools: episode search, transcript fetch, a show's full episode list, and the credit balance behind them.
- Search that takes a URL as readily as a query: search_podcasts matches published episodes by text or from a pasted episode URL such as Spotify or YouTube, returning id, title, podcast, podcast_id and date, and consuming no credits.
- Transcripts in a readable form: get_transcript returns an episode's transcript as clean Markdown with real speaker names and timestamps, from an episode id.
- A whole show at once: list_episodes returns a podcast's entire back-catalogue newest first from a podcast_id, each entry carrying id, title and date, and consumes no credits itself.
- Billing stated in the tools rather than elsewhere: get_transcript costs 1 credit on an episode's first fetch, repeat fetches are free and errors are never charged, and get_balance returns the current credit balance, account email and recent usage without consuming a credit.
A Spoken API key, supplied as SPOKEN_API_KEY, with credits on it for transcript fetches.
One command — npx -y spoken-mcp
