Skip to main content
Glama
larrygmaguire-tech

YouTube Researcher MCP Server

YouTube Researcher MCP Server

v1.1.0 · MIT License

An MCP (Model Context Protocol) server for researching YouTube niches. Wraps the YouTube Data API v3 to search for videos, fetch metadata, calculate engagement metrics, download thumbnails, and produce aggregate niche statistics.

Built for Claude Code — define your niche, and the server returns structured data on what's working: title patterns, engagement rates, video lengths, top tags, channel sizes, and thumbnail images for visual analysis.

For the leanest context usage, query 10 videos and delegate analysis to a subagent:

  1. User provides topic — never assume or infer

  2. youtube_analyse_niche(query, maxResults=10) — top 10 by view count with full metrics

  3. youtube_get_thumbnails(videoIds) — download all 10 thumbnails

  4. Spawn a single agent that reads the raw data + thumbnail images, analyses everything, and writes a research report to disk

  5. Main context receives only the file path and a brief summary

This keeps the main conversation window clean. The analyse_niche tool returns large JSON (100KB+ at 30 videos) — always save to disk rather than processing in the primary context.

Companion Skill

A ready-made Claude Code skill is included in skill/SKILL.md. To install:

mkdir -p .claude/skills/researching-youtube-niche
cp skill/SKILL.md .claude/skills/researching-youtube-niche/SKILL.md

The skill handles the full workflow — topic prompt, niche analysis, thumbnail download, agent delegation, and report generation. Customise the output path and report structure to suit your workspace.

Related MCP server: YouTube MCP

Prerequisites

  • Node.js >= 18

  • A YouTube Data API v3 key (free tier — see setup below)

Google Cloud Setup

  1. Go to Google Cloud Console

  2. Create a new project (or select an existing one)

  3. Navigate to APIs & Services > Library

  4. Search for YouTube Data API v3 and click Enable

  5. Navigate to APIs & Services > Credentials

  6. Click Create Credentials > API Key

  7. (Recommended) Restrict the key:

    • Click the key name to edit

    • Under API restrictions, select Restrict key and choose YouTube Data API v3

    • Under Application restrictions, optionally restrict by IP

  8. Copy the API key

Installation

git clone https://github.com/larrygmaguire-hash/youtube-researcher-mcp.git
cd youtube-researcher-mcp
npm install

Pre-built JavaScript is included in build/ — no TypeScript compilation needed. To rebuild from source: npm run build.

Configuration

Environment Variable

Create a .env file or pass the key directly:

YOUTUBE_API_KEY=your_key_here

The server validates this at startup and exits if the key is missing.

Claude Code Registration

Global — add to ~/.claude.json:

{
  "mcpServers": {
    "youtube-researcher": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/youtube-researcher-mcp/build/index.js"],
      "env": {
        "YOUTUBE_API_KEY": "your_key_here"
      }
    }
  }
}

Workspace-scoped — add to .mcp.json in the workspace root (same structure). This keeps the server available only within that workspace.

Tools

youtube_search_niche

Search YouTube for videos by keyword. Returns video IDs sorted by view count, date, relevance, or rating.

Parameter

Type

Required

Default

Description

query

string

Yes

Search keyword(s)

maxResults

number

No

25

1–50

order

string

No

viewCount

viewCount, date, relevance, rating

publishedAfter

string

No

ISO 8601 date filter (e.g. 2025-01-01T00:00:00Z)

regionCode

string

No

ISO 3166-1 alpha-2 code (e.g. IE, GB, US)

Returns: { videoIds: string[], count: number, quotaUsed: number }

Note: This is the only tool that supports the rating sort order and the regionCode filter.


youtube_get_video_details

Fetch full metadata for video IDs. Returns title, description, tags, thumbnails, duration, view/like/comment counts, and calculated engagement metrics. Batches up to 50 per API call.

Parameter

Type

Required

Description

videoIds

string[]

Yes

Video IDs (max 50)

Returns per video:

Field

Type

Description

videoId

string

YouTube video ID

title

string

Video title

description

string

Full description text

tags

string[]

Video tags

publishedAt

string

ISO 8601 publish date

durationSeconds

number

Duration in seconds

durationFormatted

string

Human-readable duration (e.g. 12:34)

viewCount

number

Total views

likeCount

number

Total likes

commentCount

number

Total comments

channelId

string

Channel ID

channelTitle

string

Channel name

categoryId

string

YouTube category ID

thumbnailUrls

object

URLs at default/medium/high/standard/maxres sizes

engagementRate

number

(likes + comments) / views

likeToViewRatio

number

likes / views

commentDensity

number

comments / views

daysSincePublish

number

Days since publish (minimum 1)

viewVelocity

number

views / daysSincePublish


youtube_get_channel_details

Fetch channel metadata including subscriber count, total views, and video count. Deduplicates channel IDs automatically.

Parameter

Type

Required

Description

channelIds

string[]

Yes

Channel IDs (max 50; duplicates removed)

Returns per channel:

Field

Type

Description

channelId

string

Channel ID

title

string

Channel name

description

string

Channel description

subscriberCount

number

Subscriber count

videoCount

number

Total videos published

totalViewCount

number

Lifetime view count

publishedAt

string

Channel creation date

thumbnailUrl

string

Channel avatar URL

hiddenSubscriberCount

boolean

Whether the sub count is hidden


youtube_analyse_niche

Primary entry point. Compound tool that searches, fetches video/channel details, calculates metrics, and returns aggregate statistics in a single call.

Parameter

Type

Required

Default

Description

query

string

Yes

Niche keyword(s)

maxResults

number

No

30

1–50. Recommend 10 for lean workflow

publishedAfter

string

No

ISO 8601 date filter

minViews

number

No

Minimum view count filter (post-fetch — see note)

order

string

No

viewCount

viewCount, date, relevance

Automatic filters (no parameter needed):

  • Videos under 60 seconds are excluded (Shorts detection by duration, not YouTube's Shorts flag)

  • Active live streams are excluded

minViews gotcha: This is a post-fetch filter. The search and video detail API calls run first (consuming quota), then videos below the threshold are removed from results. A high minViews value can return very few or zero videos while still costing the full quota.

Not available on this tool: regionCode and rating sort order — use youtube_search_niche for those.

Returns:

{
  query: string,
  fetchedAt: string,              // ISO 8601 timestamp
  totalVideosAnalysed: number,
  videos: VideoMetrics[],         // Full per-video data (see youtube_get_video_details)
  channels: ChannelMetrics[],     // Deduplicated channel data
  aggregates: {
    medianViewCount: number,
    averageViewCount: number,
    medianEngagementRate: number,
    averageEngagementRate: number,
    medianDurationSeconds: number,
    medianLikeToViewRatio: number,
    topTags: [{ tag, count }],           // Top 20 by frequency
    durationDistribution: {              // Video count per bucket
      under5min, fiveToTen, tenToTwenty, overTwenty
    },
    publishDayDistribution: {            // Count by day of week (UTC)
      Monday, Tuesday, ...
    },
    channelSizeDistribution: {           // By subscriber count
      micro: <10K, mid: 10K-100K, large: 100K-1M, mega: 1M+
    }
  },
  quotaUsed: number
}

youtube_get_thumbnails

Download thumbnail images to a local directory. No API quota cost — fetches directly from YouTube's image CDN.

Parameter

Type

Required

Default

Description

videoIds

string[]

Yes

Video IDs (max 50)

outputDir

string

No

~/Downloads/youtube-thumbnails/YYYY-MM-DD/

Save path

Behaviour: Tries maxresdefault.jpg first; falls back to hqdefault.jpg on 404. Files saved as [videoId].jpg.

Returns: { downloaded: number, outputDir: string, files: { [videoId]: "/absolute/path.jpg" } }


youtube_quota_status

Report estimated quota usage for the current server session. No parameters.

Returns:

{
  "quotaUsed": 103,
  "dailyLimit": 10000,
  "remaining": 9897,
  "note": "Quota resets at midnight Pacific Time. Usage is estimated..."
}

Note: The counter tracks usage within the current server process. It resets when the server restarts, and does not reflect the actual Google-side daily total.

Calculated Metrics

For each video, the server calculates:

Metric

Formula

Engagement rate

(likes + comments) / views

Like-to-view ratio

likes / views

Comment density

comments / views

Days since publish

(now - publishedAt) / 86400000, minimum 1

View velocity

views / days since publish

Quota

YouTube Data API v3 provides 10,000 free units per day.

Operation

Cost

Search (search.list)

100 units

Video details (videos.list, batch 50)

1 unit

Channel details (channels.list, batch 50)

1 unit

Thumbnail download

0 (direct fetch)

A typical full niche analysis: ~103 units. Daily budget allows ~48 analyses per day.

Quota resets at midnight Pacific Time.

Development

npm run dev    # Watch mode — recompiles on changes
npm run build  # One-time build
npm start      # Run the server

Tech stack: TypeScript 5.3, ES2022 target, NodeNext modules, @modelcontextprotocol/sdk ^1.0.0. No runtime dependencies beyond the MCP SDK — uses Node 18+ native fetch for all HTTP calls.

Licence

MIT

Available Tools

6 tools
youtube_analyse_nicheA

High-level niche analysis — the primary entry point for YouTube research. Searches for videos, fetches full metadata, calculates engagement metrics, and returns sorted results with aggregate statistics including median views, engagement rates, top tags, duration distribution, publishing day patterns, and channel size breakdown. Filters out Shorts (<60s) and active live streams automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderNoInitial search order. Default: viewCount
queryYesNiche or keyword(s) to research (e.g. 'generative AI for work and business')
minViewsNoFilter out videos below this view count (applied after fetch)
maxResultsNoNumber of videos to analyse (1-50, default 30)
publishedAfterNoISO 8601 date filter — only include videos published after this date

TDQS

A4/5.0
Behavior4/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 that it filters out Shorts (<60s) and active live streams automatically—an important behavioral trait. It also enumerates the computed metrics (median views, engagement rates, top tags, etc.), giving a clear picture of what the tool does beyond simply 'analysis.' It stops short of explaining potential rate-limit or quota behavior, but for a read-only data aggregation tool, transparency is strong.

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 concise and front-loaded with the core purpose. It packs substantial detail into two sentences without redundancy. Every sentence adds value—first states the primary role, second enumerates metrics and automatic filters. No filler.

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?

With no output schema, the description compensates by listing the aggregate statistics returned (median views, engagement rates, top tags, duration distribution, publishing day patterns, channel size breakdown). It also clarifies filtering behavior. Minor gaps: it does not specify the exact response structure or how results are sorted, but for a high-level analysis tool, the description gives enough context for an agent to anticipate outputs.

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 100%, so each parameter is already described. The tool description adds some contextual meaning (e.g., that minViews is applied after fetch, and that Shorts are filtered automatically), but it does not provide new semantic details for parameters beyond the schema. Baseline 3 is appropriate.

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 a specific verb+resource: 'High-level niche analysis' for YouTube research. It distinguishes from siblings by highlighting that it searches, fetches metadata, computes engagement metrics, and returns aggregate statistics—something none of the sibling tool names suggest. The phrase 'primary entry point' further clarifies its unique role.

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?

It identifies itself as 'the primary entry point for YouTube research,' which implies it should be used first for broad niche analysis. However, it does not explicitly mention when to use sibling tools like youtube_get_video_details or youtube_search_niche as alternatives, nor does it provide exclusion criteria. Some context is present, but explicit guidance is lacking.

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

youtube_get_channel_detailsA

Fetch channel metadata including subscriber count, total views, video count, and creation date. Useful for understanding the competitive landscape — whether top videos come from large or small channels.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdsYesArray of YouTube channel IDs (max 50)

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 the full burden. The verb 'Fetch' implies a read-only operation, and the listed fields give a sense of the response, but there is no mention of quota usage, error behavior, or rate limits. Adding some context about these aspects would improve the 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 is two sentences long, front-loaded with the core action and resource, and the second sentence adds valuable usage context without redundancy. No filler words or unnecessary explanations.

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?

The description explains what the tool returns (subscriber count, total views, etc.) and why it's useful, covering enough to operate effectively. It does not explicitly mention the input parameter or error scenarios, but the schema covers the input, and the tool is simple enough that this description is sufficient. Slightly more detail on output format or edge cases would push it to a 5.

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 parameter 'channelIds' is already well-described in the schema (array, max 50). The description itself does not add parameter-specific details but does reinforce the overall purpose. Baseline 3 is appropriate given the schema's completeness.

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 identifies the tool as fetching channel metadata and lists specific fields (subscriber count, total views, video count, creation date). It distinguishes from siblings by focusing on 'channels' rather than videos or niches, but does not explicitly compare or contrast with alternatives.

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 a clear use case (understanding competitive landscape, assessing channel sizes) but does not mention when not to use it or explicitly name alternative tools. This counts as clear context without exclusions.

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

youtube_get_thumbnailsA

Download thumbnail images for video IDs to a local directory. Enables Claude vision analysis of thumbnail style, composition, text overlays, faces, and colour schemes. Tries maxresdefault first, falls back to hqdefault. No API quota cost.

ParametersJSON Schema
NameRequiredDescriptionDefault
videoIdsYesVideo IDs to download thumbnails for (max 50)
outputDirNoAbsolute path to save thumbnails. Defaults to ~/Downloads/youtube-thumbnails/[date]/

TDQS

A4.3/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 adds valuable details: the fallback strategy ('Tries maxresdefault first, falls back to hqdefault') and the cost implication ('No API quota cost'). While it does not cover error handling or file overwrite behavior, the disclosed traits are sufficient for this simple tool.

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 concise: three sentences that front-load the primary action and then add relevant details (use case, fallback, quota) without waste. Every sentence earns its place.

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

Completeness5/5

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

For a tool with two parameters and no output schema, the description is complete. It explains what the tool does, why it might be used, the fallback behavior, and the cost implication. No important gaps remain given the tool's simplicity.

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 100%, so both parameters are well-documented in the input schema. The description does not add extra parameter semantics beyond what the schema already provides, aligning with the baseline of 3 for high schema coverage.

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 uses a specific verb ('Download') and resource ('thumbnail images for video IDs to a local directory'), clearly distinguishing it from sibling tools that search, get details, or analyse niches. It also explains the intended use case (Claude vision analysis), reinforcing its unique purpose.

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 (e.g., when needing thumbnails for vision analysis) and implicitly differentiates from sibling tools that do not download thumbnails. It lacks explicit exclusions or named alternatives, but the context is unambiguous.

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

youtube_get_video_detailsA

Fetch full metadata and calculated engagement metrics for one or more video IDs. Returns title, description, tags, thumbnails, duration, view/like/comment counts, engagement rate, view velocity, and more. Batches efficiently (50 per API call).

ParametersJSON Schema
NameRequiredDescriptionDefault
videoIdsYesArray of YouTube video IDs (max 50)

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 the full burden. It discloses the return fields (title, description, tags, etc.) and batching efficiency (50 per API call), which adds value. However, it omits details like rate limits, authentication requirements, or error handling, which could impact invocation. This is adequate but not rich.

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, front-loaded with the core purpose, followed by a concise list of return fields and batching behavior. Every word earns its place, with no redundancy or filler.

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?

For a simple single-parameter tool with no output schema, the description provides a comprehensive list of return fields and batching behavior, giving the agent a clear picture of what to expect. Minor gaps exist, such as definitions of 'engagement rate' and 'view velocity' or error scenarios, but for a read-only metadata fetch, the description is largely sufficient.

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% with a single parameter 'videoIds' clearly described as an array of YouTube video IDs (max 50). The description's mention of 'Batches efficiently (50 per API call)' reiterates the schema's max constraint, adding marginal semantic value. Baseline 3 is appropriate given high schema coverage.

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?

Clearly states 'Fetch full metadata and calculated engagement metrics for one or more video IDs' – a specific verb and resource. This distinguishes it from sibling tools like youtube_search_niche, youtube_get_channel_details, and youtube_get_thumbnails by focusing on video ID-based metadata retrieval.

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 implies usage when you have video IDs and want metadata, but it does not explicitly mention when to avoid this tool or name alternatives. The presence of sibling tools like youtube_get_channel_details and youtube_search_niche suggests different use cases, but the description does not reference them, leaving the agent to infer boundaries.

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

youtube_quota_statusA

Returns estimated API quota consumption for the current server session. YouTube Data API v3 has a 10,000 unit daily limit. A typical full niche analysis costs ~103 units.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.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 states what it returns but does not clarify whether the tool makes an API call itself, how the estimate is calculated, or any side effects, leaving a gap for a status tool.

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 three short sentences, front-loading the purpose in the first sentence and providing contextual detail about API limits and typical costs without unnecessary verbosity.

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 simplicity (no params, no output schema), the description provides sufficient context about its purpose and API limits. It could be slightly more explicit about the expected return format, but this is a minor gap.

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 tool has zero parameters and the schema is empty. The baseline for zero parameters is 4, and the description does not need to elaborate on parameter semantics.

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 function with a specific verb ('Returns') and resource ('estimated API quota consumption'), and it distinguishes the tool from siblings like youtube_search_niche or youtube_analyse_niche by focusing solely on quota status.

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 implies usage for monitoring quota before running analyses (e.g., 'A typical full niche analysis costs ~103 units'), but it does not explicitly say when to use this tool versus alternatives or provide exclusions.

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

youtube_search_nicheA

Search YouTube for videos in a niche or category. Returns video IDs and basic metadata sorted by the specified order. Use this for targeted searches when you already have video IDs from a previous search or want raw search results without metric calculations.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderNoSort order. Default: viewCount
queryYesSearch query or niche keyword(s) (e.g. 'Claude Code tutorial', 'AI coding assistant for business')
maxResultsNoNumber of results to return (1-50, default 25)
regionCodeNoISO 3166-1 alpha-2 country code (e.g. IE, GB, US)
publishedAfterNoISO 8601 date — only return videos published after this date (e.g. 2025-01-01T00:00:00Z)

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description must carry behavioral disclosure. It states the output type (video IDs, basic metadata) and sort behavior, and explicitly disclaims metric calculations. However, it omits limitations like quota usage, pagination, or authentication requirements, which are relevant in YouTube API tools. The added context about 'raw results' is useful but incomplete.

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, cleanly front-loaded with the action and result, followed by usage guidance. No redundant wording or filler. 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?

The tool has 5 parameters and no output schema, so the description should specify return value structure more explicitly. 'Basic metadata' is vague—does it include title, channel, publish date? Also no mention of quota or pagination. The presence of youtube_quota_status as a sibling suggests quota is a concern, which should be noted. Overall, it's minimally complete but leaves gaps.

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 input schema already covers all parameters with descriptions (100% coverage), so the description adds little beyond referencing the sort order. It doesn't clarify parameter details further, but the schema is sufficient. Baseline 3 is appropriate.

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 searches YouTube for videos in a niche or category and returns video IDs plus basic metadata sorted by order. This differentiates it from siblings like youtube_get_video_details, youtube_analyse_niche, and youtube_get_thumbnails by focusing on raw search results without metric analysis.

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?

It provides explicit usage context: 'Use this for targeted searches when you already have video IDs from a previous search or want raw search results without metric calculations.' This signals when to prefer this tool over analysis-heavy siblings, though it doesn't name an alternative directly. The phrase about having video IDs is slightly confusing but the overall guidance is helpful.

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.

  1. 6 tool updatesv1.1.0
    • First observedyoutube_analyse_niche
    • First observedyoutube_get_channel_details
    • First observedyoutube_get_thumbnails
    • First observedyoutube_get_video_details
    • First observedyoutube_quota_status
    • First observedyoutube_search_niche

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation3/5

The tools are mostly distinct, but youtube_search_niche and youtube_analyse_niche overlap in purpose—both search a niche, differing only in analysis depth. The description for search_niche is also confusingly worded, mentioning video IDs from a previous search, which blurs its role.

Naming Consistency4/5

All tools use a consistent 'youtube_' prefix with snake_case, and most follow a verb_noun pattern (e.g., get_video_details, analyse_niche). However, 'quota_status' lacks a verb, deviating slightly from the otherwise coherent naming scheme.

Tool Count5/5

With 6 tools, the server is well-scoped for a YouTube research purpose. Each tool covers a necessary function—search, analysis, video details, channel details, thumbnails, and quota—without excess redundancy.

Completeness4/5

The toolset covers core research workflows: search/analyze niches, retrieve video/channel metadata, download thumbnails, and monitor API usage. Minor gaps exist, such as no direct comment retrieval or transcript access, but the main research lifecycle is well-covered.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables interaction with the YouTube Data API, allowing users to search videos, get video and channel details, analyze trends, and fetch video transcripts.
    -
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that enables users to retrieve YouTube transcripts and perform video or channel searches without requiring Google API keys. It supports transcript chunking and provides tools for detailed video content analysis and channel metadata extraction.
    5
    33 npm
    4
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A production-ready MCP server for YouTube integration with intelligent caching. Enables searching videos, retrieving transcripts, analyzing channels, and monitoring live streams via natural language.
    31
    1
    MIT