A Model Context Protocol (MCP) server implementation for YouTube, enabling AI language models to interact with YouTube content through a standardized interface.
To install YouTube MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @ZubeidHendricks/youtube --client claude
npm install @modelcontextprotocol/server-youtube
Set the following environment variables:
YOUTUBE_API_KEY
: Your YouTube Data API keyYOUTUBE_TRANSCRIPT_LANG
: Default language for transcripts (optional, defaults to 'en')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>"
}
}
}
}
For one-click installation, click one of the install buttons below:
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", "@modelcontextprotocol/server-youtube"],
"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", "@modelcontextprotocol/server-youtube"],
"env": {
"YOUTUBE_API_KEY": "${input:apiKey}"
}
}
}
}
// 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
});
// 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
});
// 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"
});
# Install dependencies
npm install
# Run tests
npm test
# Build
npm run build
# Lint
npm run lint
See CONTRIBUTING.md for information about contributing to this repository.
This project is licensed under the MIT License - see the LICENSE file for details.# YouTube MCP Server
A YouTube API integration using the Model Context Protocol.
npm install
.env.example
to .env
:
cp .env.example .env
.env
and add your YouTube API keynpm start
YOUTUBE_API_KEY
: Your YouTube Data API v3 key (get it from Google Cloud Console)npm run dev
npm run build
Always keep your API keys secure and never commit them to version control.
Seamless access to top MCP servers powering the future of AI integration.