
Spoken
io.github.roberttomkoPublished by GitHub account roberttomkov0.1.1Updated Oct 24, 2026
Podcast transcripts as clean Markdown with real speaker names — via the Spoken API.
Overview
Gives an assistant podcast transcripts as clean Markdown with real speaker names, plus episode search, show catalogs and credit checks via the Spoken API.
- What you can do
- Search episodes by text query or a pasted Spotify/YouTube URL
- List a show's full back catalog of episodes
- Fetch an episode's transcript as Markdown with named speakers and timestamps
- Check remaining credits and see which shows the key follows
- Follow or mute shows, and list new unfetched episodes on followed shows
- When to use it
- Useful when you want an assistant to pull published podcast transcripts for summarizing, search, RAG pipelines or keeping a knowledge base current, without uploading audio or running your own transcription and speaker labeling.
- Requirements
- Runs locally via npx spoken-mcp (Node.js) over stdio. Needs a Spoken API key in the SPOKEN_API_KEY environment variable; it defaults to the demo key pt_demo, which allows full search but transcripts only for the demo episode. Network access to the Spoken API is required.
Installation
In SourceWeft
- Open Spoken in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
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.
- 🎙️ Real speaker names, resolved automatically
- 📄 Clean Markdown with timestamps, tuned for LLM context windows and RAG chunking
- 🔎 Search by text query or paste a Spotify/YouTube URL
- 💳 Pay-per-use credits — no subscription, failed calls never charged, repeat fetches free
- 🤖 Agent-native — ships with an Agent Skill,
agents.md,llms.txt, and an OpenAPI spec
Get a key at spoken.md — or try it free with the demo key pt_demo (search works fully; transcripts limited to the demo episode).
Quickstart
The transcript comes back as Markdown with named speakers and timestamps:
Endpoints
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
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 callsexamples/archive-show.sh— archive a show's entire back catalogue, one file per episode
Use from Python
The spoken-md package wraps the API with no dependencies outside the standard library, and installs a spoken-md command.
archive(podcast_id, skip=...) walks a whole show and is resumable; errors are typed by status (PaymentRequired carries the top-up URL, NotFound means no transcript). See python/README.md.
Use as an MCP server
Spoken is a Model Context Protocol server two ways: hosted at https://spoken.md/mcp, and as spoken-mcp, the package in this repo, for clients that run a server locally (Claude Desktop, Cursor, Cline, …). Both provide the same eight tools:
Keeping a knowledge base current is list_new_episodes on a schedule and get_transcript on what it lists: each fetch raises that show's floor.
Hosted
Nothing to install. Point a client that connects to a URL at https://spoken.md/mcp (Streamable HTTP):
The client asks you to sign in the first time a tool needs your key. To skip that, send the key as a header yourself: Authorization: Bearer pt_your_key.
A client that can only sign in with OAuth, such as ChatGPT in developer mode, is sent to a page where you paste your key once. Steps for each app: spoken.md/mcp-server. With no key at all, searching, listing a show and the demo episode work.
Local
Add it to your MCP client config (e.g. Claude Desktop's claude_desktop_config.json):
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:
Use with AI agents
Spoken is designed to be called by agents. Point your agent at the Agent Skill (also served at https://spoken.md/.well-known/skills/spoken-md/SKILL.md), or hand it agents.md. The OpenAPI spec makes it easy to wrap as a tool for any function-calling or MCP-compatible client (Claude, GPT, Cursor).
Pricing
Pay-per-use credits, no subscription. New keys: 100 for $15, 500 for $50, 2,000 for $160. Machine-readable at spoken.md/pricing.md.
Links
- Website & docs: https://spoken.md
- Agent instructions: https://spoken.md/agents.md
- OpenAPI spec: https://spoken.md/.well-known/openapi.json
- LLM-friendly overview: https://spoken.md/llms.txt
Spoken is built and maintained at spoken.md.
Source: README.md at commit 079853d
Tools
0Version history
1- v0.1.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts