Skip to main content
Glama

YouTube Research MCP

CI npm npm downloads GitHub stars Smithery MIT License

Turn YouTube videos into citation-ready research for Codex, Claude, Cursor, and other MCP clients. Paste a video URL and get transcript evidence with timestamps and links that open at the exact quoted moment.

YouTube Research MCP turns a video URL into focused timestamp-linked evidence

Input:  https://youtu.be/dQw4w9WgXcQ
Output: [01:05] ...evidence text...
        https://www.youtube.com/watch?v=dQw4w9WgXcQ&t=65s

No YouTube API key is required for transcript research.

Why this server

  • Citation-ready research — every transcript segment includes a timestamp and source URL.

  • Zero-key quick start — transcripts work immediately; add an API key only for search and analytics.

  • URL-first input — accepts normal, short, Shorts, embed, live, and raw video-ID formats.

  • Agent-efficient filtering — search inside transcripts and return nearby context instead of spending tokens on the entire video.

  • Full YouTube intelligence — optional API mode adds comments, video/channel statistics, trends, and comparisons.

  • Remote-native MCP — Streamable HTTP transport at /mcp, plus Docker and Smithery support.

Related MCP server: YouTube MCP Server

Architecture and trust boundary

flowchart LR
    C[MCP client] -->|stdio or Streamable HTTP| T[Transport]
    T --> R[Tool and resource registry]
    R --> S[YouTubeService]
    S --> K[(In-memory cache)]
    S -->|no key required| YT[Caption tracks]
    S -->|optional API key| API[YouTube Data API v3]

The MCP layer validates inputs and returns structured evidence; it does not ask a model to invent summaries or citations. Transcript tools derive timestamps and canonical links from caption segments. Data API tools return an explicit key-required error when YOUTUBE_API_KEY is unavailable, and remote authentication is enforced before MCP session handling.

Focused evidence, not a transcript dump

The included live smoke test asks a focused question about a public video and compares the response with the full timestamped transcript:

Response

Characters returned

Full transcript

85,518

research-video (3 citations with source identity)

1,550

Reduction

98.2%

This measures response characters, not model-specific tokens. Reproduce it against the default public fixture—or substitute your own video and query:

npm run test:live
LIVE_TEST_VIDEO='https://youtu.be/VIDEO_ID' LIVE_TEST_QUERY='evaluation' npm run test:live

Quick start — no API key

Requirements: Node.js 20 or newer.

The shortest local install uses stdio and needs no API key:

codex mcp add youtube-research -- npx -y @coyasong/youtube-mcp-server@latest

For Claude Desktop and other MCPB-compatible desktop clients, download the latest one-click MCP bundle and open it. The bundle vendors its runtime dependencies, starts locally over stdio, and asks for a YouTube API key only if you want the optional analytics tools.

Install in VS Code

Or install from the VS Code command line:

code --add-mcp '{"name":"youtube-research","command":"npx","args":["-y","@coyasong/youtube-mcp-server@latest"]}'

For Claude Desktop, Cursor, and other stdio clients, use command npx with arguments -y @coyasong/youtube-mcp-server@latest.

To run the Streamable HTTP transport instead:

git clone https://github.com/coyaSONG/youtube-mcp-server.git
cd youtube-mcp-server
npm install
npm run build
npm start

The server starts at http://localhost:3000/mcp in transcript-only mode. Confirm it with:

curl http://localhost:3000/health

Connect from Codex

With the HTTP server running:

codex mcp add youtube-research --url http://localhost:3000/mcp

Then ask Codex:

Use research-video to find what this video says about evaluation,
and cite the exact moments: https://www.youtube.com/watch?v=VIDEO_ID

Connect with MCP Inspector

npx @modelcontextprotocol/inspector
# Connect to http://localhost:3000/mcp

Install through Smithery

npx -y smithery@latest auth login
npx -y smithery@latest mcp add coyaSONG/youtube-mcp-server --client claude

Enable search, comments, and analytics

Set a YouTube Data API v3 key to switch from transcript-only to full mode:

export YOUTUBE_API_KEY=your_key_here
npm start

YOUTUBE_API_KEY is optional. PORT defaults to 3000.

Secure a remote deployment

Do not expose a full-mode server publicly without authentication: unauthenticated users could consume your YouTube API quota. Set a strong bearer token and restrict browser origins when deploying outside localhost:

export MCP_BEARER_TOKEN='replace-with-a-long-random-secret'
export CORS_ORIGIN='https://your-client.example'
export MAX_SESSIONS=100
export SESSION_IDLE_TIMEOUT_MS=1800000
npm start

Browser origins are denied by default. CORS_ORIGIN accepts a comma-separated allowlist of exact http:// or https:// origins; wildcard origins are rejected.

Connect Codex using an environment variable rather than writing the secret into its configuration:

export YOUTUBE_MCP_TOKEN='replace-with-a-long-random-secret'
codex mcp add youtube-research \
  --url https://your-server.example/mcp \
  --bearer-token-env-var YOUTUBE_MCP_TOKEN

/health remains public for container health checks. MCP requests return 401 when authentication is enabled and the bearer token is missing or invalid. Idle sessions are removed automatically, and MAX_SESSIONS bounds memory use.

Best first tool

research-video accepts:

  • video: a YouTube URL or 11-character video ID

  • language: optional caption language such as en, ko, or ja

  • query: optional phrase to find inside the transcript

  • contextLines: surrounding segments to retain, from 0 to 5

  • matchMode: word (default) or substring

  • startSeconds / endSeconds: optional time window

  • offset: result offset for pagination

  • maxSegments: response cap from 1 to 1,000 (default: 200)

It returns structured JSON containing the video title and channel identity, canonical video URL, full caption-track duration and segment count, matching transcript segments, human-readable citation labels, timestamps, directly navigable citation URLs, and pagination metadata. For long videos, use a query or time window first; follow nextOffset only when more evidence is needed.

Compare evidence across videos

research-videos applies one focused query to 2–5 video URLs concurrently. It returns the same structured, timestamp-linked evidence for each source while capping results per video. This is useful for comparing interviews, checking whether multiple sources support a claim, or researching a topic across a short watchlist.

{
  "videos": [
    "https://youtu.be/VIDEO_ONE",
    "https://youtu.be/VIDEO_TWO"
  ],
  "query": "evaluation",
  "maxSegmentsPerVideo": 10
}

See YouTube Research Recipes for copy-paste workflows for fact-checking claims, comparing interviews, navigating long talks, researching multilingual captions, and building citation-ready notes.

Capability modes

Capability

No-key mode

With YOUTUBE_API_KEY

Transcript research, filtering, key moments, segmentation, summaries

Yes

Yes

Video search and comments

No

Yes

Video/channel metadata, statistics, trends, and comparisons

No

Yes

Captions must be available for the requested video. Age-restricted, private, region-restricted, or caption-disabled videos may not return a transcript.

If this project saves you research time, consider starring the repository so other agent builders can discover it.

See the broader AI tooling portfolio for the reliability principles shared with ralph-research and tmuxicate.

Docker

docker build -t youtube-research-mcp .
docker run --rm -p 3000:3000 youtube-research-mcp

# Full mode
docker run --rm -p 3000:3000 -e YOUTUBE_API_KEY=your_key youtube-research-mcp

Development

npm run dev             # HTTP server from TypeScript
npm test                # build and run all tests
npm run test:live       # live public-video transcript and citation smoke test
npm run test:user       # clean-room smoke test against the published npm package
npm run test:mcpb       # build, unpack, and exercise the installable MCP bundle

Maintainers can follow the release guide. Published GitHub releases run the complete npm, MCP Registry, MCPB, and Smithery delivery pipeline.

API Reference

Resources

  • youtube://video/{videoId} - Get detailed information about a specific video

  • youtube://channel/{channelId} - Get information about a specific channel

  • youtube://transcript/{videoId} - Get transcript for a specific video

    • Optional query parameter: ?language=LANGUAGE_CODE (e.g., en, ko, ja)

Tools

Basic Tools

  • research-video - Get citation-ready transcript evidence from a URL or video ID without an API key

  • research-videos - Compare timestamp-linked evidence across 2–5 videos without an API key

  • search-videos - Search for YouTube videos with advanced filtering options

  • get-video-comments - Get comments for a specific video

  • get-video-transcript - Get transcript for a specific video with optional language

  • enhanced-transcript - Advanced transcript extraction with filtering, search, and multi-video capabilities

  • get-key-moments - Extract key moments with timestamps from a video transcript for easier navigation

  • get-segmented-transcript - Divide a video transcript into segments for easier analysis

Tools requiring YOUTUBE_API_KEY are search, comments, statistics, discovery, and channel analysis. enhanced-transcript needs the key only when includeMetadata is true.

Statistical Tools

  • get-video-stats - Get statistical information for a specific video

  • get-channel-stats - Get subscriber count, view count, and other channel statistics

  • compare-videos - Compare statistics across multiple videos

Discovery Tools

  • get-trending-videos - Retrieve trending videos by region and category

  • get-video-categories - Get available video categories for a specific region

Analysis Tools

  • analyze-channel-videos - Analyze performance trends of videos from a specific channel

Prompts

  • video-analysis - Generate an analysis of a YouTube video

  • transcript-summary - Generate a summary of a video based on its transcript with customizable length and keywords extraction

  • segment-by-segment-analysis - Provide detailed breakdown of content by analyzing each segment of the video

Examples

Accessing a Video Transcript

youtube://transcript/dQw4w9WgXcQ

Getting a Transcript in a Specific Language

youtube://transcript/dQw4w9WgXcQ?language=en

Using the Statistical Tools

// Get video statistics
{
  "type": "tool",
  "name": "get-video-stats",
  "parameters": {
    "videoId": "dQw4w9WgXcQ"
  }
}

// Compare multiple videos
{
  "type": "tool",
  "name": "compare-videos",
  "parameters": {
    "videoIds": ["dQw4w9WgXcQ", "9bZkp7q19f0"]
  }
}

Using the Transcript Summary Prompt

{
  "type": "prompt",
  "name": "transcript-summary",
  "parameters": {
    "videoId": "dQw4w9WgXcQ",
    "language": "en"
  }
}

Using the Enhanced Transcript Tool

// Basic multi-video transcript extraction
{
  "type": "tool",
  "name": "enhanced-transcript",
  "parameters": {
    "videoIds": ["dQw4w9WgXcQ", "9bZkp7q19f0"],
    "format": "timestamped"
  }
}

// With search and time filtering
{
  "type": "tool",
  "name": "enhanced-transcript",
  "parameters": {
    "videoIds": ["dQw4w9WgXcQ"],
    "filters": {
      "timeRange": {
        "start": 60,  // Start at 60 seconds
        "end": 180    // End at 180 seconds
      },
      "search": {
        "query": "never gonna",
        "contextLines": 2
      }
    },
    "format": "merged"
  }
}

// With duration-based segmentation for easier analysis
{
  "type": "tool",
  "name": "enhanced-transcript",
  "parameters": {
    "videoIds": ["dQw4w9WgXcQ"],
    "filters": {
      "segment": {
        "count": 5,
        "method": "smart"  // Balances caption duration across segments
      }
    },
    "format": "timestamped",
    "language": "en"
  }
}

Using the Enhanced Transcript Analysis Features

// Get key moments from a video
{
  "type": "tool",
  "name": "get-key-moments",
  "parameters": {
    "videoId": "dQw4w9WgXcQ",
    "maxMoments": 5
  }
}

// Get a segmented transcript
{
  "type": "tool",
  "name": "get-segmented-transcript",
  "parameters": {
    "videoId": "dQw4w9WgXcQ",
    "segmentCount": 4
  }
}

// Get a segment-by-segment analysis
{
  "type": "prompt",
  "name": "segment-by-segment-analysis",
  "parameters": {
    "videoId": "dQw4w9WgXcQ",
    "segmentCount": 4
  }
}

// Get customized transcript summary
{
  "type": "prompt",
  "name": "transcript-summary",
  "parameters": {
    "videoId": "dQw4w9WgXcQ",
    "language": "en",
    "summaryLength": "detailed",
    "includeKeywords": true
  }
}

Error Handling

The server handles various error conditions, including:

  • Invalid or missing API key for Data API tools

  • Video or channel not found

  • Transcript not available

  • Network issues

License

MIT

Acknowledgements

Available Tools

12 tools
analyze-channel-videosC

Analyze recent videos from a specific channel to identify performance trends

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdYes
maxResultsNo
sortByNo

TDQS

C2.8/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 of behavioral disclosure. It mentions analyzing 'recent videos' and 'performance trends,' but fails to specify what 'recent' means (e.g., time frame), what 'analyze' entails (e.g., statistical methods, output format), or any limitations like rate limits or authentication needs. For a tool with no annotations, this is a significant gap in transparency.

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 a single, well-structured sentence that efficiently conveys the core action and goal without unnecessary words. It's front-loaded with the main purpose ('analyze recent videos'), making it easy to parse quickly, and every part of the sentence contributes directly to understanding the tool's function.

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?

Given the complexity of analyzing videos for trends, no annotations, no output schema, and low schema description coverage, the description is incomplete. It doesn't explain what 'performance trends' include (e.g., views, engagement), how results are returned, or any behavioral constraints. For a tool that likely involves data processing and output, more context is needed to guide effective use.

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%, so the description must compensate for undocumented parameters. It implies the use of 'channelId' and hints at 'recent videos' (which could relate to 'maxResults' or 'sortBy'), but doesn't explain what 'maxResults' controls (e.g., number of videos analyzed) or how 'sortBy' affects the analysis. With 3 parameters and no schema descriptions, the description adds minimal semantic value beyond basic inference.

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's purpose with a specific verb ('analyze') and resource ('recent videos from a specific channel'), and it specifies the outcome ('identify performance trends'). However, it doesn't explicitly differentiate this from sibling tools like 'get-channel-stats' or 'get-video-stats', which might also provide performance insights, so it falls short of a perfect score.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing a valid channel ID, or compare it to siblings like 'get-channel-stats' for broader channel analysis or 'search-videos' for different video retrieval methods. This lack of context leaves the agent to infer usage scenarios.

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

compare-videosC

Compare statistics for multiple YouTube videos

ParametersJSON Schema
NameRequiredDescriptionDefault
videoIdsYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'compare statistics' but doesn't specify what statistics are compared (views, likes, engagement metrics), how results are presented, whether there are rate limits, or if authentication is required. This leaves significant gaps in understanding the tool's behavior.

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 at just 5 words, front-loading the core purpose without any wasted language. Every word earns its place by specifying the action, resource type, and scope.

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?

For a tool with 1 parameter but 0% schema coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain what statistics are compared, how results are formatted, whether there are constraints beyond the 2-10 video limit, or how this differs from other statistical tools on the server.

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?

The description mentions 'multiple YouTube videos' which aligns with the 'videoIds' array parameter, adding context about the resource being compared. However, with 0% schema description coverage, it doesn't explain the 2-10 video limit, the format of video IDs, or what constitutes valid input beyond what's implied by 'YouTube videos.'

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 action ('compare statistics') and resource ('YouTube videos'), making the tool's purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get-video-stats' or 'analyze-channel-videos' that might also involve video statistics, leaving some ambiguity about when to choose this specific comparison tool.

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 provides no guidance on when to use this tool versus alternatives. With siblings like 'get-video-stats' (likely for single videos) and 'analyze-channel-videos' (likely for channel-level analysis), there's no indication of when comparative analysis across multiple videos is preferred over other statistical tools.

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

enhanced-transcriptA

Advanced transcript extraction tool with filtering, search, and multi-video capabilities. Provides rich transcript data for detailed analysis and processing. This tool offers multiple advanced features: 1) Extract transcripts from multiple videos in one request; 2) Filter by time ranges to focus on specific parts; 3) Search for specific content within transcripts; 4) Segment transcripts for structural analysis; 5) Format output in different ways (raw, timestamped, merged text); 6) Include video metadata. Parameters: videoIds (required) - Array of YouTube video IDs (up to 5); language (optional) - Language code; format (optional) - Output format ("raw", "timestamped", "merged"); includeMetadata (optional) - Whether to include video details; filters (optional) - Complex filtering options including timeRange, search, and segment.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersNo
formatNo
includeMetadataNo
languageNo
videoIdsYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions multi-video capabilities (up to 5 videos), filtering options, and output formats, which adds useful context. However, it lacks details on rate limits, authentication needs, error handling, or what happens with invalid inputs, leaving gaps for a tool with complex parameters.

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

Conciseness4/5

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

The description is well-structured with a clear opening statement followed by a numbered list of features and detailed parameter explanations. It's appropriately sized for a complex tool, though the parameter section is lengthy; every sentence adds value, and it's front-loaded with key capabilities.

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 the tool's complexity (5 parameters with nested objects, no output schema, and no annotations), the description is moderately complete. It covers parameters well but lacks output details, error handling, or performance constraints. For a tool with such rich input options, more behavioral context would improve completeness.

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

Parameters5/5

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

The schema description coverage is 0%, so the description must fully compensate. It explicitly lists all 5 parameters with clear explanations: 'videoIds (required) - Array of YouTube video IDs (up to 5)', 'language (optional) - Language code', etc., and details nested filter options like timeRange, search, and segment. This adds substantial meaning beyond the bare schema.

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 as 'Advanced transcript extraction tool with filtering, search, and multi-video capabilities' and lists six specific features, making it highly specific. It distinguishes itself from sibling tools like 'get-video-transcript' by emphasizing advanced capabilities like multi-video processing, filtering, and search.

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 provides no guidance on when to use this tool versus alternatives. While it mentions advanced features, it doesn't specify scenarios where this tool is preferred over simpler siblings like 'get-video-transcript' or 'get-segmented-transcript', nor does it mention prerequisites or exclusions.

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

get-channel-statsC

Get statistical information for a specific YouTube channel (subscriber count, total views, video count, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdYes

TDQS

C2.9/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 states what the tool does but lacks behavioral details such as rate limits, authentication requirements, error handling, or the format of returned data. This is a significant gap for a tool with no annotation coverage.

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 a single, efficient sentence that front-loads the purpose with specific examples. There is no wasted text, and it directly communicates the core functionality without unnecessary details.

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?

Given the complexity of a data retrieval tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like response format, errors, or usage constraints, leaving gaps that could hinder an AI agent's ability to use it effectively.

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 implies the parameter is for a 'specific YouTube channel' but doesn't explain the 'channelId' format or constraints. The description adds minimal value beyond the schema, resulting in a baseline score due to the single parameter.

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 verb 'Get' and the resource 'statistical information for a specific YouTube channel', with examples like subscriber count, total views, and video count. It distinguishes from siblings like 'get-video-stats' by focusing on channels rather than videos, though it doesn't explicitly name alternatives.

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?

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing a valid channel ID, or compare it to other channel-related tools like 'analyze-channel-videos'. The context is implied but not explicit.

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

get-key-momentsA

Extract key moments with timestamps from a video transcript for easier navigation and summarization. This tool analyzes the video transcript to identify important segments based on content density and creates a structured output with timestamped key moments. Useful for quickly navigating to important parts of longer videos. Parameters: videoId (required) - The YouTube video ID; maxMoments (optional) - Number of key moments to extract (default: 5, max: 10). Returns a formatted text with key moments and their timestamps, plus the full transcript.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxMomentsNo
videoIdYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the tool's function (extracting key moments based on content density) and output format (structured text with timestamps and full transcript), which is helpful. However, it lacks details about potential limitations (e.g., accuracy of moment identification, processing time, or error conditions like invalid video IDs), which would be valuable for an agent to understand behavioral traits beyond basic functionality.

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

Conciseness4/5

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

The description is appropriately sized and front-loaded, starting with the core purpose in the first sentence. Each sentence adds value: the first defines the tool, the second explains the analysis method, and the third provides usage context and parameter details. However, the last sentence about return values could be slightly more concise, and the structure might benefit from separating parameter explanations into a distinct section.

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 tool's moderate complexity (2 parameters, no annotations, no output schema), the description is fairly complete. It covers purpose, usage, parameters, and output format. However, without annotations or an output schema, it could improve by detailing error handling, performance characteristics, or more specifics on the 'structured output' format (e.g., JSON structure or text layout), which would help an agent invoke it correctly in edge cases.

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

Parameters4/5

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

The schema description coverage is 0%, so the description must compensate. It effectively explains both parameters: 'videoId' as the required YouTube video ID and 'maxMoments' as the optional number to extract with default (5) and maximum (10) values. This adds crucial meaning beyond the bare schema, though it doesn't specify format details for 'videoId' (e.g., length or pattern) or clarify that 'maxMoments' is a string type in the schema.

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 with specific verbs ('extract', 'analyzes', 'identify', 'creates') and resources ('key moments with timestamps from a video transcript'). It distinguishes itself from sibling tools like 'get-video-transcript' (which likely retrieves raw transcript) and 'enhanced-transcript' (which might process transcript differently) by focusing on extracting structured key moments for navigation and summarization.

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 provides clear context for when to use this tool ('for easier navigation and summarization', 'useful for quickly navigating to important parts of longer videos'). However, it doesn't explicitly state when NOT to use it or mention specific alternatives among the sibling tools, such as when a user might prefer 'get-video-transcript' for raw data or 'enhanced-transcript' for different processing.

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

get-segmented-transcriptA

Divide a video transcript into segments for easier analysis and navigation. This tool splits the video into equal time segments and extracts the transcript for each segment with proper timestamps. Ideal for analyzing the structure of longer videos or when you need to focus on specific parts of the content. Parameters: videoId (required) - The YouTube video ID; segmentCount (optional) - Number of segments to divide the video into (default: 4, max: 10). Returns a markdown-formatted text with each segment clearly labeled with time ranges and containing the relevant transcript text.

ParametersJSON Schema
NameRequiredDescriptionDefault
segmentCountNo
videoIdYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it splits transcripts into equal time segments, extracts text with timestamps, returns markdown-formatted output, and specifies defaults (segmentCount default: 4) and limits (max: 10). However, it does not cover potential errors (e.g., invalid videoId) or performance aspects like rate limits, leaving some gaps.

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 appropriately sized and front-loaded, with the core purpose in the first sentence, usage context in the second, and parameter details in the third. Every sentence adds value without redundancy, making it efficient and easy to parse for an AI agent.

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 complexity (a processing tool with 2 parameters), no annotations, and no output schema, the description does well by covering purpose, usage, parameters, and output format. However, it lacks details on error handling or edge cases (e.g., what happens with very short videos), which would make it more complete for safe invocation.

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

Parameters5/5

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

The schema description coverage is 0%, so the description must fully compensate. It does so by clearly explaining both parameters: 'videoId (required) - The YouTube video ID' and 'segmentCount (optional) - Number of segments to divide the video into (default: 4, max: 10)'. This adds essential meaning beyond the bare schema, including requirements, defaults, and constraints.

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 with specific verbs ('divide', 'split', 'extract') and resource ('video transcript'), distinguishing it from siblings like 'get-video-transcript' (which likely returns the full transcript) and 'get-key-moments' (which likely identifies highlights rather than equal segments). It explicitly mentions what the tool does beyond just retrieving a 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 description provides clear context for when to use this tool ('for easier analysis and navigation', 'ideal for analyzing the structure of longer videos or when you need to focus on specific parts'), but it does not explicitly mention when not to use it or name alternatives (e.g., 'get-video-transcript' for the full transcript). This gives good guidance but lacks explicit exclusions or sibling comparisons.

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

get-video-categoriesC

Retrieve available video categories for a specific region

ParametersJSON Schema
NameRequiredDescriptionDefault
regionCodeNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves categories, implying a read-only operation, but lacks details on permissions, rate limits, error handling, or return format. This is a significant gap for a tool with zero annotation coverage, leaving the agent uncertain about operational traits.

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 a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part ('Retrieve available video categories for a specific region') contributes directly to understanding the tool's function, making it highly concise and well-structured.

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?

Given the tool's simplicity (1 parameter, no output schema, no annotations), the description is incomplete. It lacks details on behavioral aspects, parameter usage, and output expectations, which are crucial for the agent to invoke it correctly. While concise, it doesn't provide enough context to fully understand the tool's operation.

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?

The description mentions 'for a specific region', which hints at the 'regionCode' parameter, but with 0% schema description coverage and no details on parameter meaning, format, or constraints (e.g., region codes like 'US'), it adds minimal value beyond the schema. For a single parameter tool, this is insufficient to compensate for the coverage gap.

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 action ('Retrieve') and resource ('available video categories'), with specificity about the scope ('for a specific region'). It distinguishes from siblings like 'get-channel-stats' or 'get-video-stats' by focusing on categories rather than statistics. However, it doesn't explicitly differentiate from all siblings, such as 'search-videos' which might also involve categories.

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 provides minimal guidance by implying usage when video categories for a region are needed, but it offers no explicit when-to-use rules, alternatives, or exclusions. For example, it doesn't clarify if this should be used instead of other tools like 'search-videos' for category-related queries or if there are prerequisites.

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

get-video-commentsC

Retrieve comments for a specific YouTube video

ParametersJSON Schema
NameRequiredDescriptionDefault
maxResultsNo
videoIdYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions retrieving comments but lacks critical details like whether this is a read-only operation, if it requires authentication, rate limits, pagination behavior, or what the output format looks like. This is inadequate for a tool with zero annotation coverage.

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 a single, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for a simple retrieval tool and front-loaded with the core purpose.

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?

Given the complexity of a YouTube API tool with no annotations, no output schema, and 2 parameters (one optional), the description is insufficient. It doesn't cover authentication needs, rate limits, error handling, or return format, leaving significant gaps for an AI agent to use it correctly.

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?

The description implies a 'videoId' parameter is needed to specify the video, but doesn't explain what format it expects (e.g., YouTube URL or ID) or mention 'maxResults' at all. With 0% schema description coverage, the description adds minimal value beyond the schema's structural information, meeting the baseline for partial compensation.

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 action ('Retrieve') and resource ('comments for a specific YouTube video'), making the purpose immediately understandable. However, it doesn't differentiate from potential sibling tools like 'get-video-stats' or 'get-video-transcript' that might also retrieve video-related data, so it doesn't reach the highest score.

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 provides no guidance on when to use this tool versus alternatives like 'search-videos' or 'get-video-stats', nor does it mention prerequisites such as needing a valid video ID. It only states what the tool does, not when it's appropriate.

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

get-video-statsC

Get statistical information for a specific YouTube video (views, likes, comments, upload date, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
videoIdYes

TDQS

C2.9/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 states what the tool does but lacks behavioral details: no mention of permissions needed, rate limits, whether it's a read-only operation (implied by 'Get'), error conditions, or response format. This is inadequate for a tool with zero annotation coverage.

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, front-loaded with the core purpose, and includes helpful examples (views, likes, etc.) without unnecessary details. Every word earns its place efficiently.

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?

Given no annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't cover behavioral aspects (e.g., auth, errors), parameter details, or return values, leaving significant gaps for a tool that fetches video statistics.

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 implies the parameter is for a 'specific YouTube video' but doesn't explain the videoId format (e.g., YouTube ID syntax) or provide examples. The description adds minimal meaning beyond the schema's basic type constraint.

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 verb 'Get' and the resource 'statistical information for a specific YouTube video', with examples of what that includes (views, likes, comments, upload date). It distinguishes from siblings like get-channel-stats (channel-level) and get-video-comments (comments only), but doesn't explicitly contrast them.

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?

No guidance on when to use this tool versus alternatives like get-channel-stats (for channel-level stats) or get-video-comments (for comments only). The description implies usage for video-level statistics but doesn't provide explicit context or exclusions.

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

get-video-transcriptA

Get the transcript/captions for a YouTube video with optional language selection. This tool retrieves the full transcript of a video with timestamped captions. Each caption includes the text and its timestamp in the video. Parameters: videoId (required) - The YouTube video ID; language (optional) - Language code for the transcript (e.g., "en", "ko", "ja"). If not specified, the default language for the video will be used. Returns a text with each caption line preceded by its timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNo
videoIdYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool retrieves full transcripts with timestamped captions and describes the return format, but it lacks details on error handling, rate limits, authentication needs, or whether it's a read-only operation (though implied by 'get').

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 front-loaded with the core purpose, followed by details on parameters and returns in three efficient sentences with zero waste, making it easy to parse quickly.

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 2 parameters, no annotations, and no output schema, the description is mostly complete: it covers purpose, parameters, and return format. However, it lacks error cases or behavioral constraints (e.g., video availability), leaving minor gaps for a tool with no structured support.

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

Parameters5/5

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

The schema description coverage is 0%, so the description fully compensates by explaining both parameters: videoId (required, YouTube video ID) and language (optional, with examples like 'en', 'ko', 'ja', and default behavior). This adds essential meaning beyond the bare schema.

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 specific action ('Get the transcript/captions for a YouTube video') and resource ('YouTube video'), distinguishing it from siblings like 'get-key-moments' or 'get-segmented-transcript' by focusing on full timestamped transcripts rather than analysis or segmentation.

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 provides clear context for when to use this tool (to retrieve full transcripts with timestamps) and mentions optional language selection, but it does not explicitly state when not to use it or name alternatives like 'enhanced-transcript' or 'get-segmented-transcript' from the sibling list.

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

search-videosB

Search for YouTube videos with advanced filtering options. Supports parameters: - query: Search term (required) - maxResults: Number of results to return (1-50) - channelId: Filter by specific channel - order: Sort by date, rating, viewCount, relevance, title - type: Filter by resource type (video, channel, playlist) - videoDuration: Filter by length (short: <4min, medium: 4-20min, long: >20min) - publishedAfter/publishedBefore: Filter by publish date (ISO format) - videoCaption: Filter by caption availability - videoDefinition: Filter by quality (standard/high) - regionCode: Filter by country (ISO country code)

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdNo
maxResultsNo
orderNo
publishedAfterNo
publishedBeforeNo
queryYes
regionCodeNo
typeNo
videoCaptionNo
videoDefinitionNo
videoDurationNo

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'advanced filtering options' and lists parameters, but fails to describe key behaviors: it doesn't specify if this is a read-only operation, mention rate limits, authentication needs, pagination, or the format of returned results. For a search tool with 11 parameters and no output schema, this is a significant gap in transparency.

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

Conciseness4/5

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

The description is appropriately sized and front-loaded, starting with the core purpose. It efficiently lists parameters in a bullet-like format without unnecessary elaboration. However, it could be slightly more structured (e.g., grouping related parameters) and includes some redundancy (e.g., repeating 'Filter by' for multiple parameters), preventing a perfect score.

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 the tool's complexity (11 parameters, no annotations, no output schema), the description is partially complete. It excels in parameter semantics but lacks behavioral context (e.g., result format, error handling) and usage guidelines. Without an output schema, the description should ideally hint at return values, but it doesn't, leaving gaps in overall completeness.

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

Parameters5/5

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

The description adds substantial meaning beyond the input schema, which has 0% schema description coverage. It explains each parameter's purpose (e.g., 'query: Search term (required)', 'videoDuration: Filter by length (short: <4min, medium: 4-20min, long: >20min)'), including details like required status, value ranges, and formats (ISO format for dates). This fully compensates for the schema's lack of descriptions.

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's purpose: 'Search for YouTube videos with advanced filtering options.' It specifies the verb ('search') and resource ('YouTube videos'), and the 'advanced filtering options' distinguishes it from basic search tools. However, it doesn't explicitly differentiate from sibling tools like 'get-trending-videos' or 'analyze-channel-videos', which prevents a perfect score.

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 provides no guidance on when to use this tool versus alternatives. It lists parameters but doesn't indicate scenarios where this search is preferred over sibling tools (e.g., 'get-trending-videos' for trending content or 'analyze-channel-videos' for channel-specific analysis). This lack of comparative context leaves the agent without usage direction.

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

TDQS

B3.4/5.0
Disambiguation3/5

Most tools have distinct purposes, but there is notable overlap between transcript-related tools (enhanced-transcript, get-video-transcript, get-segmented-transcript, get-key-moments) which could cause confusion. The descriptions help differentiate them, but an agent might struggle to choose the right one for basic transcript needs.

Naming Consistency4/5

Tool names follow a consistent verb_noun pattern (e.g., get-video-stats, search-videos, analyze-channel-videos) with clear, descriptive naming. The only minor deviation is 'enhanced-transcript' which uses an adjective instead of a verb, but it still fits the overall readable convention.

Tool Count5/5

With 12 tools, the server is well-scoped for YouTube data analysis, covering channels, videos, transcripts, and trends. Each tool serves a specific function without unnecessary duplication, making the count appropriate for the domain.

Completeness4/5

The toolset provides comprehensive coverage for YouTube analysis, including video and channel stats, transcripts, comments, search, and trending data. Minor gaps exist, such as no tools for playlist management or direct video upload/modification, but core analytical workflows are well-supported.

Maintenance

ActivitySlowing
ResponsivenessNo issues

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/coyaSONG/youtube-mcp-server'

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