coyaSONG_youtube-mcp-server

coyaSONG_youtube-mcp-server

0

YouTube MCP Server is a Model Context Protocol server allowing users to interact with YouTube data. It includes features for querying videos, channels, comments, and transcripts with advanced filtering and analysis tools.

YouTube MCP Server

smithery badge

A Model Context Protocol (MCP) server for interacting with YouTube data. This server provides resources and tools to query YouTube videos, channels, comments, and transcripts through a stdio interface.

Features

  • Search for YouTube videos with advanced filtering options
  • Get detailed information about specific videos and channels
  • Compare statistics across multiple videos
  • Discover trending videos by region and category
  • Analyze channel performance and video statistics
  • Retrieve video comments and transcripts/captions
  • Generate video analysis and transcript summaries

Prerequisites

  • Node.js (v16+)
  • YouTube Data API key

Installation

Installing via Smithery

To install YouTube MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @coyaSONG/youtube-mcp-server --client claude

Installing Manually

  1. Clone this repository:

    git clone https://github.com/coyaSONG/youtube-mcp-server.git
    cd youtube-mcp-server
    
  2. Install dependencies:

    npm install
    
  3. Create a .env file in the root directory:

    YOUTUBE_API_KEY=your_youtube_api_key_here
    PORT=3000
    

Usage

Building and Running

  1. Build the project:

    npm run build
    
  2. Run the server:

    npm start
    
  3. Run in development mode:

    npm run dev
    
  4. Clean build artifacts:

    npm run clean
    

Docker Deployment

The project includes a Dockerfile for containerized deployment:

# Build the Docker image
docker build -t youtube-mcp-server .

# Run the container
docker run -p 3000:3000 --env-file .env youtube-mcp-server

API Reference

Resources

  • youtube://video/{videoId} - Get detailed information about a specific video
  • youtube://channel/{channelId} - Get information about a specific channel
  • youtube://transcript/{videoId} - Get transcript for a specific video
    • Optional query parameter: ?language=LANGUAGE_CODE (e.g., en, ko, ja)

Tools

Basic Tools
  • search-videos - Search for YouTube videos with advanced filtering options
  • get-video-comments - Get comments for a specific video
  • get-video-transcript - Get transcript for a specific video with optional language
Statistical Tools
  • get-video-stats - Get statistical information for a specific video
  • get-channel-stats - Get subscriber count, view count, and other channel statistics
  • compare-videos - Compare statistics across multiple videos
Discovery Tools
  • get-trending-videos - Retrieve trending videos by region and category
  • get-video-categories - Get available video categories for a specific region
Analysis Tools
  • analyze-channel-videos - Analyze performance trends of videos from a specific channel

Prompts

  • video-analysis - Generate an analysis of a YouTube video
  • transcript-summary - Generate a summary of a video based on its transcript

Examples

Accessing a Video Transcript

youtube://transcript/dQw4w9WgXcQ

Getting a Transcript in a Specific Language

youtube://transcript/dQw4w9WgXcQ?language=en

Using the Statistical Tools

// Get video statistics
{
  "type": "tool",
  "name": "get-video-stats",
  "parameters": {
    "videoId": "dQw4w9WgXcQ"
  }
}

// Compare multiple videos
{
  "type": "tool",
  "name": "compare-videos",
  "parameters": {
    "videoIds": ["dQw4w9WgXcQ", "9bZkp7q19f0"]
  }
}

Using the Transcript Summary Prompt

{
  "type": "prompt",
  "name": "transcript-summary",
  "parameters": {
    "videoId": "dQw4w9WgXcQ",
    "language": "en"
  }
}

Error Handling

The server handles various error conditions, including:

  • Invalid API key
  • Video or channel not found
  • Transcript not available
  • Network issues

License

MIT

Acknowledgements