Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
YOUTUBE_API_KEYNoSingle YouTube Data API v3 key, accepted as an alternative to YOUTUBE_API_KEYS. Required for the Data API tools.
YOUTUBE_API_KEYSNoComma-separated pool of YouTube Data API v3 keys, rotated when quota is exceeded. Required for the Data API tools.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_videosB

Search videos/channels/playlists — port of youtube-mcp search_videos.

Layer: YouTube Data API (key required). Quota: 100 units.
Returns {success, query, total_results, next_page_token, results[]}.
youtube_searchC

Search with date/channel/duration filters — port of tube-bridge youtube_search.

Layer 1/2 (Data API, 100 units) → Layer 3 (yt-dlp, 0 units) on exhaustion.
Returns {query, source, total_results, next_page_token, videos[]}.
search_channelsC

Search channels enriched with stats — port of youtube-mcp search_channels.

Layer: Data API. Quota: 101 units (100 search + 1 channels batch).
get_channel_detailsB

Channel metadata by id/@handle/username — port of youtube-mcp.

Layer: Data API. Quota: 1 unit. Includes ``uploads_playlist_id``.
find_breakout_creatorsC

New channels with subscriber velocity — port of youtube-mcp find_breakout_growth_channels.

Layer: Data API. Quota: 101 units.
channels_getChannelB

Raw channel + normalizedMetadata — port of youtube-mcp-server (zubeid).

Layer: Data API. Quota: 1 unit; **+100 units** when ``include_latest_upload``
is true (the original resolves the newest upload with one search.list).
Set it to false when you only need country/joinedAt/emailsFound.
get_channel_rss_videosB

Latest uploads from the Atom feed — port of youtube-mcp get_channel_rss_videos.

Layer 4 (RSS). Quota: 0 units, no key. Feed exposes at most 15 entries.
youtube_get_video_infoC

Rich metadata for one video — port of tube-bridge youtube_get_video_info.

Layer 1/2 (1 unit) → Layer 3 (yt-dlp, 0 units). ``duration`` in seconds.
youtube_get_channel_videosB

Recent uploads via yt-dlp — port of tube-bridge youtube_get_channel_videos.

Layer 3 (0 units, no key). Falls back to Layer 4 (RSS) if yt-dlp is 403'd
and the argument is a ``UC…`` channel id.
youtube_get_transcriptC

Video transcript — port of tube-bridge youtube_get_transcript.

Layer: public timedtext. Quota: 0 units, no key.
get_first_published_dateC

Oldest publication date of a channel. Did not exist in any original.

Layer: Data API. Quota: 1 unit (channel creation proxy), plus 1 unit per 50
uploads when enumeration runs — when the channel is younger than
``enumerate_if_younger_than_days`` or has at most
``enumerate_if_video_count_under`` uploads (0 = never enumerate on size).
max_views_in_channelA

Highest view count among uploads since since_date. New tool.

Layer: Data API. Quota: 1 + 1 per 50 uploads scanned + 1 per 50 videos in
the window (``max_pages`` default caps at 500 uploads).
avg_durationB

Mean duration of the last N uploads. New tool.

Layer: Data API. Quota: 2 units for N ≤ 50 (1 playlist page + 1 videos batch).
find_emerging_channelsB

Emerging channels by composite filters — the product tool.

Layer: Data API. Quota: 100 per discovery page + 1 per 50 channels enriched
+ 3–5 per channel verified (~130–450 for a default run).
``small_channel_video_cap`` also enumerates channels with few uploads, so an
old channel that only started publishing last week is still caught.
Shortfalls are reported, never padded: filters are not relaxed automatically.
get_quota_statusA

Session quota ledger: units spent per tool and per endpoint, layers used.

No API call, 0 units. The Data API does not expose remaining quota, so this
is a session-local tally against the 10,000/day free tier per key.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.7/5.0

Scored across 15 tools

Disambiguation2/5

Several tool pairs have near-identical purposes: search_videos vs youtube_search (both video search, one with filters/fallback), get_channel_details vs channels_getChannel (both channel metadata by id/handle), and get_channel_rss_videos vs youtube_get_channel_videos (both 'recent uploads of a channel'). Descriptions explain layer/quota differences, but an agent choosing by intent alone would frequently misselect, and find_breakout_creators vs find_emerging_channels vs search_channels further blur the discovery space.

Naming Consistency2/5

Conventions are mixed: some tools carry a youtube_ namespace prefix (youtube_search, youtube_get_video_info), others are bare snake_case (search_videos, avg_duration), and one is camelCase with a resource prefix (channels_getChannel). Verb styles also vary (get_/find_/search_/avg_/max_), so the name gives little predictable signal about which layer or operation a tool uses.

Tool Count3/5

15 tools is at the upper edge of the reasonable band and the count is inflated by near-duplicate ports (two search tools, two channel-detail tools, two recent-uploads tools) rather than by distinct capabilities. A consolidated surface would need roughly 10-11 tools for the same coverage.

Completeness4/5

Coverage is broad for a YouTube data-collection server: search, channel/video metadata, transcripts, RSS, channel analytics (avg duration, max views, first publish date), discovery, and quota accounting. Gaps exist around playlists (only searchable, no playlist fetch/list) and comments, but core workflows are reachable.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues