YouTube Transcript & Search MCP Server
Server Details
YouTube transcripts, search, channels, playlists and bulk transcript jobs for AI agents. 14 tools.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- artemchuikin/youtube-mcp
- GitHub Stars
- 0
- Server Listing
- YouTube Transcript & Search MCP Server
Available Tools
14 toolscancel_transcripts_jobCancel batch jobADestructiveIdempotentInspect
Cancel a batch job. Credits are refunded ONLY for videos not started yet — anything already fetched stays in the results and stays paid for. Free.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | id returned by submit_transcripts_job |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and idempotent behavior. The description adds valuable nuance: credits are refunded only for videos not started, and already-fetched content remains paid for and remains in results. It also states calling it is 'Free', which clarifies cost implications beyond the refund note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and efficient: it states the core action first, then the key refund caveat, then the free-to-cancel fact. Every sentence earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive action, the description covers the essential behavioral nuance (refund policy), annotations cover idempotency and destructiveness, and an output schema is already available. The only minor gap is not explicitly describing what happens to the job itself after cancellation, though it is largely inferable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, `job_id`, is fully documented in the JSON schema with its source (`id returned by submit_transcripts_job`). The description adds no additional parameter-level guidance, which is acceptable because schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb-action ('Cancel') and resource ('a batch job'), and ties cancellation to a specific `job_id` from `submit_transcripts_job`. It distinguishes this tool from all sibling read/query tools without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the result of canceling and the credit refund condition, but it does not explicitly state when to use this tool versus alternatives, such as checking job status with get_transcripts_job or allowing the job to continue. The right usage is implied by the action name, not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_creditsCredit balanceARead-onlyInspect
Check the remaining credit balance of the API key. Free. Use it when the user asks how many credits are left, or before submit_transcripts_job to confirm a large batch fits the balance (the batch charges 1 credit per video on submit).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| credits | No | |
| metered | No | |
| user_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this read-only, and the description adds that it is 'Free,' which is a useful operational trait beyond the schema. It also clarifies the billing behavior of the related submit_transcripts_job tool, adding context that helps the agent reason about the overall workflow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the core purpose, followed by a single useful usage directive. Every sentence adds value; there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters, an output schema present, and clear use-case guidance including a cancellation-around submit_transcripts_job, nothing essential is missing. The description fully equips the agent to select and call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing to describe. Schema coverage is 100% and the description adds no redundant parameter detail, which aligns with the baseline for 0-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description starts with a specific action verb ('Check') and a clear resource ('remaining credit balance of the API key'), making the tool's purpose unambiguous. It is clearly distinct from all sibling tools, none of which concern credit balances.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it: 'when the user asks how many credits are left' and gives a concrete workflow, 'before submit_transcripts_job to confirm a large batch fits the balance.' This is actionable, context-rich routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transcriptGet transcriptARead-onlyInspect
Get the transcript (subtitles) of a YouTube video. Accepts a video id or any YouTube URL. Set video_metadata=true to get the title, channel and duration in the SAME call — do not call get_video_info first, that is a second billed call for data this one already returns. format=text returns plain readable text (default, cheapest to read); format=json returns timed segments with start/duration in seconds; srt/vtt return ready subtitle file bodies and srv3 the raw YouTube XML. Prefer text unless you need timestamps or a file. Costs 1 credit.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Track kind. Omit to prefer a manual track and fall back to auto | |
| lang | No | Language code of the track, e.g. 'en', 'de'. Default 'en'. | |
| video | Yes | YouTube video id or URL | |
| format | No | 'text' = plain text (default), 'json' = timed segments, 'srt'/'vtt' = subtitle file body, 'srv3' = raw YouTube XML (srv3 does not combine with segment) | |
| segment | No | Max characters per segment. Raise it when chunking the transcript for embeddings or retrieval — 500-1500 gives chunks with enough context; lower it for subtitle-sized lines. Left out, an auto-generated track is cut into ~180-character segments and a manual one is returned exactly as its author broke it, so pass this whenever you need one size regardless of which track answers. | |
| video_metadata | No | Include the video's title, channel, duration and views alongside the transcript. Replaces a separate get_video_info call — same one credit either way. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| language | No | |
| metadata | No | |
| video_id | No | |
| transcript | No | format=json: array of {text, start, duration} segments (seconds); text/srt/vtt/srv3: one string in that format |
| available_langs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds meaningful behavior beyond annotations: states the tool costs 1 credit, is a billed call, and describes track/segment defaults and format outputs. The readOnlyHint annotation is consistent with this being a retrieval operation, and the description enriches trust with cost and default behavior details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence is purposeful and front-loaded with the core purpose. It packs format semantics, cost, and sibling-tool routing into a compact, readable description without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema, output schema, and read-only annotations, the description covers all the decision-relevant context: when to use, which format to choose, cost implications, and how to avoid duplicate calls. The agent has enough to invoke correctly without further research.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all parameters with 100% description coverage, so the baseline is strong. The description adds practical selection guidance for format (e.g., 'cheapest to read') and clarifies the billing benefit of video_metadata in one call, going slightly beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: get the transcript of a YouTube video, and clarifies accepted input forms (video id or URL). It distinguishes itself from sibling get_video_info by explicitly noting that metadata is included and a separate call is unnecessary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage routing: 'Prefer text unless you need timestamps or a file' and warns against calling get_video_info first when video_metadata=true. This gives the agent clear decision rules for format and metadata usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transcripts_jobBatch job progressARead-onlyInspect
Check the progress of a batch job: status (queued/running/done/cancelled), how many videos are ready, failed and still pending. Free — polling a job you already paid for costs nothing. Read the transcripts themselves with get_transcripts_results.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | id returned by submit_transcripts_job |
Output Schema
| Name | Required | Description |
|---|---|---|
| done | No | |
| count | No | |
| ready | No | |
| failed | No | |
| status | No | |
| pending | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark this as read-only, and the description adds useful behavioral context: it lists the possible statuses, reports readiness/failure counts, and states that polling is free. This exceeds what annotations alone provide without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: one for purpose/outputs, one for cost behavior, and one for directing to the results tool. Key details are front-loaded and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only progress tool with an output schema present, this is complete. It covers what is checked, what statuses to expect, what counts are returned, the cost implication, and where to go for the actual transcript content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the single parameter job_id as 'id returned by submit_transcripts_job' (100% coverage). The description adds no further parameter-specific semantics, so the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource — 'Check the progress of a batch job' — and enumerates the exact outputs (status, ready, failed, pending), making the tool's purpose unambiguous and distinct from fetching transcripts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly tells the agent when to use this tool (for batch progress polling) and points to the correct alternative for transcript content: 'Read the transcripts themselves with get_transcripts_results.' It does not explicitly contrast with cancel_transcripts_job or get_transcripts_result, but the core usage path is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transcripts_resultOne batch resultARead-onlyInspect
Read ONE video's result out of a batch job by its video id, without paging through get_transcripts_results. 404 means the job does not exist or this video has not finished yet — check get_transcripts_job before concluding anything. Free.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | id returned by submit_transcripts_job | |
| video_id | Yes | one of the video ids the job was submitted with |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| video_id | No | |
| transcript | No | format=json: array of {text, start, duration} segments (seconds); text/srt/vtt/srv3: one string in that format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, and the description adds useful behavioral context beyond that: it documents the specific 404 meaning and directs the agent to a validation step. This goes beyond the annotation baseline without contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, information-dense sentences. The key use case is front-loaded, the alternative behavior is included, and the error-handling note and free status are added without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because an output schema exists, the description doesn't need to explain return values. It covers the read operation, the matching sibling, error semantics, and the fallback verification step. For a simple two-parameter read tool, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema. The description adds minimal extra meaning beyond mentioning the video id and job id context, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the operation: reading one video's result from a batch job using its video id. It also directly contrasts with the sibling tool get_transcripts_results, making the distinction clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It tells the agent when to use this tool (single video result) versus paging through get_transcripts_results, and gives an explicit troubleshooting path when a 404 occurs: check get_transcripts_job before concluding.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transcripts_resultsBatch job resultsARead-onlyInspect
Read finished transcripts from a batch job, in the order submitted. Results appear as they are fetched, so this can be called before the job is done. Each entry is exactly what get_transcript returns for that video, plus its status. Page with next_page_token. Free.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Entries per page, 1-500 (default 100) | |
| job_id | Yes | id returned by submit_transcripts_job | |
| next_page_token | No | Token from a previous result |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| results | No | |
| has_more | No | |
| next_page_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description reveals important non-blocking behavior ('Results appear as they are fetched'), the exact per-entry return shape ('exactly what get_transcript returns ... plus its status'), and cost ('Free'). It does not contradict any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact with four front-loaded sentences, each carrying distinct useful information: purpose/ordering, partial-result behavior, entry format, and cost. There is no filler, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paginated read tool with a rich output schema and readOnlyHint, the description covers order, partial results, content shape, cost, pagination, and the timing. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since the input schema already provides 100% description coverage for all three parameters, the description does not need to add parameter details. It only mentions next_page_token in a pagination example, adding no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read') and a clear resource ('finished transcripts from a batch job') plus ordering ('in the order submitted'), making the primary purpose unambiguous. However, it does not explicitly differentiate itself from the similarly named sibling get_transcripts_result, which could confuse an agent choosing between the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: it can be called before the job completes and pagination is done with next_page_token. It does not mention any alternatives or when not to use the tool, so it falls short of explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_video_infoGet video infoARead-onlyInspect
Get metadata for one YouTube video (title, channel, duration, views, thumbnails) plus the list of available transcript languages, WITHOUT downloading the subtitles. Use it only when the transcript itself is not wanted. If you are going to fetch the transcript anyway, call get_transcript with video_metadata=true instead — it returns both for one credit, where these are two separate calls and two credits.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | YouTube video id or URL |
Output Schema
| Name | Required | Description |
|---|---|---|
| title | No | |
| available_langs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the read-only nature is covered. The description adds value by clarifying that no subtitle content is downloaded and by exposing a credit-efficiency nuance: get_transcript with metadata returns both for one credit, whereas this tool and get_transcript would be two calls. This is genuinely useful beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with a strong front-loaded purpose, followed by a quick usage rule and a cost rationale. It is slightly longer than strictly necessary, but every sentence provides distinct value, no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single well-documented parameter and an existing output schema, the description covers everything an agent needs: what is returned, what is excluded, when to use an alternative, and the cost trade-off. Nothing crucial is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the id parameter is documented as 'YouTube video id or URL'. The description implies it targets a single video and includes fields like title and views, but it does not add meaning beyond the schema. The baseline of 3 is appropriate given the schema is already complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('get metadata' for one YouTube video), enumerates the exact fields returned (title, channel, duration, views, thumbnails), and adds a constraint ('WITHOUT downloading the subtitles'). It is unmistakably distinct from the sibling get_transcript, which fetches the subtitles themselves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit condition: 'Use it only when the transcript itself is not wanted.' It also names the alternative (get_transcript with video_metadata=true) and explains why that route is better when the transcript is needed anyway. This is model guidance on when to choose this tool over a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
latest_channel_videosLatest channel videosARead-onlyInspect
Get the ~15 most recent videos of a channel from its RSS feed. Fastest and cheapest way to check what a channel published recently.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | @handle, channel name, UC... channel id or channel URL |
Output Schema
| Name | Required | Description |
|---|---|---|
| videos | No | |
| channel | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark this as readOnlyHint and openWorldHint, so the main behavioral risks are already covered. The description adds genuinely useful context beyond the annotations: the approximate count of ~15, the RSS feed source, and the speed/cost positioning. These explain important constraints (approximate count, feed-based freshness) that an agent would otherwise not know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence front-loads the core action and resource; the second adds distinct positioning relative to alternatives. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only tool with a rich output schema, the description combined with the schema and annotations is complete. It tells the agent what it does, what it returns approximately, how to invoke it, and why it is the right choice for a quick recent-videos check. Nothing an agent needs to call it successfully is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single 'name' parameter is already well documented with accepted formats (@handle, channel name, UC... ID, or URL). The description reinforces the parameter's role ('of a channel from its RSS feed') but doesn't add meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Get'), a specific resource ('the ~15 most recent videos of a channel'), and a source ('from its RSS feed'). It also distinguishes itself from siblings by describing how it differs — 'fastest and cheapest way to check what a channel published recently' — which gives a unique identity among the list/search variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context: use this when you need a fast, cheap check of a channel's recent uploads. It implies contrast with heavier sibling tools like list_channel_videos or search_channel_videos, but it does not explicitly state when to avoid this tool or name alternatives, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_channel_videosList channel videosARead-onlyInspect
List videos from a channel's Videos tab, newest first. Accepts an @handle, a UC... channel id or a channel URL. ids_only=true returns just video ids (up to 500 per page) — use it when you only need ids to fetch transcripts.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | @handle, channel name, UC... channel id or channel URL (required unless paginating) | |
| limit | No | Page size. Up to 100, or up to 500 with ids_only | |
| ids_only | No | Return video_ids[] instead of full video objects | |
| next_page_token | No | Token from a previous result |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| videos | No | |
| channel | No | |
| has_more | No | |
| video_ids | No | |
| next_page_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint and openWorldHint already covering the safety profile, the description adds meaningful behavior: newest-first ordering, accepted input formats, and up-to-500-per-page behavior for ids_only. It would only need more detail if return values or errors were unexplained, and an output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose first, then accepted identifiers, then the ids_only optimization and when to use it. Every sentence earns its place, and there is no unnecessary repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with a complete input schema and an output schema, the description covers ordering, identifier types, pagination behavior, and the key ids_only use case. The only notable gap is explicit routing between the closely named sibling tools, which is picked up in purpose and usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by explaining when ids_only should be used, the practical reason for it (fetching transcripts), and the fact that limit behaves differently in ids_only mode. It complements the schema instead of repeating it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact action and resource — list videos from a channel's Videos tab, newest first — and specifies accepted identifier forms (@handle, UC id, URL). It is distinct from playlist and search siblings, but it does not explicitly address how it differs from the closest sibling, latest_channel_videos.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear, actionable guidance for ids_only mode: use it when you only need IDs to fetch transcripts. It does not say when to choose this tool instead of latest_channel_videos or search_channel_videos, so exclusion guidance between siblings is mostly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_playlist_videosList playlist videosARead-onlyInspect
List videos of a playlist in playlist order. Accepts a PL... playlist id or a URL with list=. ids_only=true returns just video ids (up to 500 per page).
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | PL... playlist id or URL (required unless paginating) | |
| limit | No | Page size. Up to 100, or up to 500 with ids_only | |
| ids_only | No | Return video_ids[] instead of full video objects | |
| next_page_token | No | Token from a previous result |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| videos | No | |
| has_more | No | |
| playlist | No | |
| video_ids | No | |
| next_page_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already provide readOnlyHint=true, and the description complements this by being a non-mutating list operation. It adds genuinely useful behavioral details: ordering, accepted playlist id forms, the ids_only result mode, and the rough per-page limit. This goes beyond what annotations alone communicate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with no filler: the first gives the core purpose and ordering, the second explains accepted id formats, and the third covers the ids_only mode. The most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and all parameters are documented within the input schema, the description covers the key behavior an agent needs before calling. It does not explain pagination flow in the sense of 'pass next_page_token for subsequent pages,' but the schema parameter already supplies that detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description mostly restates what the input schema already documents (PL... id or URL with list=, ids_only returns ids), and the 'up to 500 per page' detail is also present in the schema's limit parameter. It adds only marginal clarifications.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a specific resource ('videos of a playlist') and adds the important semantic 'in playlist order.' This clearly distinguishes it from a generic video tool, though it does not explicitly distinguish it from sibling tools such as search_playlist_videos or list_channel_videos.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended situation is implied: use it when you want a playlist's full set of videos in playlist order rather than a search. However, it never mentions alternatives or says 'for search, use search_playlist_videos,' so the agent must infer when this is the correct choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_channel_videosSearch within a channelARead-onlyInspect
Search videos inside one channel using YouTube's native relevance search. Results are ranked by relevance, so a video whose title lacks the query word is normal.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Query to search within the channel | |
| name | No | @handle, channel name, UC... channel id or channel URL | |
| limit | No | Results per page, 1-100 (default 30) | |
| next_page_token | No | Token from a previous result |
Output Schema
| Name | Required | Description |
|---|---|---|
| videos | No | |
| channel | No | |
| has_more | No | |
| next_page_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description usefully discloses that results are ranked by relevance, and that a video lacking the query term in its title is normal — a non-obvious behavioral trait. The readOnlyHint annotation already communicates safety, and the description adds meaning beyond it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, focused, and front-loaded with the core purpose. Every sentence contributes useful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema available and all parameters documented, the description covers the key behavior and quirk sufficiently. It could mention pagination specifically, but next_page_token and the output schema already provide that context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the schema already explains all parameters. The description adds semantic nuance about relevance ranking for the query parameter, which is helpful but not necessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search') and resource ('videos inside one channel'), clearly distinguishing it from broader search tools like search_youtube or list-style tools. The mention of YouTube's native relevance search adds further precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context that this tool is for searching within a single channel, which implicitly differentiates it from playlist or global YouTube search. It does not explicitly name alternatives or exclusions, but the channel-scoped framing is strong enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_playlist_videosSearch within a playlistARead-onlyInspect
Find videos inside a playlist by a substring of the title (case-insensitive). YouTube has no native playlist search, so this scans up to 500 playlist items. truncated=true means there may be more matches beyond the scanned window.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Substring to match in the video title | |
| id | Yes | PL... playlist id or URL | |
| limit | No | Max matches to return, 1-100 (default 30) |
Output Schema
| Name | Required | Description |
|---|---|---|
| truncated | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds meaningful behavior beyond the readOnlyHint annotation: case-insensitive matching, a fixed 500-item scan window, and the meaning of truncated=true. This sets accurate expectations for an agent, including the possibility of missing matches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences with no filler. The core action is front-loaded, and the truncation caveat is stated in exactly the right amount of detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and read-only annotations provided, the description covers the key remaining facts an agent needs: substring semantics, playlist limit, and truncation behavior. Nothing important is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes all parameters, so the baseline is 3. The description adds extra value by specifying case-insensitive matching and explaining the scan limit, which influences the output and interpretation of matches.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: find videos inside a playlist by substring of the title, case-insensitively. This clearly distinguishes it from siblings like list_playlist_videos and search_youtube.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Establishes the context clearly: use it for substring search within a playlist, and explains that YouTube provides no native playlist search. It could go further by naming explicit alternatives, but the implied usage is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_youtubeSearch YouTubeARead-onlyInspect
Search YouTube for videos or channels. Paginate by passing next_page_token from the previous result. has_more tells you whether another page exists.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Search query (required unless paginating) | |
| type | No | Default 'video' | |
| limit | No | Results per page, 1-50 (default 20) | |
| next_page_token | No | Token from a previous result |
Output Schema
| Name | Required | Description |
|---|---|---|
| has_more | No | |
| next_page_token | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and open-world behavior, so the safety profile is covered. The description adds meaningful behavioral detail about pagination, telling the agent to pass next_page_token and to use has_more to detect another page. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first states the core action, and the second delivers essential pagination behavior with zero filler or repetitive phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a read-only, paginated search tool with a full output schema. The main gap is that it does not contextualize the tool relative to sibling search tools, which creates ambiguity for an agent choosing among search_youtube, search_channel_videos, and search_playlist_videos.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema alone already explains q, type, limit, and next_page_token. The description adds some context on how next_page_token and has_more work together for pagination, but it does not add significant meaning beyond what the schema describes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Search YouTube') and resource scope ('videos or channels'). However, it does not explicitly differentiate itself from sibling tools that also have 'search' in their names, such as search_channel_videos or search_playlist_videos, so it stops short of perfect clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how pagination works but gives no guidance on when to use this general YouTube search versus the more specific sibling search tools. It never mentions alternatives, exclusions, or the nuance that q may be required unless paginating.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_transcripts_jobSubmit transcripts batchAInspect
Queue transcripts for MANY videos at once (up to 4000) and get a job_id back immediately — the work continues in the background. Use this instead of calling get_transcript in a loop for more than a handful of videos. Feed it video ids from list_channel_videos or list_playlist_videos (ids_only=true). Next: poll get_transcripts_job until status is 'done', reading finished transcripts from get_transcripts_results as they land. Costs 1 credit per video, charged on submit; duplicates are removed first. Requires a user key (sk_...).
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Track kind. Omit to prefer a manual track and fall back to auto | |
| lang | No | Language code for every video, e.g. 'en'. Default 'en'. | |
| format | No | 'text' = plain text (default), 'json' = timed segments, 'srt'/'vtt' = subtitle file body, 'srv3' = raw YouTube XML (srv3 does not combine with segment) | |
| videos | Yes | Video ids or URLs, up to 4000. Duplicates are collapsed. | |
| segment | No | Max characters per segment, for every video in the job. Raise it to 500-1500 when the transcripts are going into embeddings or retrieval. Left out, an auto-generated track is cut into ~180-character segments and a manual one keeps its author's own lines — so pass this when the whole job has to come back at one size. | |
| video_metadata | No | Include each video's title, channel and duration alongside its transcript. Replaces a get_video_info call per video and costs nothing extra. | |
| idempotency_key | No | Optional. Resubmitting the same list with the same key returns the SAME job instead of opening a second one and charging twice. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| job_id | No | |
| status | No | |
| credits | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key non-obvious behaviors: work continues in background, credits are charged on submit, duplicates are removed, and a user key is required. These details go beyond the annotations and inform the agent about side effects and prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core behavior, and every sentence earns its place. It includes usage, flow, costs, constraints, and credential requirements without redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex asynchronous batch operation, the description covers the input source, output behavior, next steps, pricing, second submit guard, and key requirement. An agent has enough context to select and invoke it correctly without additional reasoning about the workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers all 7 parameters, so the baseline is 3. The description adds valuable context for videos, segment behavior, and cost implications, and it explains why to use the batch submit instead of a loop. It slightly exceeds baseline richness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description says exactly what it does: queues transcripts for many videos at once, returns a job_id immediately, and continues processing in the background. It clearly distinguishes itself from the synchronous get_transcript tool by emphasizing batch submission and asynchronous results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidance is provided: use instead of get_transcript in a loop, feed IDs from list_channel_videos or list_playlist_videos, and poll get_transcripts_job + get_transcripts_results for results. This gives the agent an unambiguous decision path.
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. Dates show when Glama detected each change.
14 tool updates
- First observed
cancel_transcripts_job - First observed
get_credits - First observed
get_transcript - First observed
get_transcripts_job - First observed
get_transcripts_result - First observed
get_transcripts_results - First observed
get_video_info - First observed
latest_channel_videos - First observed
list_channel_videos - First observed
list_playlist_videos - First observed
search_channel_videos - First observed
search_playlist_videos - First observed
search_youtube - First observed
submit_transcripts_job
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
YouTube transcripts, search, channel/playlist listings and upload tracking for AI agents. No signup.
15 media & data tools for AI agents: search, transcribe, subtitles, voiceover, translate & more.
Clean YouTube transcripts for agents: single videos, channels, playlists, plus AI caption cleanup.
💯 The fastest YouTube transcript + YouTube search MCP for AI agents. Try for free.
Related MCP Servers
AlicenseAqualityBmaintenanceEnables AI agents to retrieve YouTube transcripts from individual videos, channels, and search results, supporting multiple output formats such as plain text, SRT, and VTT.3309MIT- AlicenseNot gradedqualityBmaintenanceProvides AI agents with token-optimized access to YouTube data, including video details, transcripts, channel statistics, trending videos, and search.375MIT
- AlicenseBqualityNot gradedmaintenanceYouTube intelligence layer for AI agents. 41 tools across 10 modules ; search, explore, transcripts, comments, visual search, analytics, and more. Zero config.41333-
- FlicenseAqualityCmaintenanceEnables AI agents to fetch, search, and summarize YouTube video transcripts via tools, resources, and prompts.3-
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Most tools target a distinct resource and action: search, list, metadata, transcript, job lifecycle, and credits. The get_transcripts_job / get_transcripts_result / get_transcripts_results trio is easy to blur at first glance, but the descriptions clearly differentiate job status, one result, and paged results.
The set mostly follows a predictable verb_noun pattern: get_, list_, search_, submit_, cancel_. The main deviation is latest_channel_videos, which uses an adjective instead of a verb, and the result/results pair is mildly confusing, but overall naming is coherent and easy to navigate.
14 tools is well within the sweet spot for a server with this scope. Each tool serves a clear niche: video lookup, metadata, single transcripts, batch jobs, and search are all represented without unnecessary or redundant tools.
The server provides full coverage of the transcript and search workflow: search YouTube, list channel/playlist videos, fetch or batch-fetch transcripts, check job progress/credits, and read results. There are no obvious missing operations that would force an agent into a dead end.