YouTube MCP
Gerencie vídeos do YouTube, crie Shorts e obtenha análises usando a API do YouTube.
Documentação
Servidor YouTube MCP
Uma implementação de servidor Model Context Protocol (MCP) para YouTube, permitindo que modelos de linguagem de IA interajam com o conteúdo do YouTube por meio de uma interface padronizada.
Site: zubeidhendricks.github.io/youtube-mcp-server
Ferramentas Disponíveis
O servidor atualmente expõe 10 ferramentas MCP.
| Ferramenta | Descrição | Parâmetros Obrigatórios | Parâmetros Opcionais |
|---|---|---|---|
videos_getVideo | Obter informações detalhadas sobre um vídeo do YouTube | videoId | parts |
videos_searchVideos | Pesquisar vídeos no YouTube | query | maxResults, order, publishedAfter, publishedBefore, channelId, uniqueChannels, channelMinSubscribers, channelMaxSubscribers, channelLastUploadAfter, channelLastUploadBefore, creatorOnly, sortBy |
transcripts_getTranscript | Obter a transcrição de um vídeo do YouTube | videoId | language |
channels_getChannel | Obter informações sobre um canal do YouTube | channelId | Nenhum |
channels_getChannels | Obter informações sobre vários canais do YouTube | channelIds | parts, includeLatestUpload |
channels_searchChannels | Pesquisar canais do YouTube por identificador, nome ou consulta | query | maxResults, order, channelType, minSubscribers, maxSubscribers, lastUploadAfter, lastUploadBefore, creatorOnly, sortBy |
channels_findCreators | Encontrar canais de criadores a partir de menções em vídeos com filtros de tamanho de canal e atividade | query | maxResults, order, videoPublishedAfter, videoPublishedBefore, channelMinSubscribers, channelMaxSubscribers, channelLastUploadAfter, channelLastUploadBefore, creatorOnly, sortBy, sampleVideosPerChannel |
channels_listVideos | Obter vídeos de um canal específico | channelId | maxResults |
playlists_getPlaylist | Obter informações sobre uma playlist do YouTube | playlistId | Nenhum |
playlists_getPlaylistItems | Obter vídeos de uma playlist do YouTube | playlistId | maxResults |
Parâmetros das Ferramentas
videos_getVideo
videoId(string): O ID do vídeo do YouTube.parts(string[], opcional): Partes específicas do recurso de vídeo a recuperar.
videos_searchVideos
query(string): Consulta de pesquisa.maxResults(number, opcional): Número máximo de resultados a retornar.order(string, opcional): Ordenação de resultados, comorelevanceoudate.publishedAfter(string, opcional): Incluir apenas vídeos publicados após esta data ISO 8601.publishedBefore(string, opcional): Incluir apenas vídeos publicados antes desta data ISO 8601.channelId(string, opcional): Restringir resultados a um canal específico.uniqueChannels(boolean, opcional): Retornar apenas um vídeo por canal exclusivo.channelMinSubscribers/channelMaxSubscribers(number, opcional): Filtrar vídeos correspondentes pela faixa de inscritos do canal.channelLastUploadAfter/channelLastUploadBefore(string, opcional): Filtrar vídeos correspondentes pela atividade de upload mais recente do canal.creatorOnly(boolean, opcional): Restringir resultados a canais heuristicamente classificados como criadores.sortBy(string, opcional): Suportarelevance,subscribers_asc,subscribers_desc,indie_priorityerecent_activity.
transcripts_getTranscript
videoId(string): O ID do vídeo do YouTube.language(string, opcional): Código do idioma da transcrição. Recorre aYOUTUBE_TRANSCRIPT_LANGouen.
channels_getChannel
channelId(string): O ID do canal do YouTube.
As respostas agora incluem:
latestVideoPublishedAtnormalizedMetadata- inclui
country,defaultLanguage,joinedAt,customUrl,emailsFound,contactLinkse campos heurísticos de criador versus marca
- inclui
channels_getChannels
channelIds(string[]): Uma lista de IDs de canais do YouTube.includeLatestUpload(boolean, opcional): Se deve incluirlatestVideoPublishedAt. O padrão étrue.
channels_searchChannels
query(string): Consulta de pesquisa de canal ou identificador.maxResults(number, opcional): Número máximo de canais a retornar.order(string, opcional): Ordenação de resultados, comorelevance.channelType(string, opcional): Restringir a pesquisa a um tipo de canal.minSubscribers/maxSubscribers(number, opcional): Filtrar canais por faixa de inscritos.lastUploadAfter/lastUploadBefore(string, opcional): Filtrar canais pela atividade de upload mais recente.creatorOnly(boolean, opcional): Restringir resultados a canais heuristicamente classificados como criadores.sortBy(string, opcional): Suportarelevance,subscribers_asc,subscribers_desc,indie_priorityerecent_activity.
channels_findCreators
query(string): Consulta de tópico, jogo ou menção para descobrir canais a partir de vídeos correspondentes.videoPublishedAfter/videoPublishedBefore(string, opcional): Filtros de recência para os vídeos correspondentes.channelMinSubscribers/channelMaxSubscribers(number, opcional): Filtros de faixa de inscritos para os canais retornados.channelLastUploadAfter/channelLastUploadBefore(string, opcional): Filtros de atividade de upload mais recente para os canais retornados.creatorOnly(boolean, opcional): Restringir resultados a canais heuristicamente classificados como criadores.sortBy(string, opcional): Suportarelevance,subscribers_asc,subscribers_desc,indie_priorityerecent_activity.sampleVideosPerChannel(number, opcional): Quantos vídeos correspondentes incluir por canal retornado.
channels_listVideos
channelId(string): O ID do canal do YouTube.maxResults(number, opcional): Número máximo de vídeos a retornar.
playlists_getPlaylist
playlistId(string): O ID da playlist do YouTube.
playlists_getPlaylistItems
playlistId(string): O ID da playlist do YouTube.maxResults(number, opcional): Número máximo de itens da playlist a retornar.
Instalação
Configuração Rápida para Claude Desktop
- Instale o pacote:
npm install -g zubeid-youtube-mcp-server
- Adicione à sua configuração do Claude Desktop (
~/Library/Application Support/Claude/claude_desktop_config.jsonno macOS ou%APPDATA%\Claude\claude_desktop_config.jsonno Windows):
{
"mcpServers": {
"zubeid-youtube-mcp-server": {
"command": "zubeid-youtube-mcp-server",
"env": {
"YOUTUBE_API_KEY": "your_primary_youtube_api_key",
"YOUTUBE_API_KEY2": "your_secondary_youtube_api_key",
"YOUTUBE_API_KEY3": "your_tertiary_youtube_api_key"
}
}
}
}
Alternativa: Usando NPX (Sem Instalação Necessária)
Adicione isto à sua configuração do Claude Desktop:
{
"mcpServers": {
"youtube": {
"command": "npx",
"args": ["-y", "zubeid-youtube-mcp-server"],
"env": {
"YOUTUBE_API_KEY": "your_primary_youtube_api_key",
"YOUTUBE_API_KEY2": "your_secondary_youtube_api_key",
"YOUTUBE_API_KEY3": "your_tertiary_youtube_api_key"
}
}
}
}
Instalando via Smithery
Para instalar o YouTube MCP Server para Claude Desktop automaticamente via Smithery:
npx -y @smithery/cli install @ZubeidHendricks/youtube --client claude
Configuração
Defina as seguintes variáveis de ambiente:
YOUTUBE_API_KEY: Chave primária da API de Dados do YouTubeYOUTUBE_API_KEY2: Chave de API secundária de fallbackYOUTUBE_API_KEY3: Terceira chave de API de fallbackYOUTUBE_TRANSCRIPT_LANG: Idioma padrão para transcrições (opcional, padrão é 'en')
Pelo menos uma das YOUTUBE_API_KEY, YOUTUBE_API_KEY2 ou YOUTUBE_API_KEY3 deve ser definida. Quando uma solicitação falha porque uma chave esgotou sua cota, o servidor tenta novamente a mesma solicitação com a próxima chave configurada.
Usando com VS Code
Para instalação com um clique, clique em um dos botões de instalação abaixo:
Instalação Manual
Se preferir instalação manual, primeiro verifique os botões de instalação no topo desta seção. Caso contrário, siga estes passos:
Adicione o seguinte bloco JSON ao arquivo User Settings (JSON) no VS Code. Você pode fazer isso pressionando Ctrl + Shift + P e digitando 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}"
}
}
}
}
}
Opcionalmente, você pode adicioná-lo a um arquivo chamado .vscode/mcp.json no seu 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}"
}
}
}
}
Desenvolvimento
# Install dependencies
npm install
# Build
npm run build
# Start the server (requires at least one configured YouTube API key)
npm start
# Development mode with auto-rebuild
npm run dev
Docker
A imagem Docker incluída inicia o servidor via HTTP por padrão.
- Transporte padrão:
http - Endpoint padrão:
http://localhost:8088/mcp - Endpoint de prontidão:
http://localhost:8088/ready - Modo padrão: sem estado
A construção Docker copia .env para a imagem de runtime e o servidor o carrega automaticamente na inicialização. Isso significa que o contêiner pode ser executado sem passar credenciais de API no momento do docker run, desde que .env estivesse presente durante o docker build.
docker build -t youtube-mcp-server .
docker run --rm -p 8088:8088 youtube-mcp-server
O contêiner usa por padrão:
MCP_TRANSPORT=http
MCP_HOST=0.0.0.0
MCP_PORT=8088
MCP_STATELESS=true
Contribuindo
Veja CONTRIBUTING.md para informações sobre como contribuir com este repositório.
Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.