Skip to main content
Glama

transcribe_url

Ingest and transcribe an EXTERNAL / arbitrary audio URL — a URL the user pasted, or audio not reachable through the index. Creates a STANDALONE episode row. If the episode is already in the library (it has an episode_id), prefer start_transcription(episode_id) instead — it inherits the episode's existing show, artwork, and feed linkage automatically. Consumes 1 transcription credit, or one unit of subscription quota; the credit is refunded automatically if transcription fails. Pass feed_id / podcast_name when you already know the parent show (e.g. from search_podcasts or list_feed_episodes) so the episode lands under its real show instead of appearing as unidentified "External audio". Returns the new episode_id. Transcription is asynchronous on the fallback path — poll get_episode_details until transcription_status is "completed".

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYesEpisode title — shown in the user's library
feed_idNoOptional: local podcasts.id / PodcastIndex feed id of the parent show, if known. Looked up only — never creates a show.
languageNoBCP-47 hint (e.g. "en", "he"). Auto-detect if omitted.
audio_urlYesDirect audio URL (mp3, m4a, or platform URL)
podcast_idNoExisting parent podcast_id, if any
podcast_nameNoOptional: exact parent show title, if known and feed_id is unavailable. Matched only when it resolves to EXACTLY ONE existing show.

TDQS

A4.9/5.0
Behavior5/5

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

Despite minimal annotations (readOnlyHint=false, destructiveHint=false), the description discloses key side effects: it creates a standalone episode row, consumes one credit/unit with an automatic refund on failure, returns episode_id, and notes asynchronous behavior with a polling instruction. This goes well beyond the annotations.

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?

The description is dense but every sentence earns its place: purpose, alternatives, cost/refund, association tips, return value, and async polling. It is front-loaded with the core purpose and structured logically, with no 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?

For a tool with 6 parameters, no output schema, and complex behavior (credit cost, async fallback, association with shows), the description covers all critical aspects: return type, polling method, and side effects. It is sufficient for an agent to select and invoke correctly.

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?

Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining why feed_id/podcast_name matter (to avoid 'External audio' and land under a real show) and references search tools for lookup. This enhances understanding beyond the schema's field-level descriptions.

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 clearly states the tool ingests and transcribes an external/arbitrary audio URL, using specific verbs and distinguishing from start_transcription (which handles existing episodes). It explicitly contrasts with the alternative for indexing-ready content, making its purpose unmistakable.

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 provides explicit guidance: use this for external URLs not in the index, but prefer start_transcription when an episode_id exists. It also advises passing feed_id/podcast_name from search tools to associate with a known show, giving concrete when-to-use context.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.9/5.0
Disambiguation4/5

Tools are largely distinct, covering separate actions (search, get, list, generate, transcribe, save). The main potential confusion is between list_episodes and list_feed_episodes, but descriptions clearly separate local from external.

Naming Consistency5/5

All tools follow consistent verb_noun snake_case patterns (get_, list_, search_, generate_, transcribe_, save/remove), with no mixed conventions or unexpected styles.

Tool Count3/5

25 tools is at the high end for a server of this scope. The broad domain justifies many functions, but the count feels heavy and some tools could be consolidated without losing clarity.

Completeness4/5

Discovery, ingestion, transcription, lesson generation, and user account management are all well covered. Minor gaps exist, such as no way to delete or update lessons beyond save/remove.