
Spoken
Connects Claude to the Spoken API for pulling podcast transcripts with real speaker names instead of "Speaker 1" labels. Exposes three tools: search_podcasts to find episodes by text query or pasted Spotify/YouTube URL, get_transcript to fetch the full Markdown transcript with timestamps, and get_balance to check your credit usage. Spoken is a retrieval API for already published podcasts, so you skip running your own transcription pipeline. Useful when you need to summarize episodes, build RAG indexes over podcast content, or let an agent answer questions about specific shows. Runs on pay per use credits with a demo key available for testing.
- GitHub stars
- 5
- tools
- 8
- auth
- Secret needed
- transport
- STDIO, HTTP
- env var
- 1
- last updated
- Oct 6, 2026
Install
From registry metadata$ npx add-mcp https://spoken.md/mcp --name spoken --header 'Authorization: Bearer ${API_TOKEN}'Run in your terminal. add-mcp asks which agents to add it to, then asks for each value it needs. Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add --transport http spoken https://spoken.md/mcp --header 'Authorization: YOUR_AUTHORIZATION'Run in your terminal. Add --scope user to make it available in every project.
Tools
Verified live · 8 toolsVerified live against the running server on Nov 6, 2026.
search_podcastsSearch published podcast episodes by text query, or paste an episode URL (Spotify, YouTube, etc.). Returns matching episodes with their id, title, podcast, podcast_id, and date. Use the id with get_transcript, or the podcast_id with list_episodes to get the show's whole back-c...1 params
Search published podcast episodes by text query, or paste an episode URL (Spotify, YouTube, etc.). Returns matching episodes with their id, title, podcast, podcast_id, and date. Use the id with get_transcript, or the podcast_id with list_episodes to get the show's whole back-c...
query*stringget_transcriptFetch a podcast episode's transcript as clean Markdown with real speaker names and timestamps. Pass an episode id from search_podcasts. Costs 1 credit on the first fetch of an episode; repeat fetches are free and errors are never charged.1 params
Fetch a podcast episode's transcript as clean Markdown with real speaker names and timestamps. Pass an episode id from search_podcasts. Costs 1 credit on the first fetch of an episode; repeat fetches are free and errors are never charged.
episode_id*stringlist_episodesList a podcast's entire back-catalog (every episode, newest first). Pass a podcast_id from a search_podcasts result. Returns each episode's id, title, and date — fetch any with get_transcript. Use this to transcribe a whole show. Does not consume credits itself; transcribing t...1 params
List a podcast's entire back-catalog (every episode, newest first). Pass a podcast_id from a search_podcasts result. Returns each episode's id, title, and date — fetch any with get_transcript. Use this to transcribe a whole show. Does not consume credits itself; transcribing t...
podcast_id*stringget_balanceCheck the current Spoken credit balance, account email, and recent usage for the configured API key. Does not consume credits.
Check the current Spoken credit balance, account email, and recent usage for the configured API key. Does not consume credits.
No parameters. Call it with no arguments.
list_followingThe shows this key is kept current on. Every charged fetch makes its show a follow: the five most-fetched shows from the last 180 days are followed automatically (source 'fetch'), and up to 25 more can be declared with follow_podcast (source 'explicit'). Muted shows are listed...
The shows this key is kept current on. Every charged fetch makes its show a follow: the five most-fetched shows from the last 180 days are followed automatically (source 'fetch'), and up to 25 more can be declared with follow_podcast (source 'explicit'). Muted shows are listed...
No parameters. Call it with no arguments.
follow_podcastDeclare a follow for a show, or clear a mute. Pass a podcast_id from search_podcasts. A declared follow stays until unfollow_podcast, regardless of fetch activity, and does not use one of the five automatic slots. For a show never fetched, what counts as new starts from its ne...1 params
Declare a follow for a show, or clear a mute. Pass a podcast_id from search_podcasts. A declared follow stays until unfollow_podcast, regardless of fetch activity, and does not use one of the five automatic slots. For a show never fetched, what counts as new starts from its ne...
podcast_id*stringunfollow_podcastMute a show: it leaves the followed list and later fetches do not re-add it. follow_podcast reverses it. Pass a podcast_id from list_following. Does not consume credits.1 params
Mute a show: it leaves the followed list and later fetches do not re-add it. follow_podcast reverses it. Pass a podcast_id from list_following. Does not consume credits.
podcast_id*stringlist_new_episodesWhat is new on the shows this key follows: for each show, the episodes released in the last 90 days that are newer than the newest one already fetched from it (up to 10 per show), each with a transcript_url. Episodes with no transcript are left out. Fetch any with get_transcri...
What is new on the shows this key follows: for each show, the episodes released in the last 90 days that are newer than the newest one already fetched from it (up to 10 per show), each with a transcript_url. Episodes with no transcript are left out. Fetch any with get_transcri...
No parameters. Call it with no arguments.
Sponsors
Configuration
SPOKEN_API_KEYsecretAPI key from spoken.md (starts with pt_). Defaults to pt_demo (search works fully; transcripts limited to the demo episode).
Readme
Spoken — podcast transcript API and MCP server, clean Markdown with real speaker names
Spoken is a transcript API that turns any published podcast into clean Markdown with real speaker names — not "Speaker 1." One API call returns named, timestamped text, ready for LLMs, RAG pipelines, summarizers, and search. This repo also ships spoken-mcp, an MCP server that gives Claude Desktop, Claude Code, Cursor and Cline the same transcripts as tools — see Use as an MCP server.
It's a transcript retrieval API, not a speech-to-text service: it works on already-published podcasts, so you skip uploading audio, running diarization, and mapping anonymous speaker labels by hand. For published shows that's typically 5–10× cheaper than running the audio through a transcription service.
Details
- Repository
- github.com/spokenmd/spoken
- Website
- spoken.md
- Categories
- Documents & Knowledge, Media & Entertainment
- Package
spoken-mcp- Transport
- STDIO, HTTP
- Auth
- Required
- Registry
- MCP registry, active
- Tools verified
- Nov 6, 2026