Youtube Vision MCP
YouTube Vision MCP 서버( youtube-vision )
Google Gemini Vision API를 활용하여 YouTube 동영상과 상호작용하는 MCP(Model Context Protocol) 서버입니다. 사용자는 YouTube 동영상에서 설명, 요약, 질문에 대한 답변을 얻고 주요 장면을 추출할 수 있습니다.
특징
Gemini Vision API를 사용하여 YouTube 동영상을 분석합니다.
다양한 상호작용을 위한 여러 도구를 제공합니다.
일반적인 설명 또는 Q&A(
ask_about_youtube_video)요약 (
summarize_youtube_video)주요 순간 추출(
extract_key_moments)
generateContent지원하는 사용 가능한 Gemini 모델을 나열합니다.환경 변수를 통해 구성 가능한 Gemini 모델.
stdio(표준 입출력)를 통해 통신합니다.
Related MCP server: YouTube Insights MCP Server
필수 조건
이 서버를 사용하기 전에 다음 사항이 있는지 확인하세요.
Node.js: 18 버전 이상을 권장합니다. nodejs.org 에서 다운로드할 수 있습니다.
Google Gemini API 키: Google AI Studio 또는 Google Cloud Console에서 API 키를 받으세요.
설치 및 사용
이 서버를 사용하는 두 가지 주요 방법은 다음과 같습니다.
Smithery를 통해 설치
Smithery를 통해 Claude Desktop에 youtube-vision-mcp를 자동으로 설치하려면:
지엑스피1
옵션 1: npx 사용(빠른 사용을 위해 권장)
이 서버를 실행하는 가장 쉬운 방법은 npx 사용하는 것입니다. npx를 사용하면 영구적인 설치가 필요 없이 패키지를 다운로드하여 실행할 수 있습니다.
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"
}
}
}
}"YOUR_GEMINI_API_KEY" 실제 Google Gemini API 키로 바꾸세요.
옵션 2: 수동 설치(소스에서)
코드를 수정하거나 소스에서 직접 실행하려면 다음을 수행하세요.
저장소를 복제합니다.
git clone https://github.com/minbang930/Youtube-Vision-MCP.git cd youtube-vision종속성 설치:
npm install프로젝트를 빌드하세요:
npm run build구성 및 실행: 그런 다음
node dist/index.js사용하여 컴파일된 코드를 직접 실행할 수 있습니다(GEMINI_API_KEY환경 변수로 설정되어 있는지 확인). 또는node명령과dist/index.js의 절대 경로를 사용하여 MCP 클라이언트를 구성하여 이를 실행하고 npx 예제에서 볼 수 있듯이env설정을 통해 API 키를 전달합니다.
구성
서버는 다음과 같은 환경 변수를 사용합니다.
GEMINI_API_KEY(필수): Google Gemini API 키.GEMINI_MODEL_NAME(선택 사항): 사용할 특정 Gemini 모델(예:gemini-1.5-flash)입니다. 기본값은gemini-2.0-flash입니다. 중요: 프로덕션 또는 상업적 용도로 사용하려면 "실험용" 또는 "미리보기"로 표시되지 않은 모델 버전을 선택해야 합니다.
환경 변수는 MCP 클라이언트 설정 파일의 env 섹션(예: mcp_settings.json )에서 설정해야 합니다.
사용 가능한 도구
1. ask_about_youtube_video
영상에 대한 질문에 답하거나, 질문이 없는 경우 일반적인 설명을 제공합니다.
입력:
youtube_url(문자열, 필수): YouTube 동영상의 URL입니다.question(문자열, 선택 사항): 동영상에 대한 구체적인 질문입니다. 생략하면 일반적인 설명이 생성됩니다.
출력: 답변이나 설명이 포함된 텍스트.
2. summarize_youtube_video
주어진 YouTube 비디오의 요약을 생성합니다.
입력:
youtube_url(문자열, 필수): YouTube 동영상의 URL입니다.summary_length(문자열, 선택 사항): 원하는 요약 길이('short', 'medium', 'long'). 기본값은 'medium'입니다.
출력: 비디오 요약을 담은 텍스트.
3. extract_key_moments
YouTube 동영상에서 주요 순간(타임스탬프와 설명)을 추출합니다.
입력:
youtube_url(문자열, 필수): YouTube 동영상의 URL입니다.number_of_moments(정수, 선택 사항): 추출할 주요 순간의 개수입니다. 기본값은 3입니다.
출력: 타임스탬프가 포함된 주요 순간을 설명하는 텍스트입니다.
4. list_supported_models
REST API를 통해 가져온 generateContent 메서드를 지원하는 사용 가능한 Gemini 모델을 나열합니다.
입력: 없음
출력: 지원되는 모델 이름을 나열한 텍스트입니다.
중요 참고 사항
프로덕션용 모델 선택: 이 서버를 프로덕션 또는 상업적 목적으로 사용하는 경우, 선택한
GEMINI_MODEL_NAME이 프로덕션 환경에 적합한 안정적인 버전인지 확인하십시오. Gemini API 서비스 약관 에 따라 "실험용" 또는 "미리보기"로 표시된 모델은 프로덕션 환경에 배포할 수 없습니다.API 서비스 약관: 이 서버는 Google Gemini API를 기반으로 운영됩니다. 사용자는 Google API 서비스 약관 과 Gemini API 추가 서비스 약관 을 검토하고 준수할 책임이 있습니다. Gemini API의 무료 및 유료 버전 간에는 데이터 사용 정책이 다를 수 있습니다. 무료 버전을 사용할 때는 민감하거나 기밀 정보를 제출하지 마십시오.
콘텐츠 책임: Gemini API를 통해 생성된 콘텐츠의 정확성과 적합성은 보장되지 않습니다. 생성된 콘텐츠를 사용하거나 게시하기 전에 신중하게 판단하시기 바랍니다.
특허
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 라이선스 파일을 참조하세요.
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