jikime

py-mcp-youtube-toolbox

Community jikime
Updated

py-mcp-youtube-toolbox

smithery badge Version License

An MCP server that provides AI assistants with powerful tools to interact with YouTube, including video searching, transcript extraction, comment retrieval, and more.

Overview

py-mcp-youtube-toolbox provides the following YouTube-related functionalities:

  • Search YouTube videos with advanced filtering options
  • Get detailed information about videos and channels
  • Retrieve video comments with sorting options
  • Extract video transcripts and captions in multiple languages
  • Find related videos for a given video
  • Get trending videos by region
  • Generate summaries of video content based on transcripts
  • Advanced transcript analysis with filtering, searching, and multi-video capabilities

Table of Contents

  • Prerequisites
  • Installation
  • Configure MCP Settings
  • Tools Documentation
    • Video Tools
    • Channel Tools
    • Transcript Tools
    • Prompt Tools
    • Resource Tools
  • Development
  • License

Prerequisites

  1. Python: Install Python 3.12 or higher
  2. YouTube API Key:
    • Go to Google Cloud Console
    • Create a new project or select an existing one
    • Enable the YouTube Data API v3:
      1. Go to "APIs & Services" > "Library"
      2. Search for and enable "YouTube Data API v3"
    • Create credentials:
      1. Go to "APIs & Services" > "Credentials"
      2. Click "Create Credentials" > "API key"
      3. Note down your API key

Installation

Git Clone
git clone https://github.com/jikime/py-mcp-youtube-toolbox.git
cd py-mcp-youtube-toolbox
Configuration
  1. Install UV package manager:
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Create and activate virtual environment:
uv venv -p 3.12
source .venv/bin/activate  # On MacOS/Linux
# or
.venv\Scripts\activate  # On Windows
  1. Install dependencies:
uv pip install -r requirements.txt
  1. Environment variables:
cp env.example .env
vi .env
# Update with your YouTube API key
YOUTUBE_API_KEY=your_youtube_api_key
Using Docker
  1. Build the Docker image:
docker build -t py-mcp-youtube-toolbox .
  1. Run the container:
docker run -e YOUTUBE_API_KEY=your_youtube_api_key py-mcp-youtube-toolbox
Using Local
  1. Run the server:
mcp run server.py
  1. Run the MCP Inspector:
mcp dev server.py

Configure MCP Settings

Add the server configuration to your MCP settings file:

Claude desktop app
  1. To install automatically via Smithery:
npx -y @smithery/cli install @jikime/py-mcp-youtube-toolbox --client claude
  1. To install manuallyopen ~/Library/Application Support/Claude/claude_desktop_config.json

Add this to the mcpServers object:

{
  "mcpServers": {
    "YouTube Toolbox": {
      "command": "/path/to/bin/uv",
      "args": [
        "--directory",
        "/path/to/py-mcp-youtube-toolbox",
        "run",
        "server.py"
      ],
      "env": {
        "YOUTUBE_API_KEY": "your_youtube_api_key"
      }
    }
  }
}
Cursor IDE

open ~/.cursor/mcp.json

Add this to the mcpServers object:

{
  "mcpServers": {
    "YouTube Toolbox": {
      "command": "/path/to/bin/uv",
      "args": [
        "--directory",
        "/path/to/py-mcp-youtube-toolbox",
        "run",
        "server.py"
      ],
      "env": {
        "YOUTUBE_API_KEY": "your_youtube_api_key"
      }
    }
  }
}
for Docker
{
  "mcpServers": {
    "YouTube Toolbox": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "YOUTUBE_API_KEY=your_youtube_api_key",
        "py-mcp-youtube-toolbox"
      ]
    }
  }
}

Tools Documentation

Video Tools

  • search_videos: Search for YouTube videos with advanced filtering options (channel, duration, region, etc.)
  • get_video_details: Get detailed information about a specific YouTube video (title, channel, views, likes, etc.)
  • get_video_comments: Retrieve comments from a YouTube video with sorting options
  • get_related_videos: Find videos related to a specific YouTube video
  • get_trending_videos: Get trending videos on YouTube by region

Channel Tools

  • get_channel_details: Get detailed information about a YouTube channel (name, subscribers, views, etc.)

Transcript Tools

  • get_video_transcript: Extract transcripts/captions from YouTube videos in specified languages
  • get_video_enhanced_transcript: Advanced transcript extraction with filtering, search, and multi-video capabilities

Prompt Tools

  • transcript_summary: Generate summaries of YouTube video content based on transcripts with customizable options

Resource Tools

  • youtube://available-youtube-tools: Get a list of all available YouTube tools
  • youtube://video/{video_id}: Get detailed information about a specific video
  • youtube://channel/{channel_id}: Get information about a specific channel
  • youtube://transcript/{video_id}?language={language}: Get transcript for a specific video

Development

For local testing, you can use the included client script:

# Example: Search videos
uv run client.py search_videos query="MCP" max_results=5

# Example: Get video details
uv run client.py get_video_details video_id=zRgAEIoZEVQ

# Example: Get channel details
uv run client.py get_channel_details channel_id=UCRpOIr-NJpK9S483ge20Pgw

# Example: Get video comments
uv run client.py get_video_comments video_id=zRgAEIoZEVQ max_results=10 order=time

# Example: Get video transcript
uv run client.py get_video_transcript video_id=zRgAEIoZEVQ language=ko

# Example: Get related videos
uv run client.py get_related_videos video_id=zRgAEIoZEVQ max_results=5

# Example: Get trending videos
uv run client.py get_trending_videos region_code=ko max_results=10

# Example: Advanced transcript extraction
uv run client.py get_video_enhanced_transcript video_ids=zRgAEIoZEVQ language=ko format=timestamped include_metadata=true filters.timeRange.start=100 filters.timeRange.end=200 filters.search.query=에이전트 filters.search.caseSensitive=true filters.segment.method=equal filters.segment.count=2

# Example: 

License

MIT License

MCP Server · Populars

MCP Server · New

    AppiumTestDistribution

    MCP Appium Gestures

    This is a Model Context Protocol (MCP) server providing resources and tools for Appium mobile gestures using Actions API..

    lumalabs

    Luma API MCP

    Powered by Ray (video) and Photon (image) models by Luma AI

    Community lumalabs
    yuki-20

    🌽 CornMCP

    CornMCP is an open-source mono repo that gives AI coding agents (Antigravity, Cursor, Claude Code, Codex), token-saving access to your codebase through the Model Context Protocol (MCP).

    Community yuki-20
    hesreallyhim

    DIY Tools MCP Server

    An MCP server that allows users to dynamically add custom tools/functions at runtime

    Community hesreallyhim
    choihyunsus

    n2-qln

    n2-QLN: Intelligent Tool Router & Semantic Search Layer for MCP. Connect 1,000+ tools through 1 interface. Prevent AI model confusion and maximize context window efficiency

    Community choihyunsus