MCP Tools Reference

The Tube Search MCP server provides 10 tools for searching, reading, and analyzing archived YouTube data.

search_channel

Find all known videos from a YouTube channel by searching web archives.

ParameterTypeRequiredDescription
querystringYesChannel URL, @handle, or Channel ID (e.g., UC...)

Returns an array of video metadata including status (LIVE, DELETED, CHECKING).

Channel search queries the database cache first. If the channel hasn't been searched before, it runs a full archive discovery pipeline which may take 1-2 minutes.

search_videos

Full-text search across archived video titles and descriptions.

ParameterTypeRequiredDescription
querystringYesSearch query (supports natural language)
limitnumberNoMax results (default: 20, max: 100)
statusstringNoFilter by status: live, deleted, all
sortstringNorelevance (default) or date-desc
hasSubtitlesbooleanNoOnly videos with subtitles
hasSummarybooleanNoOnly videos with AI summaries

get_video

Get metadata for a specific video.

ParameterTypeRequiredDescription
videoIdstringYesYouTube video ID (11 characters)

Returns: title, description, channelId, channelTitle, duration, uploadDate, viewCount, status, thumbnailUrl, subtitleStatus, hasSummary. For videos enriched via our Yandex.Video provenance pipeline, the response also includes a nested yandex object with the keys internal_id, attribution, preview_url, and scanned_at — see the Yandex Enrichment Provenance subsection below.

Yandex Enrichment Provenance

When get_video returns a nested yandex object, the yandex.attribution field is one of three trust tiers. Use the table below to decide whether to cite a fact about this video directly or seek a second source.

Tier (yandex.attribution value)Recommended actionRationale
db_matchCite directlyThe YouTube ID already existed in our DB attributed to this channel; Yandex provided supplementary metadata (title, duration, upload_date) via NULL-fill. Highest confidence.
yt_dlp_confirmedCite directlyThe YouTube ID was newly discovered by Yandex; yt-dlp independently confirmed the channel attribution against YouTube's live metadata. Independent two-source corroboration.
name_unique_anchor_passedCorroborate firstThe YouTube ID was newly discovered by Yandex; yt-dlp failed or timed out; attribution rests on name-uniqueness plus anchor-verification heuristics (at least 2-of-K LIVE-video title matches). Weaker — confirm with a second source before citing.

When yandex.preview_url is non-null, it returns a short (~5s) animated MP4 preview clip mirrored from Yandex's snapshot — useful for visual confirmation of what the deleted video looked like, but not equivalent to the original full-length content. When preview_url is null, the metadata fields (title, duration, uploadDate) and attribution are still valid; only the preview mirror was unsuccessful.

get_subtitles

Get the full transcript of a video as readable plain text.

ParameterTypeRequiredDescription
videoIdstringYesYouTube video ID

Returns the transcript with timestamps stripped, formatted as readable paragraphs. Works for both live and deleted videos that have archived subtitles.

get_summary

Get the AI-generated summary for a video.

ParameterTypeRequiredDescription
videoIdstringYesYouTube video ID

Returns: tldr, keyPoints (with timestamps), detailedSummary, tags, language. Returns an error if no summary exists — use generate_summary to create one.

generate_summary

Generate an AI summary for a video that has subtitles.

ParameterTypeRequiredDescription
videoIdstringYesYouTube video ID

Triggers generation and polls until complete (up to 60s). Returns the summary if the video already has one. Counts against your daily summary generation limit.

generate_stenogram

Generate a private stenogram (full-text dialogue with speaker tags) from a video transcript. Requires L3+ tier (MCP + API plan). The output is scoped to your user and visible only to you.

ParameterTypeRequiredDescription
videoIdstringYesYouTube video ID (11 characters)
languageenumNoauto (default), en, ru, es, de, pt

Returns: { stenogram, metadata: { llmModel, tokensUsed, promptVersion, generatedAt, language, generationTimeMs } }. Requires a completed transcript (archived or AI-generated subtitles). Emits notifications/progress if a progress token is provided. Counts against apiStenogramsPerDay (shared with the REST route).

generate_stenogram is hidden from tools/list for L<3 clients; any direct invocation from a sub-L3 key returns FORBIDDEN.

browse_summaries

Browse existing AI summaries with optional filters.

ParameterTypeRequiredDescription
tagstringNoFilter by tag (e.g., "music", "education")
channelIdstringNoFilter by channel
languagestringNoFilter by language (e.g., "en", "ru")
pagenumberNoPage number (default: 1)
limitnumberNoResults per page (default: 20)

get_video_status_history

View the status change history of a video.

ParameterTypeRequiredDescription
videoIdstringYesYouTube video ID

Returns an array of status transitions: [{ status, previousStatus, changedAt, source }], newest first.

get_usage

Check your current API usage counters and remaining limits.

No parameters. Returns current counters and limits for searches, FTS queries, subtitle downloads, and summary generations.

← Back to MCP Guide