YouTube Transcript MCP Server
This server allows you to retrieve transcripts from YouTube videos.
Fetch Transcripts: Get the text transcript by providing a YouTube video URL
Specify Language: Optionally request transcripts in different languages (defaults to English)
Proxy Support: Bypass IP restrictions or access blocks using proxy servers
Integration: Can be integrated with Goose CLI, Goose Desktop, and Claude Desktop
Retrieves transcripts from YouTube videos, allowing users to fetch transcripts in different languages from specified YouTube video URLs
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@YouTube Transcript MCP Serverget transcript for https://youtu.be/dQw4w9WgXcQ"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
YouTube Transcript MCP Server
This MCP server retrieves transcripts for given YouTube video URLs.
Tools
This MCP server provides the following tools:
get_transcript
Fetches the transcript of a specified YouTube video.
Parameters
url (string): The full URL of the YouTube video. This field is required.
lang (string, optional): The desired language for the transcript. Defaults to
enif not specified.next_cursor (string, optional): Cursor to retrieve the next page of the transcript.
get_timed_transcript
Fetches the transcript of a specified YouTube video with timestamps.
Parameters
url (string): The full URL of the YouTube video. This field is required.
lang (string, optional): The desired language for the transcript. Defaults to
enif not specified.next_cursor (string, optional): Cursor to retrieve the next page of the transcript.
get_video_info
Fetches the metadata of a specified YouTube video.
Parameters
url (string): The full URL of the YouTube video. This field is required.
get_available_languages
Retrieves the available languages for the video.
Parameters
url (string): The full URL of the YouTube video. This field is required.
Related MCP server: YouTube Transcript Server
Installation
You'll needuv installed on your system to use uvx command.
For goose
Please refer to this tutorial for detailed installation instructions: YouTube Transcript Extension.
For Claude
Download the latest MCP bundle mcp-youtube-transcript.mcpb from
the Releases page,
then open the downloaded .mcpb file or drag it into the Claude Desktop's Settings window.
You can also manually configure this server for Claude Desktop.
Edit the claude_desktop_config.json file by adding the following entry under
mcpServers:
{
"mcpServers": {
"youtube-transcript": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/jkawamoto/mcp-youtube-transcript",
"mcp-youtube-transcript"
]
}
}
}After editing, restart the application.
For more information, see: Connect to local MCP servers - Model Context Protocol..
For LM Studio
To configure this server for LM Studio, click the button below.
Using Docker
A Docker image for this server is available on Docker Hub. Please refer to the Docker Hub page for detailed usage instructions and documentation.
Response Pagination
When retrieving transcripts for longer videos, the content may exceed the token size limits of the LLM.
To avoid this issue, this server splits transcripts that exceed 50,000 characters.
If a transcript is split, the response will include a next_cursor.
To retrieve the next part, include this next_cursor value in your request.
The token size limits vary depending on the LLM and language you are using.
If you need to split responses into smaller chunks,
you can adjust this using the --response-limit command line argument.
For example, the configuration below splits responses to contain no more than 15,000 characters each:
{
"mcpServers": {
"youtube-transcript": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/jkawamoto/mcp-youtube-transcript",
"mcp-youtube-transcript",
"--response-limit",
"15000"
]
}
}
}Using Proxy Servers
In environments where access to YouTube is restricted, you can use proxy servers.
When using Webshare, set the username and password for the Residential Proxy using either
the environment variables WEBSHARE_PROXY_USERNAME and WEBSHARE_PROXY_PASSWORD,
or the command line arguments --webshare-proxy-username and --webshare-proxy-password.
When using other proxy servers, set the proxy server URL using either the environment variables HTTP_PROXY or
HTTPS_PROXY, or the command line arguments --http-proxy or --https-proxy.
For more details, please visit: Working around IP bans - YouTube Transcript API.
License
This application is licensed under the MIT License. See the LICENSE file for more details.
Available Tools
4 toolsget_available_languagesA
Retrieves the available languages for the video.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the YouTube video |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It correctly implies a read-only operation, but does not explicitly state that it is non-destructive, has no side effects, or any rate limits. The minimal description is adequate but lacks depth.
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 a single, concise sentence with no unnecessary words. It front-loads the purpose and is appropriately sized for a simple retrieval tool.
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 (documenting return values), the description is largely sufficient. However, it could briefly mention that the result is typically used to select a language for transcript retrieval, linking it to sibling tools. Otherwise, it is complete for a straightforward tool.
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 schema already documents the 'url' parameter. The description adds no additional semantics beyond what the schema provides, merely repeating that it is for a video. This meets the baseline expectation of high schema coverage.
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 action ('retrieves') and the resource ('available languages for the video'). It effectively distinguishes from sibling tools like get_timed_transcript and get_transcript, which deal with transcript content rather than language options.
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 no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, such as needing to call this before selecting a language for transcripts, or any comparison with sibling tools. This leaves an AI agent without context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_timed_transcriptA
Retrieves the transcript of a YouTube video with timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the YouTube video | |
| lang | No | The preferred language for the transcript | en |
| next_cursor | No | Cursor to retrieve the next page of the transcript |
Output Schema
| Name | Required | Description |
|---|---|---|
| title | Yes | Title of the video |
| snippets | Yes | Transcript snippets of the video |
| next_cursor | No | Cursor to retrieve the next page of the transcript |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description does not disclose behavioral traits such as pagination (despite the next_cursor parameter), rate limits, or authentication requirements. The basic retrieval purpose is clear, but critical context for the agent is missing.
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?
A single 7-word sentence that is perfectly concise and front-loaded with the essential action and distinguishing feature.
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 presence of an output schema, the description is minimally adequate. However, it lacks context about pagination, language fallback, and error handling, which are relevant for a tool with three parameters and a cursor.
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%, and the description adds no extra meaning beyond what the schema already provides for each parameter. Baseline score of 3 applies.
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 'retrieves' and resource 'transcript of a YouTube video with timestamps', distinguishing it from the sibling 'get_transcript' which presumably lacks timestamps.
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?
No explicit guidance on when to use this tool versus alternatives like 'get_transcript' or 'get_available_languages'. Purpose clarity provides implicit distinction but no direct recommendation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transcriptC
Retrieves the transcript of a YouTube video.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the YouTube video | |
| lang | No | The preferred language for the transcript | en |
| next_cursor | No | Cursor to retrieve the next page of the transcript |
Output Schema
| Name | Required | Description |
|---|---|---|
| title | Yes | Title of the video |
| transcript | Yes | Transcript of the video |
| next_cursor | No | Cursor to retrieve the next page of the transcript |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description should carry the burden. It says 'retrieves' but does not disclose pagination (next_cursor parameter), language handling default, or output format. The schema hints at pagination, but the description omits this behavioral trait.
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 a single sentence, very concise and to the point. However, it may be too terse given the complexity (pagination, language option). Still, it earns its place with 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?
Given that an output schema exists (mentioned in context signals) and input schema covers all parameters, the description covers the core purpose. However, it lacks details on pagination behavior, language fallback, and comparison with siblings, leaving some gaps for a complete understanding.
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%, and the descriptions for url, lang, and next_cursor are already informative. The tool description adds no additional semantic value 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 the tool retrieves a YouTube video transcript, but lacks differentiation from sibling tools like get_timed_transcript or get_available_languages. The verb 'retrieves' and resource 'transcript' are specific, but without context on what format (plain vs timed) or scope, it's not fully distinguished.
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?
No guidance is provided on when to use this tool versus siblings. For example, get_timed_transcript might return timestamps, while this one might return plain text. The agent has no criteria to choose among them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_video_infoC
Retrieves the video information.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the YouTube video |
Output Schema
| Name | Required | Description |
|---|---|---|
| title | Yes | Title of the video |
| duration | Yes | Duration of the video |
| uploader | Yes | Uploader of the video |
| description | Yes | Description of the video |
| upload_date | Yes | Upload date of the video |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It only says 'retrieves' without confirming read-only nature, side effects, or any constraints.
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 a single short sentence, which is minimal but does not provide enough detail to be useful; it sacrifices informativeness for brevity.
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 presence of an output schema (not shown) and sibling tools, the description is adequate but could specify the scope of 'video information' and how it relates to the transcript-focused siblings.
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% for the sole parameter 'url', and the description adds no extra meaning beyond what the schema already provides.
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 action (retrieves) and resource (video information), but it does not specify what type of information (e.g., metadata, statistics) nor differentiate from sibling tools focused on 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?
No guidance on when to use this tool versus siblings like get_transcript or get_available_languages. No context on prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools are distinct: get_available_languages and get_video_info have clear purposes. get_transcript and get_timed_transcript overlap but differ by timestamps, creating slight ambiguity.
All tools follow a consistent 'get_' prefix with descriptive nouns in snake_case, making the pattern predictable.
Four tools cover core operations (transcript, timed transcript, languages, video info) without excess or deficiency for a transcript-focused server.
The tool set covers essential transcript retrieval and video information. Missing features like search or playlist support are outside the stated domain, so completeness is high but not maximal.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that gives any LLM or agent clean YouTube transcripts on demand: a single video, a whole channel, or a playlist, plus AI cleanup of auto-generated captions. API-key auth, credit-based, same backend as the public v1 API. Get a free API key with 25 free credits at youtubetranscriptdownload.com/account.
MCP server for RiverScript, an AI transcription platform - fetches transcripts shared via a link.
Fetch transcripts, subtitles, chapters, metadata and frames from YouTube and 10+ video platforms
Fetch the full transcript of any YouTube video as clean text. No API key, no signup.
Related MCP Servers
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables retrieval of transcripts from YouTube videos. This server provides direct access to video captions and subtitles through a simple interface.1797590MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables retrieval of transcripts from YouTube videos with language-specific support.17971MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables retrieval of transcripts from YouTube videos. This server provides direct access to video transcripts and subtitles through a simple interface, making it ideal for content analysis and processing.146236MIT
- AlicenseBqualityDmaintenanceAn MCP server designed to fetch transcripts for YouTube videos. It enables AI tools to access video text content for tasks like summarization, analysis, and key takeaway extraction.173MIT
Appeared in Searches
- Methods for Searching and Parsing Online Documentation
- A platform for streaming and sharing videos
- Guidance for writing a conclusion for a long text
- A server for finding research papers, extracting content, and retrieving relevant repository codes
- A tool or service that assists in real-time information search
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jkawamoto/mcp-youtube-transcript'
If you have feedback or need assistance with the MCP directory API, please join our Discord server