Skip to main content
Glama
Vinaykumarreddy467

YouTube Summarizer MCP Server

YouTube Summarizer MCP Server

An MCP (Model Context Protocol) server that fetches YouTube video transcripts and exposes them to AI agents as tools, resources, and prompts.

Works with any MCP client — OpenWork, Claude Desktop, or any custom MCP host.

Features

Tools (callable by agents)

Tool

Description

get_youtube_transcript(video_url)

Full plain-text transcript

search_transcript(video_url, keyword)

Case-insensitive search, returns matching lines with timestamps

get_timestamped_transcript(video_url)

Every line prefixed with [MM:SS] — ideal for citing moments

Resources (readable by agents)

URI

Description

youtube://transcript/{video_id}

Full plain text

youtube://transcript/{video_id}/segments

Timestamped segments

youtube://transcript/{video_id}/stats

Word count, duration, estimated reading time

Prompt

  • summarize_video(video_url, format_style) — generates a prompt template that asks the LLM to summarize a video. The LLM can read the transcript resource and return a summary in the requested format (default: bullet points).

Related MCP server: youtube-mcp

Usage

Run directly

uv run --directory /path/to/yt-summarizer python3 summarizer.py

Or with the fastmcp CLI:

uv run --directory /path/to/yt-summarizer fastmcp run summarizer.py

Connect from Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "yt-summarizer": {
      "command": "/path/to/uv",
      "args": [
        "run",
        "--directory",
        "/path/to/yt-summarizer",
        "python3",
        "summarizer.py"
      ]
    }
  }
}

Connect from OpenWork

Add to opencode.jsonc:

{
  "mcp": {
    "youtube-summarizer": {
      "type": "local",
      "command": ["uv", "run", "--directory", "/path/to/yt-summarizer", "python3", "summarizer.py"],
      "enabled": true
    }
  }
}

Example

An agent can fetch and summarize a video in one interaction:

  1. Agent reads youtube://transcript/dQw4w9WgXcQ/stats — sees "1250 words, 5 min duration"

  2. Agent calls get_youtube_transcript("https://youtube.com/watch?v=dQw4w9WgXcQ") — gets the full text

  3. Agent calls search_transcript("https://youtube.com/watch?v=dQw4w9WgXcQ", "important topic") — finds relevant parts with timestamps

  4. Agent uses the summarize_video prompt template to format the final summary

Supported URL formats

  • https://youtube.com/watch?v=VIDEO_ID

  • https://youtu.be/VIDEO_ID

  • https://youtube.com/shorts/VIDEO_ID

  • https://youtube.com/embed/VIDEO_ID

  • https://youtube.com/v/VIDEO_ID

Requirements

  • Python 3.10+

  • fastmcp — MCP server framework

  • youtube-transcript-api — fetches YouTube transcripts

Project structure

yt-summarizer/
├── summarizer.py          # Main MCP server
├── yt-summarizer.py       # Original minimal version
├── yt-summarizer1.py      # Older version with logging
├── pyproject.toml         # Dependencies
├── plan.txt               # Dev notes
└── README.md

Available Tools

3 tools
get_timestamped_transcriptB

Return the full transcript with [MM:SS] timestamps on each line. Useful when an agent needs to cite specific moments in the video.

ParametersJSON Schema
NameRequiredDescriptionDefault
video_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/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 the full burden. It only states the output (transcript with timestamps) and does not disclose any behavioral traits such as authentication requirements, potential errors, rate limits, or whether it is destructive. More detail is needed for a higher score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two sentences with no superfluous information. It is front-loaded with the primary purpose and additional context in the second sentence. Every sentence contributes value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists, return value explanation is not required. However, the tool has no annotations and only one parameter, yet the description does not cover error scenarios, prerequisites, or limitations. It is minimally adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the parameter 'video_url' has no description. The tool description does not add any meaning beyond the parameter name. It does not specify expected format, constraints, or examples, which lowers the score.

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 the tool returns a full transcript with timestamps and mentions its use case for citing specific moments. However, it does not explicitly distinguish itself from sibling tools like get_youtube_transcript or search_transcript. A higher score would require explicit differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a usage context ('when an agent needs to cite specific moments'), but does not give guidance on when not to use this tool or suggest alternatives. It implies when to use it but lacks explicit when-not or alternative recommendations.

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

get_youtube_transcriptB

Fetch the full plain-text transcript of a YouTube video. Best for agents that want all text at once.

ParametersJSON Schema
NameRequiredDescriptionDefault
video_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/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 for behavioral disclosure. It only states it fetches the transcript, failing to disclose potential issues like missing captions, authentication requirements, rate limits, or output format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two short sentences, no wasted words, and front-loads the core purpose immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one parameter), and an output schema exists (not shown) which may cover return values. However, the description lacks details on URL format, error handling, and prerequisites, making it minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no meaning beyond the parameter name 'video_url'. It does not specify format (e.g., full URL vs. video ID), constraints, or examples, leaving the agent without guidance.

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?

Description explicitly states 'Fetch the full plain-text transcript of a YouTube video', using a specific verb and resource. It clearly distinguishes from siblings like 'get_timestamped_transcript' by specifying 'plain-text' and 'full' transcript.

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 phrase 'Best for agents that want all text at once' provides clear context on when to use this tool. It implies that for timestamped or search functionality, alternative siblings should be considered, though it does not explicitly state when not to use it.

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

search_transcriptA

Search inside a video transcript and return matching lines with timestamps. Case-insensitive. Helpful when an agent needs to find a specific topic.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordYes
video_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/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 discloses case-insensitivity, which is a key behavior. However, it does not mention whether the tool is read-only, required authentication, rate limits, or any side effects. For a search operation, likely read-only, but not stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, free of fluff, and front-loaded with the core action. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, the description needn't detail return values, but it already mentions 'matching lines with timestamps'. The tool is simple and the description covers the essentials. However, it could note that the search is within a single transcript, especially given sibling tools.

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 0%, so the description must compensate. It implicitly explains 'keyword' (search term) and 'video_url' (transcript source) through the tool's purpose, but adds no details on format, constraints, or examples. Partial compensation, but insufficient for full clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: searching inside a video transcript and returning matching lines with timestamps. It mentions case-insensitivity, which adds specificity. The purpose is distinct from sibling tools like get_timestamped_transcript (which retrieves full transcript) and get_youtube_transcript (which fetches transcript).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides some guidance ('Helpful when an agent needs to find a specific topic'), but lacks explicit when-not-to-use or alternatives. With siblings present, it does not differentiate usage conditions, e.g., when to use this over get_timestamped_transcript.

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

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: one returns the full transcript with timestamps, one returns plain text, and one searches for specific terms. No ambiguity between them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (get_timestamped_transcript, get_youtube_transcript, search_transcript), making them predictable and easy to understand.

Tool Count5/5

Three tools is well-scoped for a YouTube transcript server, covering the core needs without being too few or too many.

Completeness4/5

The set covers the main transcript retrieval and search functionality. A minor gap is the lack of a tool to get video metadata or list available transcripts, but it is still complete for typical summarization tasks.

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/Vinaykumarreddy467/yt-summarizer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server