Skip to main content
Glama

py-mcp-youtube-toolbox

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

Related MCP server: YouTube MCP Integration

Table of Contents

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 manually open ~/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 start_time=100 end_time=200 query=에이전트 case_sensitive=true segment_method=equal segment_count=2 # Example:

License

MIT License

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jikime/py-mcp-youtube-toolbox'

If you have feedback or need assistance with the MCP directory API, please join our Discord server