Skip to main content
Glama

🎬 ytb-tools

npm version license: MIT

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-tools

The 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

/yt-search <query>

List ranked search results

/yt-transcript <url|id> [lang]

Fetch a transcript

/yt-summary <url|id> [quick|standard|detailed]

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-tools

Uninstalling

/plugin uninstall ytb-tools@ytb-tools

Scripting 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, date

Want them somewhere else? Set YT_OUTPUT_DIR.


The tools

Tool

Does

youtube_search

Search YouTube and return ranked video results

youtube_get_transcript

Extract a transcript (with language selection), auto-saved

youtube_save_summary

Save a generated summary to your library


Configuration

All optional:

Variable

Purpose

Default

YT_OUTPUT_DIR

Where transcripts & summaries are saved

~/ytb-tools

YT_CACHE_DIR

Cache location

OS cache dir

YT_DLP_PATH

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 tools
youtube_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoBCP-47 language code, e.g. en, tr
freshNoBypass the transcript cache
videoYesYouTube URL or 11-character video ID

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoVideo URL
modelNoModel that produced the summary
styleNostandard
titleNoVideo title
summaryYesThe summary text produced by the host model
videoIdYes11-character video ID
languageNoSummary language (BCP-47)

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv0.1.0
    • First observedyoutube_get_transcript
    • First observedyoutube_save_summary
    • First observedyoutube_search

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a unique operation: searching for videos, fetching a transcript, or saving a summary. No overlap in purpose.

Naming Consistency5/5

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.

Tool Count4/5

Three tools is minimal but reasonable for a focused YouTube assistant. It covers core operations without being overwhelming or too sparse.

Completeness4/5

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

ActivityStale
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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