JUHE API Marketplace
smith-nathanh avatar
MCP Server

yt-fetch

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.

0
GitHub Stars
8/23/2025
Last Updated
MCP Server Configuration
1{
2 "name": "yt-fetch",
3 "command": "uv",
4 "args": [
5 "run",
6 "--project",
7 "/path/to/your/yt-fetch",
8 "yt-fetch"
9 ],
10 "env": {
11 "YOUTUBE_API_KEY": "your-youtube-api-key-here"
12 }
13}
JSON13 lines

README Documentation

yt-fetch MCP Server

yt-fetch is a Model-Context-Protocol (MCP) server designed to provide tools and resources for interacting with the YouTube metadata and transcripts. It allows a client (like Claude Desktop) to search for videos, retrieve video and channel details, analyze trends, and fetch video transcripts.

Features

  • Search Videos: Comprehensive search with filters for date, duration, order, and more.
  • Video & Channel Details: Fetch detailed metadata for specific videos and channels.
  • Transcript Analysis: Extract and analyze video transcripts.
  • Trending Videos: Get insights into trending videos by region and category.
  • Custom Filtering: Apply advanced filters on video lists based on views, duration, and keywords.

Tools

The server exposes the following tools:

Tool NameDescription
search_videosSearch YouTube for videos with various filters and sorting options.
get_video_detailsGet detailed information about a specific YouTube video.
get_channel_infoGet information about a YouTube channel.
filter_videosApply custom filters to a list of videos.
get_transcriptsExtract transcripts from selected videos for detailed analysis.
trending_analysisGet and analyze trending videos in specific categories.

Resources

The server provides the following resources:

URIDescription
youtube://search/{query}Cached search results for YouTube videos with metadata.
youtube://video/{video_id}/metadataFull metadata for a specific YouTube video including stats and details.
youtube://channel/{channel_id}Channel information including stats, description, and recent videos.

Setup and Installation

This project uses uv for dependency management.

  1. Install uv: If you don't have uv, install it using the recommended command from Astral:

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  2. Create a virtual environment and install dependencies:

    uv venv
    uv pip install -e .
    
  3. Set up your YouTube API Key: You need a YouTube Data API v3 key. Once you have it, set it as an environment variable:

    export YOUTUBE_API_KEY="your-youtube-api-key-here"
    

    For persistent storage, you can add this to your shell's configuration file (e.g., .zshrc, .bashrc).

Running the Server

You can run the server directly from your terminal:

uv run yt-fetch

The server will start and listen for requests over stdio.

Automated Claude Desktop Configuration

For a seamless setup with Claude Desktop, you can use the included setup_mcp.sh script. This script will automatically detect your operating system, find your Claude Desktop configuration directory, and create the necessary claude_desktop_config.json file for you.

Before running the script, make sure you have set the YOUTUBE_API_KEY environment variable.

To run the script, execute the following command from the root of the project:

./setup_mcp.sh

The script will:

  1. Verify that your YOUTUBE_API_KEY is set.
  2. Determine the correct path for your Claude Desktop configuration.
  3. Generate the claude_desktop_config.json with the correct project path and your API key.

After running the script, simply restart Claude Desktop, and the yt-fetch server will be available.

Claude Desktop Configuration

To use this server with an MCP client like Claude Desktop, you need to configure it in your claude_desktop_config.json. This file tells the client how to start and communicate with the server.

Here is an example configuration. Place this in your Claude Desktop configuration file:

{
  "mcpServers": {
    "yt-fetch": {
      "command": "uv",
      "args": [
        "run",
        "--project",
        "/path/to/your/yt-fetch", // <-- IMPORTANT: Change this to the absolute path of the project
        "yt-fetch"
      ],
      "env": {
        "YOUTUBE_API_KEY": "your-youtube-api-key-here" // <-- IMPORTANT: Replace with your actual key
      }
    }
  }
}

Key points for the configuration:

  • "yt-fetch": This is the name you'll use to refer to the server in your client.
  • command: The executable to run. We use uv.
  • args: The arguments to pass to the command.
    • --project: Make sure to provide the absolute path to the root of this yt-fetch repository.
    • yt-fetch: This is the script name defined in pyproject.toml.
  • env: Environment variables to set for the server process. You must provide your YOUTUBE_API_KEY here.

Quick Install

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source