Skip to main content
Glama

Server Details

Podcast transcripts as clean Markdown with real speaker names — via the Spoken API.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
spokenmd/spoken
GitHub Stars
5
Server Listing
Spoken

TDQS

A4.4/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct action: search, list, fetch, follow/unfollow, and balance. The only conceptual proximity is between list_following and list_new_episodes, but their descriptions clearly separate shows from new episodes.

Naming Consistency5/5

All tools use snake_case with a verb_noun pattern (follow_podcast, get_transcript, list_episodes, etc.). list_following is a minor gerund deviation but remains readable and consistent in style.

Tool Count5/5

8 tools is well within the 3-15 sweet spot for this domain. Each tool earns its place without redundancy.

Completeness4/5

The set covers discovery (search_podcasts), episode listing, transcript fetching, follow management (follow, unfollow, list following, list new episodes), and account balance. A direct show-search or episode-metadata (transcript availability) tool is missing, but agents can work around it.

Available Tools

8 tools
follow_podcastFollow a showAInspect

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 newest episode now. Does not consume credits.

ParametersJSON Schema
NameRequiredDescriptionDefault
podcast_idYesShow id (the podcast_id field from a search_podcasts result).

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description carries the full burden and does so well: it discloses that a declared follow persists until unfollow_podcast regardless of fetch activity, that it does not consume one of the five automatic slots, how 'new' is baselined for never-fetched shows, and that it costs no credits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short, front-loaded sentences with zero filler; the primary action, its prerequisite, and its side-effect semantics are ordered by importance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-annotation, no-output-schema mutation tool the behavioral coverage is strong. Minor gaps remain: what the call returns and how the 'clear a mute' mode is triggered given only a single podcast_id parameter are left unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the sole parameter's schema description already says it is 'the podcast_id field from a search_podcasts result.' The description repeats that guidance verbatim, adding no format, constraint, or validation detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource ('Declare a follow for a show'), and adds the secondary mode ('clear a mute'). The pairing with the sibling unfollow_podcast and list_following is implicit but the scope is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the caller to search_podcasts for the required podcast_id and names unfollow_podcast as the inverse operation. It does not spell out when-not conditions (e.g., when to prefer list_following), so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_balanceGet credit balanceAInspect

Check the current Spoken credit balance, account email, and recent usage for the configured API key. Does not consume credits.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses the cost-free trait ('Does not consume credits') and implies an API key must be configured, but says nothing about auth requirements, rate limits, or whether the returned data is cached/live.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the resource list and closing with the cost caveat; no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema or annotations, the description compensates by enumerating the return contents (balance, email, recent usage) and the absence of side effects. It is nearly complete, missing only auth/error behavior for a zero-parameter read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate beyond what the empty schema already conveys; the baseline for a parameterless tool applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Check') plus three concrete resources (credit balance, account email, recent usage), which unambiguously distinguishes it from every sibling, all of which operate on podcasts and episodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied — call this to inspect balance/usage for the configured key — and 'Does not consume credits' hints it is free to call, but there is no explicit when-to-use or when-not guidance, and no alternatives are named (none exist among siblings).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_transcriptGet transcriptAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
episode_idYesEpisode id returned by search_podcasts.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it delivers the most decision-relevant non-obvious trait: the credit model (1 credit on first fetch, free repeats, errors never charged). It omits auth requirements, rate limits, and whether transcripts can be unavailable for some episodes, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste, and the highest-value facts (what you get, what to pass, what it costs) are front-loaded. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still describes the return value (clean Markdown, real speaker names, timestamps), the input provenance, and the billing model. For a single-parameter fetch tool this is complete enough to invoke correctly without further exploration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter with 100% schema description coverage, and the schema already states it is the episode id returned by search_podcasts. The description repeats that fact rather than adding format, constraints, or edge-case behavior, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('Fetch a podcast episode's transcript') plus the output shape ('clean Markdown with real speaker names and timestamps'). It also distinguishes itself from the rest of the sibling set, none of which deal with transcripts, and names search_podcasts as the upstream source.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It tells the agent exactly how to obtain the required input ('Pass an episode id from search_podcasts'), which is actionable routing guidance. It stops short of stating when not to use the tool or how it relates to list_episodes/list_new_episodes, so it is clear context without explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_episodesList a show's episodesAInspect

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 the returned episodes costs 1 credit each (repeat fetches are free), so make sure the key has enough credits before looping.

ParametersJSON Schema
NameRequiredDescriptionDefault
podcast_idYesShow id (the podcast_id field from a search_podcasts result).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so: it discloses that listing itself consumes no credits, that transcription costs 1 credit per episode, that repeat fetches are free, and that the key must have sufficient balance. It also reveals the return shape (id, title, date) and ordering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences, front-loaded with the core scope before routing, return fields, and the credit warning. No filler; every clause conveys a distinct actionable fact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter list tool with no output schema, the description supplies the missing pieces an agent needs: return fields, ordering, the follow-up tool, and cost implications. Nothing required to invoke or sequence it correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already explains that podcast_id is the show id from a search_podcasts result, so the description merely restates it. No added syntax, format, or constraint detail beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list) and resource (a podcast's back-catalog) with explicit scope: 'entire back-catalog (every episode, newest first)'. It is clearly distinguishable from siblings like list_new_episodes and search_podcasts, and it names the required identifier's origin.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing: 'Pass a podcast_id from a search_podcasts result', names get_transcript as the follow-up for any episode, and states the use case ('transcribe a whole show'). It also warns to verify credits before looping, which is actionable when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_followingList followed showsAInspect

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 separately. Use list_new_episodes to see what is new on them. Does not consume credits; the demo key has nothing to follow with.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses credit consumption (none), demo-key behavior, the automatic follow rule (top five over 180 days, source 'fetch'), the 25-entry explicit cap, and that muted shows are handled separately. It omits return shape and ordering details, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then progressively adds behavioral detail in four short sentences with no filler. The final credit/demo sentence is justifiable operational context, though it slightly dilutes focus at the end.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read tool with no annotations and no output schema, the description covers behavior, limits, credit cost, and sibling routing adequately. A brief hint at the returned structure (fields, ordering) would make it fully self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4. The description's mention of source values ('fetch' vs 'explicit') is output-side context rather than parameter guidance, and nothing here misleads about inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific resource ('The shows this key is kept current on') with an implicit list verb, and the description goes on to explain exactly what membership in that list means. It routes the agent to follow_podcast for adding entries and to list_new_episodes for episode data, so it is distinguishable from siblings without opening their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly points to list_new_episodes for 'what is new' and mentions follow_podcast as the way to declare additional follows, giving clear context for when each alternative applies. It stops short of stating when NOT to use list_following (e.g. for muted-only or unfollow workflows), so it is not a full when/when-not treatment.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_new_episodesList new episodes on followed showsAInspect

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_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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses the 90-day window, the 10-per-show cap, the mutable state effect (fetching raises the show's floor, changing the next call's results), the hourly refresh staleness, and credit implications for both this tool and the follow-on get_transcript call. This is far beyond what structured fields provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core behavior and every subsequent sentence adds non-redundant operational detail (exclusions, credits, refresh cadence). It is dense and quite long for one paragraph, but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description still tells the agent what each item contains (a transcript_url), what is filtered out, the result caps, and the time-lag behavior. Nothing needed to select or correctly interpret this tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero input parameters, so there is nothing to document and the baseline is 4. The description does clarify the implicit scope ('the shows this key follows'), which is useful context even though it isn't a parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource plus a precise definition of 'new' (episodes from the last 90 days newer than the newest already fetched, capped at 10 per show). This differentiates it cleanly from the sibling list_episodes, which is unlikely to have the same incremental floor semantics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent to the next action ('Fetch any with get_transcript'), and covers edge cases an agent would otherwise misread: episodes without transcripts are omitted, newly followed shows can return empty until the first hourly poll, and the tool itself is free. When-to-use and what-to-do-next are both stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_podcastsSearch podcastsAInspect

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-catalog. Does not consume credits.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesFree text (e.g. 'huberman sleep') or a pasted episode URL.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the returned fields (id, title, podcast, podcast_id, date) and the notable cost trait 'Does not consume credits.' It omits pagination/result-limit behavior and any auth expectations, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: capability first, return shape second, follow-up routing third. No filler and no repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter search tool with no output schema, the description supplies the return fields and the downstream routing an agent needs. The remaining gap is result-count/pagination behavior, a minor omission given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and there is only one parameter, so the schema already documents the accepted free text and URL forms. The description's mention of 'Spotify, YouTube, etc.' adds only marginal color beyond the schema's own example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Search published podcast episodes') and adds a second input mode (pasted episode URL), which cleanly separates it from siblings like list_episodes and list_new_episodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent onward: 'Use the id with get_transcript, or the podcast_id with list_episodes to get the show's whole back-catalog.' It names the alternatives and the condition that selects each, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unfollow_podcastStop following a showAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
podcast_idYesShow id, from list_following or search_podcasts.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral burden. It discloses key traits: the effect (leaves the followed list), the persistence ('later fetches do not re-add it'), the reversal tool, the parameter provenance, and the cost (no credits consumed). This is strong disclosure. A minor gap is it doesn't state whether existing downloads or history are affected, or what the response returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A tight, front-loaded paragraph with no filler. Every clause (effect, persistence, inverse, source, cost) earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter mutation with no annotations or output schema, the description covers effect, persistence, inverse, source, and cost. It is nearly complete, missing only the return/value behavior, which is minor given the schema handles the input and no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents the podcast_id with its source. The description reinforces this by naming list_following as the source, but adds no syntax or format detail beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('Mute a show') and distinguishes it from its sibling by naming the inverse operation ('follow_podcast reverses it'). An agent can immediately tell this is the unfollow operation and how it relates to other tools in the family.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly directs the agent on the parameter source ('Pass a podcast_id from list_following') and names the reversing tool. The when-to-use context is clear and the tool's relationship to its inverse is documented.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updates
    • First observedfollow_podcast
    • First observedget_balance
    • First observedget_transcript
    • First observedlist_episodes
    • First observedlist_following
    • First observedlist_new_episodes
    • First observedsearch_podcasts
    • First observedunfollow_podcast

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Fetch podcast transcripts as clean Markdown with real speaker names via the Spoken API. Tools: search_podcasts, get_transcript, get_balance.
    3
    388 npm
    5
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Hosted Claude connector that turns the podcasts you already follow into a searchable, askable knowledge source. Ask what a guest said and get the answer back with the exact quote and timestamp.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.