Youtube Vision MCP
Servidor MCP de YouTube Vision ( youtube-vision )
Servidor MCP (Protocolo de Contexto de Modelo) que utiliza la API de Google Gemini Vision para interactuar con vídeos de YouTube. Permite a los usuarios obtener descripciones, resúmenes, respuestas a preguntas y extraer momentos clave de los vídeos de YouTube.
Características
Analiza vídeos de YouTube utilizando la API de Gemini Vision.
Proporciona múltiples herramientas para diferentes interacciones:
Descripción general o preguntas y respuestas (
ask_about_youtube_video)Resumen (
summarize_youtube_video)Extracción de momentos clave (
extract_key_moments)
Enumera los modelos Gemini disponibles que admiten
generateContent.Modelo Gemini configurable a través de variable de entorno.
Se comunica a través de stdio (entrada/salida estándar).
Related MCP server: YouTube Insights MCP Server
Prerrequisitos
Antes de utilizar este servidor, asegúrese de tener lo siguiente:
Node.js: Se recomienda la versión 18 o superior. Puede descargarla desde nodejs.org .
Clave API de Google Gemini: obtenga su clave API de Google AI Studio o Google Cloud Console.
Instalación y uso
Hay dos formas principales de utilizar este servidor:
Instalación mediante herrería
Para instalar youtube-vision-mcp para Claude Desktop automáticamente a través de Smithery :
npx -y @smithery/cli install @minbang930/youtube-vision-mcp --client claudeOpción 1: Usar npx (recomendado para un uso rápido)
La forma más sencilla de ejecutar este servidor es utilizando npx , que descarga y ejecuta el paquete sin necesidad de una instalación permanente.
Puedes configurarlo dentro del archivo de configuración de tu cliente MCP (Claude, VSCode...):
{
"mcpServers": {
"youtube-vision": {
"command": "npx",
"args": [
"-y",
"youtube-vision"
],
"env": {
"GEMINI_API_KEY": "YOUR_GEMINI_API_KEY",
"GEMINI_MODEL_NAME": "gemini-2.0-flash"
}
}
}
}Reemplace "YOUR_GEMINI_API_KEY" con su clave API de Google Gemini real.
Opción 2: Instalación manual (desde la fuente)
Si desea modificar el código o ejecutarlo directamente desde la fuente:
Clonar el repositorio:
git clone https://github.com/minbang930/Youtube-Vision-MCP.git cd youtube-visionInstalar dependencias:
npm installConstruir el proyecto:
npm run buildConfigurar y ejecutar: luego puede ejecutar el código compilado usando
node dist/index.jsdirectamente (asegúrese de queGEMINI_API_KEYesté configurado como una variable de entorno) o configurar su cliente MCP para ejecutarlo usando el comandonodey la ruta absoluta adist/index.js, pasando la clave API a través de la configuraciónenvcomo se muestra en el ejemplo npx.
Configuración
El servidor utiliza las siguientes variables de entorno:
GEMINI_API_KEY(Obligatorio): Su clave API de Google Gemini.GEMINI_MODEL_NAME(Opcional): El modelo específico de Gemini que se usará (p. ej.,gemini-1.5-flash). El valor predeterminado esgemini-2.0-flash. Importante: Para uso en producción o comercial, asegúrese de seleccionar una versión del modelo que no esté marcada como "Experimental" o "Vista previa".
Las variables de entorno deben configurarse en la sección env del archivo de configuración de su cliente MCP (por ejemplo, mcp_settings.json ).
Herramientas disponibles
1. ask_about_youtube_video
Responde una pregunta sobre el vídeo o proporciona una descripción general si no se hace ninguna pregunta.
Aporte:
youtube_url(cadena, obligatoria): la URL del vídeo de YouTube.question(cadena, opcional): La pregunta específica sobre el video. Si se omite, se genera una descripción general.
Salida: Texto que contiene la respuesta o descripción.
2. summarize_youtube_video
Genera un resumen de un vídeo de YouTube determinado.
Aporte:
youtube_url(cadena, obligatoria): la URL del vídeo de YouTube.summary_length(cadena, opcional): Longitud de resumen deseada ('corta', 'media', 'larga'). El valor predeterminado es 'mediana'.
Salida: Texto que contiene el resumen del vídeo.
3. extract_key_moments
Extrae momentos clave (marcas de tiempo y descripciones) de un vídeo determinado de YouTube.
Aporte:
youtube_url(cadena, obligatoria): la URL del vídeo de YouTube.number_of_moments(entero, opcional): Número de momentos clave a extraer. El valor predeterminado es 3.
Salida: Texto que describe los momentos clave con marcas de tiempo.
4. list_supported_models
Enumera los modelos Gemini disponibles que admiten el método generateContent (obtenido a través de la API REST).
Entrada: Ninguna
Salida: Texto que enumera los nombres de modelos admitidos.
Notas importantes
Selección de modelos para producción: Al utilizar este servidor con fines comerciales o de producción, asegúrese de que el
GEMINI_MODEL_NAMEseleccionado sea una versión estable y apta para producción. Según las Condiciones de Servicio de la API de Gemini , los modelos marcados como "Experimental" o "Vista previa" no están permitidos para la implementación en producción.Condiciones del servicio de la API: El uso de este servidor se basa en la API de Google Gemini. Los usuarios son responsables de revisar y cumplir las Condiciones del servicio de las API de Google y las Condiciones adicionales del servicio de la API de Gemini . Tenga en cuenta que las políticas de uso de datos pueden variar entre las versiones gratuita y de pago de la API de Gemini. No comparta información confidencial al usar las versiones gratuitas.
Responsabilidad del contenido: No se garantiza la precisión ni la pertinencia del contenido generado mediante la API de Gemini. Sea prudente antes de confiar en el contenido generado o publicarlo.
Licencia
Este proyecto está licenciado bajo la Licencia MIT. Consulte el archivo de LICENCIA para más detalles.
Available Tools
4 toolsask_about_youtube_videoB
Answers a question about the video or provides a general description if no question is asked.
| Name | Required | Description | Default |
|---|---|---|---|
| youtube_url | Yes | ||
| question | No | Question about the video content. If omitted, a general description will be generated. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the tool can answer questions or provide descriptions, but doesn't cover important aspects like rate limits, authentication needs, error conditions, or what constitutes a 'general description.' This leaves significant gaps for a tool that presumably processes external content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core functionality without any wasted words. It's appropriately sized for a tool with two parameters and front-loads the essential information about what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description provides basic purpose and parameter guidance but lacks sufficient detail about behavioral traits, error handling, or output format. For a tool that interacts with external video content, more context about limitations or capabilities would be helpful to achieve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only the question parameter has a description). The description adds valuable context by explaining that omitting the question parameter triggers a general description, which clarifies the optional nature and default behavior. This compensates well for the schema's partial coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: answering questions about YouTube videos or providing general descriptions. It specifies the verb ('answers'/'provides') and resource ('video'), but doesn't explicitly differentiate from sibling tools like summarize_youtube_video or extract_key_moments, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (for questions about video content or general descriptions) but doesn't provide explicit guidance on when to choose alternatives like summarize_youtube_video or extract_key_moments. No exclusions or prerequisites are mentioned, leaving usage context somewhat vague.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_key_momentsC
Extracts key moments (timestamps and descriptions) from a given YouTube video.
| Name | Required | Description | Default |
|---|---|---|---|
| youtube_url | Yes | ||
| number_of_moments | No | Number of key moments to extract (default: 3). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions what is extracted ('timestamps and descriptions') but doesn't cover critical aspects like error handling (e.g., invalid URLs, unsupported videos), performance (e.g., processing time), or output format details. This is inadequate for a tool with potential complexity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded with the core action and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and incomplete parameter documentation (50% coverage), the description is insufficient. It lacks details on behavioral traits, error conditions, and output structure, which are essential for an extraction tool. The description does not compensate for these gaps in structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'number_of_moments' has a description), and the description adds no parameter-specific information beyond implying a YouTube URL is needed. It doesn't clarify URL format requirements or the nature of 'key moments,' leaving gaps in understanding the 'youtube_url' parameter. Baseline 3 is appropriate given partial schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('extracts') and resource ('key moments from a given YouTube video'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'summarize_youtube_video' or 'ask_about_youtube_video', which might also process video content in different ways.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose extraction over summarization or querying, nor does it specify prerequisites or constraints (e.g., video length, availability). This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_supported_modelsB
Lists available Gemini models that support the 'generateContent' method.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does, not how it behaves. It lacks details on permissions, rate limits, output format, or whether it's a read-only operation. 'Lists' implies a safe read, but this isn't explicitly confirmed, leaving behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without redundancy. It's front-loaded with the core action and resource, making it easy to parse. Every word earns its place, with no wasted verbiage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema), the description is minimally adequate but incomplete. It explains what the tool does but lacks context on why to use it, output details, or behavioral traits. For a list operation, this is the bare minimum, scoring a 3.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description adds no parameter information, which is appropriate here. Baseline is 4 for zero parameters, as no compensation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Lists') and resource ('available Gemini models'), specifying they support the 'generateContent' method. It distinguishes from sibling tools (YouTube-related) by focusing on model listing rather than video processing. However, it doesn't explicitly differentiate from hypothetical model-related siblings, keeping it at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for selecting models, or relationships to sibling tools. The agent must infer usage from the purpose alone, which is insufficient for optimal tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_youtube_videoC
Generates a summary of a given YouTube video URL using Gemini Vision API.
| Name | Required | Description | Default |
|---|---|---|---|
| youtube_url | Yes | ||
| summary_length | No | Desired summary length: 'short', 'medium', or 'long' (default: 'medium'). | medium |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the method ('using Gemini Vision API') but lacks details on rate limits, authentication needs, error handling, or output format. For a tool that likely involves API calls and video processing, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary details. It's appropriately sized for the tool's complexity, with zero waste or redundancy, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (involving video processing and an external API), lack of annotations, no output schema, and incomplete parameter documentation, the description is insufficient. It doesn't cover behavioral aspects like performance, limitations, or what the summary output looks like, leaving significant gaps for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'summary_length' has a description). The description adds no parameter semantics beyond the schema, as it doesn't explain the 'youtube_url' parameter or provide additional context for 'summary_length'. With partial schema coverage, the description doesn't compensate for the undocumented parameter, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generates a summary of a given YouTube video URL using Gemini Vision API.' It specifies the verb ('Generates a summary'), resource ('YouTube video URL'), and method ('using Gemini Vision API'). However, it doesn't explicitly differentiate from sibling tools like 'ask_about_youtube_video' or 'extract_key_moments', which might offer similar or overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or contexts where this tool is preferred, such as for quick overviews versus detailed analysis. Without such guidance, users might struggle to choose between this and tools like 'ask_about_youtube_video' or 'extract_key_moments'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
ask_about_youtube_video - First observed
extract_key_moments - First observed
list_supported_models - First observed
summarize_youtube_video
TDQS
Scored across 4 tools
The tools have mostly distinct purposes, but 'ask_about_youtube_video' and 'summarize_youtube_video' could be confused as both provide descriptive outputs about video content. However, 'ask_about_youtube_video' is question-driven while 'summarize_youtube_video' is general, and the other tools ('extract_key_moments', 'list_supported_models') are clearly differentiated.
Three tools follow a consistent verb_noun pattern ('ask_about_youtube_video', 'extract_key_moments', 'summarize_youtube_video'), but 'list_supported_models' deviates by using 'list' instead of a more descriptive verb like 'get' or 'retrieve', and it lacks the 'youtube_video' domain specificity. This mixed convention reduces predictability.
With 4 tools, the count is reasonable for a focused YouTube video analysis server. It covers core functionalities like description, summarization, moment extraction, and model listing, though it could be slightly expanded for more comprehensive coverage (e.g., adding video metadata retrieval).
The server covers key video analysis tasks (description, summarization, moment extraction) and model support listing, but there are notable gaps. For example, it lacks tools for video metadata (e.g., title, duration, uploader), search capabilities, or interaction with YouTube's API beyond vision-based analysis, which limits agent workflows in broader YouTube contexts.
Maintenance
Related MCP Connectors
YouTube transcripts, search, channel browsing, and playlists for AI agents via MCP.
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
MCP server for Google Veo AI video generation
Multimodal video analysis MCP — transcription, vision, and OCR for any video URL.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that analyzes YouTube videos, enabling users to extract transcripts, generate summaries, and query video content using Gemini AI.13MIT
- FlicenseBqualityDmaintenanceAn MCP server that extracts transcripts, metadata, and summaries from YouTube videos across various URL formats including Shorts and standard links. It provides comprehensive video data and insights for analysis within MCP-compatible environments.3-
- AlicenseAqualityAmaintenanceMCP server that fetches YouTube video transcripts and optionally summarizes them. Supports multiple transcript formats (text, JSON, SRT, WebVTT), multi-language retrieval, and flexible YouTube URL parsing.637 PyPI6MIT
- AlicenseNot gradedqualityDmaintenanceA local MCP server for extracting YouTube video transcripts, metadata, and performing visual analysis using Gemini Vision or local Whisper models. It enables users to process video content through various tools for subtitle retrieval and frame analysis.12 npmMIT