Spoken
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Podcast transcripts as clean Markdown with real speaker names — via the Spoken API.
| Author | io.github.spokenmd |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2535 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Spoken": {
"url": "https://spoken.md/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (8)
search_podcastsread-onlySearch 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-catalog. Does not consume credits.
Parameters:
query(required) — string — Free text (e.g. 'huberman sleep') or a pasted episode URL.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_transcriptread-onlyFetch 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.
Parameters:
episode_id(required) — string — Episode id returned by search_podcasts.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
list_episodesread-onlyList 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 the returned episodes costs 1 credit each (repeat fetches are free), so make sure the key has enough credits before looping.
Parameters:
podcast_id(required) — string — Show id (the podcast_id field from a search_podcasts result).
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_balanceread-onlyCheck the current Spoken credit balance, account email, and recent usage for the configured API key. Does not consume credits.
Hints: read-only yes · destructive no · idempotent yes · open-world no
list_followingread-onlyThe 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 separately. Use list_new_episodes to see what is new on them. Does not consume credits; the demo key has nothing to follow with.
Hints: read-only yes · destructive no · idempotent yes · open-world no
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 newest episode now. Does not consume credits.
Parameters:
podcast_id(required) — string — Show id (the podcast_id field from a search_podcasts result).
Hints: read-only no · destructive no · idempotent yes · open-world no
unfollow_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.
Parameters:
podcast_id(required) — string — Show id, from list_following or search_podcasts.
Hints: read-only no · destructive no · idempotent yes · open-world no
list_new_episodesread-onlyWhat 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_transcript (1 credit each on first fetch); a fetch raises that show's floor, so the next call lists only what came after. Refreshed hourly, so a show followed moments ago may be empty until its first poll. Does not consume credits.
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.