Skip to main content
Glama

@inlustris/youtube-mcp

Ground your AI agents in YouTube's best content — no API keys, zero config.

NPM Version License: MIT

YouTube is the world's largest library of expert knowledge — tutorials, talks, reviews, deep dives. But AI agents can't watch videos.

This MCP server bridges that gap. It gives your agent access to YouTube transcripts, search, channel data, and video screenshots through simple tools. No Google API keys. No OAuth. No setup.

Built with FastMCP and youtubei.js.

Why YouTube for AI grounding?

Web search is noisy. YouTube content is ranked, reviewed, and curated — videos with high view counts, reputable creators, and timestamped transcripts that make it ideal for LLM context. Instead of scraping forums or blogs, your agent can pull the exact transcript from a relevant video, search across channels, or capture a screenshot of a specific moment.

This isn't another "AI skill" you have to maintain. It's a single npm package that works immediately.

Related MCP server: youtube-mcp

What you get

Tool

Purpose

get_transcript

Video transcript with timestamps, or plain text via plainText. Optionally strip sponsor segments via skipSponsor. Transcripts are cached in-memory — subsequent fetches are instant.

get_video_frame

Screenshot at any timestamp. Full quality when yt-dlp is available; falls back gracefully.

search_videos

Search YouTube with sort by relevance, date, rating, view count.

search_channels

Find channels by query.

get_channel_videos

List every video from a channel.

Install

npm install -g @inlustris/youtube-mcp

Add to any MCP client:

{
  "mcpServers": {
    "youtube": {
      "command": "npx",
      "args": ["-y", "@inlustris/youtube-mcp@latest"]
    }
  }
}

Works with Claude Desktop, Cursor, opencode, VS Code Copilot, and any MCP-compatible agent.

Full-quality screenshots (optional)

get_video_frame works out of the box using YouTube storyboards (320×180). For full-resolution captures (720p, 1080p, 4K), install the system tools:

brew install yt-dlp ffmpeg

The tool detects yt-dlp automatically and upgrades itself — no config changes needed.

SponsorBlock

Pass skipSponsor: true to get_transcript. It fetches sponsor timestamps from the SponsorBlock API (no auth, free) and removes sponsored content from the transcript. Great for getting clean, ad-free video context.

Use cases

  • Research agents: Pull transcripts from expert talks, conference presentations, or technical deep-dives instead of skimming blog posts.

  • Content analysis: Search for relevant YouTube content by topic, then extract transcripts at scale.

  • Visual grounding: Capture screenshots at key moments alongside transcripts for multimodal understanding.

  • Learning tools: Let users ask questions about specific video timestamps and get grounded answers.

Development

npm install
npm run dev        # hot-reload
npm test           # 31 tests
npm run build      # production bundle
src/
├── index.ts
├── server/server.ts
├── core/
│   ├── tools.ts
│   ├── resources.ts
│   └── services/
│       ├── youtube-service.ts
│       ├── sponsorblock-service.ts
│       └── screenshot-service.ts
└── __tests__/

License

MIT

Available Tools

5 tools
get_channel_videosA

Retrieves a list of videos from a specified YouTube channel. This tool is useful for getting all videos uploaded by a specific channel.

Inputs: channelId (required), maxResults.

get_transcriptB

Retrieves the full transcript of a specified YouTube video. This tool is useful for understanding video content without watching it, or for extracting textual information from videos. FORMATTING GUIDANCE (optional - user instructions override): When creating summaries, consider using: Key Points with Timestamps: Use [MM:SS] or [HH:MM:SS] inline references. Structure: Break into logical sections. Context: Include video title and channel. Example: 'The speaker explains TypeScript generics [05:30] and shows practical examples [08:15].' This formatting is optional - always follow any specific user instructions instead.

Inputs: videoUrl (required), chunkSize, plainText, skipSponsor, +2 more.

get_video_frameA

Captures a screenshot from a YouTube video at a specified timestamp. Requires yt-dlp for full-quality captures; falls back to lower-resolution YouTube storyboards (320x180 max) if yt-dlp is not installed.

Inputs: videoUrl (required), timestamp (required), quality.

search_channelsC

Searches YouTube for channels matching the specified query. You can specify a sort order for the results (default: rating).

Inputs: query (required), sortBy.

search_videosA

Searches YouTube for videos matching the specified query. Returns a list of video results with title, video ID, and channel information. Results are sorted by rating by default for better quality content.

Inputs: query (required), sortBy.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action: channel videos, video transcript, video frame, channel search, and video search. No overlap in purpose.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern using snake_case (e.g., get_transcript, search_channels). No mixing of styles.

    Tool Count5/5

    Five tools is appropriate for a YouTube MCP server, covering core content retrieval and search without being excessive or insufficient.

    Completeness4/5

    The set covers content extraction well (videos, transcripts, frames, search) but lacks metadata operations like get_video_info or channel details, which are minor gaps.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community 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 the extraction of transcripts and detailed metadata from YouTube videos. It allows users to retrieve video information like titles and descriptions, as well as transcripts with optional timestamps and language selection.
      2
      14 PyPI
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that enables searching YouTube and retrieving high-accuracy video transcripts using local Whisper AI transcription without requiring an API key. It supports single or batch processing and provides transcripts in multiple formats including text, JSON, and SRT.
      35 PyPI
      3
      Apache 2.0