Podcast transcripts as clean Markdown with real speaker names — via the Spoken API.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"spoken": {
"env": {
"SPOKEN_API_KEY": "pt_your_key"
},
"args": [
"-y",
"spoken-mcp"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
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.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in entertainment / writing
MCP Security Weekly
Get CVE alerts and security updates for io.github.spokenmd/spoken and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
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.
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.
agents.md, llms.txt, and an OpenAPI specGet a key at spoken.md — or try it free with the demo key pt_demo (search works fully; transcripts limited to the demo episode).
# 1. Find an episode (by text, or paste a Spotify/YouTube URL)
curl -s 'https://spoken.md/search?q=huberman+sleep' \
-H 'x-api-key: pt_demo'
# 2. Fetch the transcript as Markdown
curl -s 'https://spoken.md/transcripts/1000651996090' \
-H 'x-api-key: pt_demo'
The transcript comes back as Markdown with named speakers and timestamps:
**John Smith** (0:00)
Welcome to the show. Today we're talking about...
**Jane Doe** (0:15)
Thanks for having me.
| Method & path | What it does | Credits |
|---|---|---|
GET /search?q={query or URL} | Find episodes; returns id, title, podcast, podcastId, date | 0 |
GET /podcasts/{podcastId}/episodes | List a show's full back catalog; returns every episode's id, title, date | 0 |
GET /transcripts/{id} | Return the Markdown transcript | 1 on first fetch, 0 on repeat |
GET /balance | Current credit balance + usage history | 0 |
POST /buy | New-key checkout (Stripe) | — |
POST /top-up?key={key} | Returning-customer top-up (Stripe) | — |
Auth is the x-api-key header. Responses include X-Credits-Remaining and X-Credits-Charged. See agents.md for the full error table and response shapes.
examples/podcast_summarizer.py — fetch a transcript and summarize itexamples/rag_pipeline.py — chunk a transcript for a vector store / RAGexamples/quickstart.sh — search → transcript in two curl callsThis repo includes spoken-mcp, a Model Context Protocol server that exposes Spoken to MCP-compatible agents (Claude Desktop, Cursor, Cline, …). It provides four tools:
| Tool | Description |
|---|---|
search_podcasts | Find episodes by text or a pasted Spotify/YouTube URL |
list_episodes | List a show's entire back-catalog from a podcast_id |
get_transcript | Fetch an episode's transcript as Markdown with real speaker names |
get_balance | Check remaining credits |
Add it to your MCP client config (e.g. Claude Desktop's claude_desktop_config.json):
{
"mcpServers": {
"spoken": {
"command": "npx",
"args": ["-y", "spoken-mcp"],
"env": { "SPOKEN_API_KEY": "pt_your_key" }
}
}
}
SPOKEN_API_KEY defaults to pt_demo (search works fully; transcripts limited to the demo episode). Get a real key at spoken.md.
Run from source instead:
npm install && npm run build
SPOKEN_API_KEY=pt_your_key node dist/index.js