Enables AI language models to interact with YouTube content, including getting video details, retrieving transcripts, managing channels, searching videos, and accessing playlist information
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@YouTube MCP Serverget the transcript for video dQw4w9WgXcQ"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: YouTube Translate MCP
Installation
Quick Setup for Claude Desktop
Install the package:
npm install -g zubeid-youtube-mcp-serverAdd to your Claude Desktop configuration (
~/Library/Application Support/Claude/claude_desktop_config.jsonon macOS or%APPDATA%\Claude\claude_desktop_config.jsonon Windows):
{
"mcpServers": {
"zubeid-youtube-mcp-server": {
"command": "zubeid-youtube-mcp-server",
"env": {
"YOUTUBE_API_KEY": "your_youtube_api_key_here"
}
}
}
}Alternative: Using NPX (No Installation Required)
Add this to your Claude Desktop configuration:
{
"mcpServers": {
"youtube": {
"command": "npx",
"args": ["-y", "zubeid-youtube-mcp-server"],
"env": {
"YOUTUBE_API_KEY": "your_youtube_api_key_here"
}
}
}
}Installing via Smithery
To install YouTube MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @ZubeidHendricks/youtube --client claudeConfiguration
Set the following environment variables:
YOUTUBE_API_KEY: Your YouTube Data API key (required)YOUTUBE_TRANSCRIPT_LANG: Default language for transcripts (optional, defaults to 'en')
Using with VS Code
For one-click installation, click one of the install buttons below:
Manual Installation
If you prefer manual installation, first check the install buttons at the top of this section. Otherwise, follow these steps:
Add the following JSON block to your User Settings (JSON) file in VS Code. You can do this by pressing Ctrl + Shift + P and typing Preferences: Open User Settings (JSON).
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "apiKey",
"description": "YouTube API Key",
"password": true
}
],
"servers": {
"youtube": {
"command": "npx",
"args": ["-y", "zubeid-youtube-mcp-server"],
"env": {
"YOUTUBE_API_KEY": "${input:apiKey}"
}
}
}
}
}Optionally, you can 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", "zubeid-youtube-mcp-server"],
"env": {
"YOUTUBE_API_KEY": "${input:apiKey}"
}
}
}
}YouTube API Setup
Go to Google Cloud Console
Create a new project or select an existing one
Enable the YouTube Data API v3
Create API credentials (API key)
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 lintContributing
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.