YouTube MCP Server

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 Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @modelcontextprotocol/server-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>" } } } }

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.

-
security - not tested
F
license - not found
-
quality - not tested

This server allows AI language models to interact with YouTube content through a standardized interface, providing features such as video and channel information retrieval, transcript management, and playlist operations.

  1. Features
    1. Video Information
      1. Transcript Management
        1. Channel Management
          1. Playlist Management
          2. Installation
            1. Installing via Smithery
              1. Manual Installation
              2. Configuration
                1. Using with MCP Client
                  1. YouTube API Setup
                    1. Examples
                      1. Managing Videos
                        1. Managing Channels
                          1. Managing Playlists
                          2. Development
                            1. Contributing
                              1. License