MCP HubMCP Hub
ZubeidHendricks

youtube-mcp-server

by: ZubeidHendricks

MCP Server for YouTube API, enabling video management, Shorts creation, and advanced analytics

106created 29/12/2024
Visit
YouTube
analytics

📌Overview

Purpose: The YouTube MCP Server serves as an interface for AI language models to interact with YouTube content through Model Context Protocol (MCP).

Overview: This framework enables seamless access to YouTube's video, transcript, channel, and playlist data, providing essential functionalities to enhance AI capabilities in content interaction.

Key Features:

  • Video Information: Retrieve detailed information about videos, including title, description, duration, and statistics like views and likes, as well as perform searches across YouTube.

  • Transcript Management: Access video transcripts with support for multiple languages, including timestamped captions, allowing users to search within transcripts effectively.

  • Channel Management: Acquire details about channels, list videos and playlists associated with channels, and access channel statistics for a comprehensive view of channel content.

  • Playlist Management: Manage playlists by listing items, retrieving details, and accessing video transcripts for enhanced content understanding.


YouTube MCP Server

A Model Context Protocol (MCP) server implementation for YouTube, enabling AI language models to interact with YouTube content through a standardized interface.

Features

Video Information

  • Get video details (title, description, duration, etc.)
  • List channel videos
  • Get video statistics (views, likes, comments)
  • Search videos across YouTube

Transcript Management

  • Retrieve video transcripts
  • Support for multiple languages
  • Get timestamped captions
  • Search within transcripts

Channel Management

  • Get channel details
  • List channel playlists
  • Get channel statistics
  • Search within channel content

Playlist Management

  • List playlist items
  • Get playlist details
  • Search within playlists
  • Get playlist video transcripts

Installation

Installing via Smithery

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

npx -y @smithery/cli install @ZubeidHendricks/youtube --client claude

Manual Installation

npm install @modelcontextprotocol/server-youtube

Configuration

Set the following environment variables:

  • YOUTUBE_API_KEY: Your YouTube Data API key
  • YOUTUBE_TRANSCRIPT_LANG: Default language for transcripts (optional, defaults to 'en')

Using with MCP Client

Add this to your MCP client configuration (e.g. Claude Desktop):

{
  "mcpServers": {
    "youtube": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-youtube"],
      "env": {
        "YOUTUBE_API_KEY": "<YOUR_API_KEY>"
      }
    }
  }
}

Using with VS Code

For one-click installation, use the install links provided in your environment.

Manual Installation in VS Code

Add the following JSON block to your User Settings (JSON) file in VS Code (Preferences: Open User Settings (JSON)):

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "apiKey",
        "description": "YouTube API Key",
        "password": true
      }
    ],
    "servers": {
      "youtube": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-youtube"],
        "env": {
          "YOUTUBE_API_KEY": "${input:apiKey}"
        }
      }
    }
  }
}

Optionally, add it to a file called .vscode/mcp.json in your workspace:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "apiKey",
      "description": "YouTube API Key",
      "password": true
    }
  ],
  "servers": {
    "youtube": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-youtube"],
      "env": {
        "YOUTUBE_API_KEY": "${input:apiKey}"
      }
    }
  }
}

YouTube API Setup

  1. Go to Google Cloud Console.
  2. Create a new project or select an existing one.
  3. Enable the YouTube Data API v3.
  4. Create API credentials (API key).
  5. Copy the API key for configuration.

Examples

Managing Videos

// Get video details
const video = await youtube.videos.getVideo({
  videoId: "video-id"
});

// Get video transcript
const transcript = await youtube.transcripts.getTranscript({
  videoId: "video-id",
  language: "en"
});

// Search videos
const searchResults = await youtube.videos.searchVideos({
  query: "search term",
  maxResults: 10
});

Managing Channels

// Get channel details
const channel = await youtube.channels.getChannel({
  channelId: "channel-id"
});

// List channel videos
const videos = await youtube.channels.listVideos({
  channelId: "channel-id",
  maxResults: 50
});

Managing Playlists

// Get playlist items
const playlistItems = await youtube.playlists.getPlaylistItems({
  playlistId: "playlist-id",
  maxResults: 50
});

// Get playlist details
const playlist = await youtube.playlists.getPlaylist({
  playlistId: "playlist-id"
});

Development

# Install dependencies
npm install

# Run tests
npm test

# Build
npm run build

# Lint
npm run lint

Contributing

See CONTRIBUTING.md for information about contributing to this repository.

License

This project is licensed under the MIT License - see the LICENSE file for details.


YouTube MCP Server (Quick Setup)

A YouTube API integration using the Model Context Protocol.

Setup

  1. Clone the repository

  2. Install dependencies:

    npm install
    
  3. Copy .env.example to .env:

    cp .env.example .env
    
  4. Edit .env and add your YouTube API key.

  5. Start the server:

    npm start
    

Environment Variables

  • YOUTUBE_API_KEY: Your YouTube Data API v3 key (get it from Google Cloud Console)

Development

  1. To run in development mode with auto-reload:

    npm run dev
    
  2. To build:

    npm run build
    

Security Note

Always keep your API keys secure and never commit them to version control.