ytb-tools
Provides tools to search YouTube videos, fetch transcripts with language selection, save summaries, and build a local library of transcripts and summaries.
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., "@ytb-toolsSearch YouTube for the best intro to Rust, then summarize the top result."
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.
π¬ ytb-tools
Search YouTube, pull transcripts, and get AI summaries β right inside Claude and any other MCP client.
ytb-tools is a Model Context Protocol server that turns YouTube into something your AI assistant can actually work with. Ask it to find videos, grab a transcript, or summarize a talk β it just works.
β¨ Zero setup. No API keys. No Google account. No manual installs. ytb-tools provisions everything it needs on its own.
What you can do
π Search YouTube β "find me the top React 19 talks" β ranked results with titles, channels, durations, and views.
π Get transcripts β full transcripts in the video's language (or any available caption track), saved to a tidy local library.
π§ Summarize videos β TL;DR, structured notes, or a deep dive β written by Claude, in the video's own language.
πΎ Builds your library β every transcript and summary is auto-saved as clean files you can browse, search, and keep.
Related MCP server: youtube-mcp
Quick start
Any MCP client (Claude Desktop, Cursor, Cline, β¦)
Add this to your client's MCP config β that's the whole install:
{
"mcpServers": {
"ytb-tools": {
"command": "npx",
"args": ["-y", "ytb-tools"]
}
}
}Then just ask:
"Search YouTube for the best intro to Rust, then summarize the top result."
Claude Code (plugin)
Install it as a plugin to get the slash commands. Run these inside Claude Code:
/plugin marketplace add aliildan/ytb-tools
/plugin install ytb-tools@ytb-toolsThe first command registers this repo as a marketplace; the second installs the plugin (which pulls in the MCP server via npx and adds the slash commands). Prefer a menu? Just run /plugin.
You then get three commands:
Command | What it does |
| List ranked search results |
| Fetch a transcript |
| Summarize at the depth you want |
/yt-summary automatically picks the right model for the job β quick β Haiku, standard β Sonnet, detailed β Opus β and writes the summary in the video's language.
Updating the plugin
When a new version ships, refresh the marketplace catalog and update:
/plugin marketplace update ytb-tools
/plugin update ytb-toolsUninstalling
/plugin uninstall ytb-tools@ytb-toolsScripting it? The same actions work non-interactively from your shell:
claude plugin marketplace add aliildan/ytb-tools claude plugin install ytb-tools@ytb-tools
Research a whole topic at once
Installed in Claude Code, the yt-research skill chains everything together. Just ask in plain language:
"Research the top 30 YouTube videos on 'rust async' and give me a digest."
It searches, pulls each transcript, summarizes each (defaulting to quick/Haiku to keep big batches cheap), and produces a combined digest β recurring themes, a ranked "start here" shortlist, and any videos it had to skip. For large runs it confirms with you first and processes in batches with progress updates.
Your library
Everything is saved automatically (default ~/ytb-tools/):
~/ytb-tools/
βββ transcripts/
β βββ dQw4w9WgXcQ.en.json # timestamped segments
β βββ dQw4w9WgXcQ.en.txt # plain text
βββ summaries/
βββ dQw4w9WgXcQ.standard.md # Markdown with title, url, model, dateWant them somewhere else? Set YT_OUTPUT_DIR.
The tools
Tool | Does |
| Search YouTube and return ranked video results |
| Extract a transcript (with language selection), auto-saved |
| Save a generated summary to your library |
Configuration
All optional:
Variable | Purpose | Default |
| Where transcripts & summaries are saved |
|
| Cache location | OS cache dir |
| Use an existing yt-dlp instead of the bundled one | auto |
How it works (the short version)
Search runs entirely in-process via youtubei.js β no key, no quotas. Transcripts are powered by yt-dlp, which ytb-tools downloads and manages for you automatically the first time you need it (it reuses the Node runtime that's already running β no Python, no Deno). Summaries are written by your assistant's own model, so there's no extra API bill.
License
MIT Β© aliildan
Available Tools
3 toolsyoutube_get_transcriptB
Fetch a video's transcript via yt-dlp (cache-aware) and auto-save it to the library. May trigger a one-time yt-dlp download on first use.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | BCP-47 language code, e.g. en, tr | |
| fresh | No | Bypass the transcript cache | |
| video | Yes | YouTube URL or 11-character video ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses caching ('cache-aware'), auto-saving to the library, and the side effect of a potential yt-dlp download. This provides useful behavioral context beyond the schema.
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?
Two sentences efficiently convey the main action, key features (cache-aware, auto-save), and an important side effect. No fluff; 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?
The tool has no output schema, so the description should explain the return format. It does not. Additionally, the concept of 'library' is undefined, and error scenarios (e.g., missing transcript) are not addressed. Given the simplicity of the tool, this is a significant gap.
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 does not add additional meaning to individual parameters beyond what the schema already provides (e.g., video is URL/ID, lang is BCP-47, fresh bypasses cache).
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 it fetches a video's transcript using yt-dlp, with caching and auto-saving. It distinguishes from sibling tools like youtube_search and youtube_save_summary, though not explicitly, but the verb 'fetch' and resource 'transcript' make it distinct.
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 mentions a potential one-time download on first use, hinting at a performance consideration, but provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_save_summaryA
Persist a host-generated summary to the library as Markdown with frontmatter.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Video URL | |
| model | No | Model that produced the summary | |
| style | No | standard | |
| title | No | Video title | |
| summary | Yes | The summary text produced by the host model | |
| videoId | Yes | 11-character video ID | |
| language | No | Summary language (BCP-47) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the output format but does not disclose behavioral traits like overwrite behavior, idempotency, authentication requirements, or error handling. This is insufficient for safe agent invocation.
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?
Single sentence of 8 words, front-loading the verb and resource. Every word is meaningful, no fluff. Perfectly concise.
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?
Despite moderate complexity (7 params, no output schema), the description is very short. It lacks information on return values, success/failure indications, idempotency, and preconditions. An agent would need additional heuristics to use this safely.
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 high (86%), so baseline is 3. The description adds context that the summary is 'host-generated' and stored as Markdown with frontmatter, but does not elaborate on individual parameters beyond what the schema 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 verb 'Persist' and the resource 'summary to the library', and specifies the format 'Markdown with frontmatter'. It distinguishes well from siblings 'youtube_get_transcript' and 'youtube_search', which are retrieval tools.
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 implies usage for saving a host-generated summary, and the sibling tools are obviously different. However, it lacks explicit guidance on when to use or not use this tool, such as prerequisites (e.g., summary must be generated by a host).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_searchB
Search YouTube and return ranked video results.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Result type | video |
| limit | No | Maximum results (paginated) | |
| query | Yes | Search query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden. It only states the action and result type but omits critical behavioral traits such as whether results are paginated, required authentication, or the potential for side effects. The default behavior (e.g., always returns videos unless type is set) is not explained.
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, front-loaded sentence that efficiently communicates the core purpose. It is not verbose and contains no extraneous information, though it could be slightly more precise given the tool's actual capabilities.
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 tool has 3 parameters and no output schema. The description does not explain what the returned 'ranked video results' contain (e.g., IDs, titles, thumbnails) or how ranking works. Given the absence of annotations or output schema, the description is insufficient for an agent to fully understand the tool's behavior and output.
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 covers all three parameters (query, type, limit) with descriptions, defaults, and constraints, so schema_description_coverage is 100%. The description adds no extra meaning beyond what the schema provides, meeting the baseline expectation.
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 'Search' and resource 'YouTube', and mentions 'ranked video results', making the core purpose apparent. However, it is slightly misleading because the type parameter allows searching channels and playlists, not just videos. It distinguishes well from sibling tools (get_transcript, save_summary) which have different functions.
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 does not provide explicit when-to-use or when-not-to-use guidance relative to siblings. It gives only a general statement of searching YouTube, leaving usage context implied. No alternatives or exclusions are mentioned.
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.
3 tool updates
v0.1.0- First observed
youtube_get_transcript - First observed
youtube_save_summary - First observed
youtube_search
TDQS
Each tool targets a unique operation: searching for videos, fetching a transcript, or saving a summary. No overlap in purpose.
All tools follow 'youtube_verb_noun' pattern (get_transcript, save_summary, search). The verb is missing in 'search' but is implicit and consistent with the convention.
Three tools is minimal but reasonable for a focused YouTube assistant. It covers core operations without being overwhelming or too sparse.
The set covers search, transcript retrieval, and summary storage, forming a coherent workflow. Minor gaps like video metadata or playlist listing are acceptable given the narrow scope.
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
YouTube transcripts, search, channel/playlist listings and upload tracking for AI agents. No signup.
YouTube transcripts, search, channels, playlists and bulk transcript jobs for AI agents. 14 tools.
Provide token-optimized, structured YouTube data to enhance your LLM applications. Access efficienβ¦
Search YouTube, read video metadata, and fetch transcripts with language preferences
1
Related MCP Servers
- AlicenseAqualityAmaintenanceConnect AI assistants to YouTube: search, transcripts, metadata, and more.191046MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to fetch transcripts, metadata, and download videos/audio from YouTube without API keys.30MIT
- AlicenseAqualityDmaintenanceEnables AI tools to access YouTube content, including transcript extraction, video/channel info, and search.427MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to search, watch, summarize, clip, and extract transcripts from YouTube videos, all without needing an API key or leaving the chat.2750Apache 2.0
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/aliildan/ytb-tools'
If you have feedback or need assistance with the MCP directory API, please join our Discord server